This document introduces programming with dependent types in Scala. It discusses values and types, functions that relate values to types or types to other types, dependent pairs and fibers, using types for calculations at compile-time, and theorem proving using dependent types.