Programming with Swift


Learn to program with Swift on macOS, Linux, and Windows



Programming with Swift: Fundamentals is our introductory programming course. It covers the fundamental building blocks of programming, such as variables, control flow, functions, data collections, and types.

In this course, you’ll learn the Swift programming language and build fun games, such as Tic-Tac-Toe, Blackjack, and Yahtzee.

No prior programming experience is required. All you need is a computer running a supported version of macOS, Linux, or Windows.



All exercises in this course are fully cross-platform. You can use either macOS, Linux, or Windows to complete this course.


This online course is updated regularly. Your purchase gives you access to all future updates, so you’ll never have to pay again.

Feedback and evaluation

Submit your work to an instructor for feedback and evaluation, and discuss your results in a video call.


Detailed solutions are provided for each of the nine exercise chapters and three large challenges in this course.

More than code

Software development is more than just writing code. This course also introduces you to software analysis and design, so that you can learn how to tackle larger projects.

Dark theme

This course offers both light and dark themes, with different code highlighting and images for each theme.


Part I:

  • Chapter 1: Introduction to Computing
  • Chapter 2: Getting Started

Part II:

  • Chapter 3: Basic Operators and Functions
  • Chapter 4: Constants, Variables, and Types
  • Exercise Series 1
  • Chapter 5: Strings
  • Chapter 6: Control Flow and Booleans
  • Exercise Series 2
  • Chapter 7: Advanced Control Flow
  • Chapter 8 Functions
  • Exercise Series 3
  • Challenge 1: Tic-Tac-Toe

Part III:

  • Chapter 9: Tuples
  • Chapter 10: Optionals
  • Exercise Series 4
  • Chapter 11: Arrays
  • Chapter 12: Dictionaries
  • Exercise Series 5
  • Chapter 13: Function Types and Closures
  • Exercise Series 6
  • Challenge 2: Blackjack

Part IV:

  • Chapter 14: Structures
  • Exercise Series 7
  • Chapter 15: Programming with Structures
  • Chapter 16: Enumerations
  • Exercise Series 8
  • Chapter 17: Classes
  • Exercise Series 9
  • Chapter 18: Protocols and Extensions
  • Chapter 19: Wrapping Up
  • Challenge 3: Yahtzee
  • Evaluation

Sample Chapter

Screenshot of light theme
Screenshot of dark theme

Get Started

  • Access to the online course
  • Free updates
  • Solutions
  • Evaluation by an instructor
  • Video calls
  • Intermediate feedback
Graded bundle
€149 €179
  • Access to the online course
  • Free updates
  • Solutions
  • Evaluation by an instructor
  • One video call
  • Intermediate feedback
Expert bundle
€369 €509
  • Access to the online course
  • Free updates
  • Solutions
  • Evaluation by an instructor
  • Four video calls
  • Feedback after every challenge