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

About
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.
Features
Cross-platform
All exercises in this course are fully cross-platform. You can use either macOS, Linux, or Windows to complete this course.
Up-to-date
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.
Solutions
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.
Contents
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


Get Started
- Access to the online course
- Free updates
- Solutions
- Evaluation by an instructor
- Video calls
- Intermediate feedback
- Access to the online course
- Free updates
- Solutions
- Evaluation by an instructor
- One video call
- Intermediate feedback
- Access to the online course
- Free updates
- Solutions
- Evaluation by an instructor
- Four video calls
- Feedback after every challenge