17,134
students have developed their Swift skills on Exercism.

Students
17,134
Submissions
153,627
Mentoring Discussions
2,969

The Swift track needs attention ⚠️

Building

Build

Use your knowledge to build the Swift track itself

Create the Swift syllabus

Learn More

Help create the track syllabus: is a set of concepts and learning exercises put together to teach foundational elements of the programming language.

Next goal: Create a complete syllabus with at least 50 concepts. Find out more.

Usage statistics

41 concepts being taught
Ca
Capturing
158 learnt
Cl
Closures
158 learnt
Sh
Shorthand arguments
158 learnt
Tr
Trailing closures
158 learnt
Ch
Characters
986 learnt
Nu
Numbers
992 learnt
Di
Dictionaries
232 learnt
Ba
Basics
2,142 learnt
Co
Constants
2,142 learnt
Fu
Functions
2,142 learnt
Ty
Type Annotations
2,142 learnt
Va
Variables
2,142 learnt
De
Default Parameters
318 learnt
Fu
Function Overloading
318 learnt
In
Inout Parameters
318 learnt
Mu
Multiple Return Values
318 learnt
Ne
Nested Functions
318 learnt
Va
Variadic Parameters
318 learnt
En
Enumerations
145 learnt
Co
Contro transfer
210 learnt
fo
for loops
210 learnt
Lo
Loops
210 learnt
re
repeat while
210 learnt
wh
while loops
210 learnt
Ar
Arrays
457 learnt
Op
Optionals
318 learnt
Im
Importing
209 learnt
St
String Components
209 learnt
St
String Indexing
209 learnt
Tu
Tuples
396 learnt
Es
Escaping functions
584 learnt
Hi
Higher Order Functions
584 learnt
Bo
Booleans
714 learnt
Co
Conditionals Guard
714 learnt
Co
Conditionals If
714 learnt
Co
Conditionals Switch
714 learnt
Te
Ternary operator
714 learnt
Me
Methods
169 learnt
Se
Self
169 learnt
St
Structs And Classes
169 learnt
Va
Value and reference types
169 learnt
15 active learning exercises
Started
Attempts
Completions
Mentoring requests
Double-Null0111: Closures Are Forever Double-Null0111: Closures Are Forever
188
1,015 (avg. 5.4)
158 (84.0%)
7 (3.7%)
Cal's Custom Sign Shop Cal's Custom Sign Shop
1,193
9,911 (avg. 8.3)
986 (82.6%)
5 (0.4%)
Freelancer Rates Freelancer Rates
1,432
18,012 (avg. 12.6)
992 (69.3%)
12 (0.8%)
High Score Board High Score Board
251
1,240 (avg. 4.9)
232 (92.4%)
2 (0.8%)
Layers of Lasagna Layers of Lasagna
3,270
18,971 (avg. 5.8)
2,142 (65.5%)
18 (0.6%)
Lasagna Master Lasagna Master
341
2,469 (avg. 7.2)
318 (93.3%)
8 (2.3%)
Log Lines Log Lines
150
491 (avg. 3.3)
145 (96.7%)
2 (1.3%)
Master Mixologist Master Mixologist
237
2,114 (avg. 8.9)
210 (88.6%)
5 (2.1%)
Magician-in-Training Magician-in-Training
543
7,348 (avg. 13.5)
457 (84.2%)
11 (2.0%)
Slice Sizing Slice Sizing
351
3,880 (avg. 11.1)
318 (90.6%)
11 (3.1%)
The 1st Rule of Poetry Club The 1st Rule of Poetry Club
244
1,927 (avg. 7.9)
209 (85.7%)
2 (0.8%)
Santa's Swifty Helper Santa's Swifty Helper
411
1,360 (avg. 3.3)
396 (96.4%)
4 (1.0%)
Secret Agent Double-Null0111 Secret Agent Double-Null0111
726
3,272 (avg. 4.5)
584 (80.4%)
8 (1.1%)
Vexing Vehicle Purchase Vexing Vehicle Purchase
1,017
10,430 (avg. 10.3)
714 (70.2%)
14 (1.4%)
Windowing System Windowing System
193
1,601 (avg. 8.3)
169 (87.6%)
4 (2.1%)

Build Test Runners

Learn More

Create Test Runners that have the single responsibility of taking a solution, running all tests and returning a standardized output.

Next goal: Get Test Runners to Version 3. Swift is currently utilising a Version 2 Test Runner. Find out more.

Usage statistics

Total Test Runner Runs
128,088
Test Run Pass Rate
19.1% (24517)
Test Run Fail Rate
19.4% (24902)
Test Run Error Rate
61.4% (78669)

Build Analyzers

Learn More

Build an Analyzer for Swift: Exercism's analyzers automatically assess student's submissions and provide mentor-style commentary.

Next goal: Build an Analyzer. Find out more.

Build Representers

Learn More

Build a Representer: a bit of code that has the single responsibility of taking a solution and returning a normalized representation of it.

Next goal: Build a Representer. Find out more.

Create Practice Exercises

Learn More

Practice Exercises are exercises designed to allow students to solve an arbitrary problem, with the aim of them making use of the concepts they have learned so far.

Next goal: Implement 130 practice exercises. Find out more.

Usage statistics

83 active practice exercises
Started
Attempts
Completions
Mentoring requests
Hello World Hello World
9,767
20,661 (avg. 2.1)
7,229 (74.0%)
16 (0.2%)
Difference of Squares Difference of Squares
1,535
4,196 (avg. 2.7)
1,082 (70.5%)
210 (13.7%)
Gigasecond Gigasecond
1,632
2,728 (avg. 1.7)
1,105 (67.7%)
271 (16.6%)
Leap Leap
2,547
4,415 (avg. 1.7)
2,169 (85.2%)
574 (22.5%)
RNA Transcription RNA Transcription
1,023
2,063 (avg. 2.0)
836 (81.7%)
146 (14.3%)
Space Age Space Age
765
1,196 (avg. 1.6)
669 (87.5%)
90 (11.8%)
Sum of Multiples Sum of Multiples
863
1,789 (avg. 2.1)
730 (84.6%)
113 (13.1%)
Two Fer Two Fer
2,094
3,114 (avg. 1.5)
1,644 (78.5%)
920 (43.9%)
Accumulate Accumulate
753
1,166 (avg. 1.5)
546 (72.5%)
39 (5.2%)
Bob Bob
765
1,743 (avg. 2.3)
658 (86.0%)
83 (10.8%)
ETL ETL
593
869 (avg. 1.5)
528 (89.0%)
18 (3.0%)
Grade School Grade School
559
1,034 (avg. 1.8)
468 (83.7%)
21 (3.8%)
Grains Grains
537
1,155 (avg. 2.2)
466 (86.8%)
59 (11.0%)
Hamming Hamming
721
1,281 (avg. 1.8)
680 (94.3%)
71 (9.8%)
Isogram Isogram
441
777 (avg. 1.8)
371 (84.1%)
14 (3.2%)
List Ops List Ops
317
572 (avg. 1.8)
218 (68.8%)
10 (3.2%)
Nucleotide Count Nucleotide Count
919
1,416 (avg. 1.5)
679 (73.9%)
61 (6.6%)
Raindrops Raindrops
612
947 (avg. 1.5)
519 (84.8%)
28 (4.6%)
Binary Search Binary Search
244
449 (avg. 1.8)
192 (78.7%)
1 (0.4%)
Circular Buffer Circular Buffer
165
481 (avg. 2.9)
123 (74.5%)
3 (1.8%)
Clock Clock
361
597 (avg. 1.7)
286 (79.2%)
10 (2.8%)
Collatz Conjecture Collatz Conjecture
178
291 (avg. 1.6)
147 (82.6%)
2 (1.1%)
Diamond Diamond
176
275 (avg. 1.6)
129 (73.3%)
0 (0.0%)
Flatten Array Flatten Array
217
457 (avg. 2.1)
168 (77.4%)
6 (2.8%)
ISBN Verifier ISBN Verifier
172
350 (avg. 2.0)
131 (76.2%)
4 (2.3%)
Kindergarten Garden Kindergarten Garden
253
338 (avg. 1.3)
203 (80.2%)
3 (1.2%)
Perfect Numbers Perfect Numbers
258
432 (avg. 1.7)
224 (86.8%)
7 (2.7%)
Phone Number Phone Number
325
646 (avg. 2.0)
278 (85.5%)
10 (3.1%)
Protein Translation Protein Translation
160
395 (avg. 2.5)
116 (72.5%)
1 (0.6%)
Proverb Proverb
128
225 (avg. 1.8)
97 (75.8%)
1 (0.8%)
Queen Attack Queen Attack
239
400 (avg. 1.7)
203 (84.9%)
4 (1.7%)
Robot Name Robot Name
379
586 (avg. 1.5)
315 (83.1%)
5 (1.3%)
Robot Simulator Robot Simulator
226
341 (avg. 1.5)
175 (77.4%)
8 (3.5%)
Scale Generator Scale Generator
121
187 (avg. 1.5)
65 (53.7%)
0 (0.0%)
Scrabble Score Scrabble Score
329
646 (avg. 2.0)
281 (85.4%)
4 (1.2%)
Secret Handshake Secret Handshake
186
232 (avg. 1.2)
148 (79.6%)
0 (0.0%)
Sieve Sieve
231
350 (avg. 1.5)
195 (84.4%)
1 (0.4%)
Strain Strain
242
329 (avg. 1.4)
204 (84.3%)
2 (0.8%)
Sublist Sublist
188
332 (avg. 1.8)
138 (73.4%)
1 (0.5%)
Triangle Triangle
358
602 (avg. 1.7)
311 (86.9%)
6 (1.7%)
Acronym Acronym
207
540 (avg. 2.6)
133 (64.3%)
5 (2.4%)
All Your Base All Your Base
140
230 (avg. 1.6)
97 (69.3%)
0 (0.0%)
Allergies Allergies
273
385 (avg. 1.4)
205 (75.1%)
4 (1.5%)
Anagram Anagram
307
568 (avg. 1.9)
261 (85.0%)
9 (2.9%)
Beer Song Beer Song
173
225 (avg. 1.3)
125 (72.3%)
1 (0.6%)
House House
108
118 (avg. 1.1)
74 (68.5%)
1 (0.9%)
Largest Series Product Largest Series Product
121
376 (avg. 3.1)
86 (71.1%)
3 (2.5%)
Matrix Matrix
157
288 (avg. 1.8)
113 (72.0%)
0 (0.0%)
Meetup Meetup
150
213 (avg. 1.4)
100 (66.7%)
1 (0.7%)
Pangram Pangram
125
226 (avg. 1.8)
94 (75.2%)
2 (1.6%)
Pascal's Triangle Pascal's Triangle
119
152 (avg. 1.3)
77 (64.7%)
1 (0.8%)
Prime Factors Prime Factors
125
145 (avg. 1.2)
89 (71.2%)
0 (0.0%)
Pythagorean Triplet Pythagorean Triplet
126
220 (avg. 1.7)
81 (64.3%)
0 (0.0%)
Rotational Cipher Rotational Cipher
86
168 (avg. 2.0)
52 (60.5%)
1 (1.2%)
Saddle Points Saddle Points
100
234 (avg. 2.3)
72 (72.0%)
1 (1.0%)
Say Say
62
98 (avg. 1.6)
30 (48.4%)
1 (1.6%)
Series Series
164
327 (avg. 2.0)
115 (70.1%)
0 (0.0%)
Simple Linked List Simple Linked List
153
225 (avg. 1.5)
105 (68.6%)
0 (0.0%)
Twelve Days Twelve Days
192
229 (avg. 1.2)
142 (74.0%)
1 (0.5%)
Word Count Word Count
478
639 (avg. 1.3)
383 (80.1%)
11 (2.3%)
Atbash Cipher Atbash Cipher
81
181 (avg. 2.2)
61 (75.3%)
1 (1.2%)
Binary Search Tree Binary Search Tree
118
512 (avg. 4.3)
77 (65.3%)
1 (0.8%)
Crypto Square Crypto Square
83
275 (avg. 3.3)
57 (68.7%)
0 (0.0%)
Custom Set Custom Set
89
187 (avg. 2.1)
55 (61.8%)
1 (1.1%)
Food Chain Food Chain
63
80 (avg. 1.3)
38 (60.3%)
0 (0.0%)
Linked List Linked List
104
219 (avg. 2.1)
70 (67.3%)
5 (4.8%)
Luhn Luhn
92
177 (avg. 1.9)
64 (69.6%)
3 (3.3%)
OCR Numbers OCR Numbers
69
119 (avg. 1.7)
41 (59.4%)
2 (2.9%)
Roman Numerals Roman Numerals
114
184 (avg. 1.6)
80 (70.2%)
2 (1.8%)
Run-Length Encoding Run-Length Encoding
81
128 (avg. 1.6)
52 (64.2%)
0 (0.0%)
Simple Cipher Simple Cipher
73
123 (avg. 1.7)
45 (61.6%)
0 (0.0%)
Bowling Bowling
73
138 (avg. 1.9)
36 (49.3%)
0 (0.0%)
Complex Numbers Complex Numbers
54
74 (avg. 1.4)
30 (55.6%)
0 (0.0%)
Nth Prime Nth Prime
97
188 (avg. 1.9)
65 (67.0%)
1 (1.0%)
Palindrome Products Palindrome Products
63
132 (avg. 2.1)
43 (68.3%)
0 (0.0%)
Pig Latin Pig Latin
70
140 (avg. 2.0)
43 (61.4%)
0 (0.0%)
Tournament Tournament
69
145 (avg. 2.1)
49 (71.0%)
1 (1.4%)
Transpose Transpose
63
79 (avg. 1.3)
35 (55.6%)
0 (0.0%)
Matching Brackets Matching Brackets
82
145 (avg. 1.8)
59 (72.0%)
1 (1.2%)
Dominoes Dominoes
67
92 (avg. 1.4)
35 (52.2%)
0 (0.0%)
Minesweeper Minesweeper
77
125 (avg. 1.6)
41 (53.2%)
1 (1.3%)
Wordy Wordy
87
218 (avg. 2.5)
54 (62.1%)
1 (1.1%)
Poker Poker
178
174 (avg. 1.0)
41 (23.0%)
0 (0.0%)
4 deprecated practice exercises
Started
Attempts
Completions
Mentoring requests
Binary Binary
23
35 (avg. 1.5)
23 (100.0%)
0 (0.0%)
Hexadecimal Hexadecimal
6
6 (avg. 1.0)
6 (100.0%)
0 (0.0%)
Octal Octal
14
18 (avg. 1.3)
14 (100.0%)
0 (0.0%)
Trinary Trinary
17
23 (avg. 1.4)
17 (100.0%)
0 (0.0%)
47 unimplemented practice exercises
Affine Cipher Affine Cipher
Alphametics Alphametics
Armstrong Numbers Armstrong Numbers
Bank Account Bank Account
Book Store Book Store
Bottle Song Bottle Song
Change Change
Connect Connect
D&D Character D&D Character
DOT DSL DOT DSL
Darts Darts
Error Handling Error Handling
Forth Forth
Go Counting Go Counting
Grep Grep
Hangman Hangman
High Scores High Scores
Killer Sudoku Helper Killer Sudoku Helper
Knapsack Knapsack
Ledger Ledger
Lens Person Lens Person
Markdown Markdown
Micro Blog Micro Blog
POV POV
PaaS I/O PaaS I/O
Parallel Letter Frequency Parallel Letter Frequency
REST API REST API
Rail Fence Cipher Rail Fence Cipher
Rational Numbers Rational Numbers
React React
Rectangles Rectangles
Resistor Color Resistor Color
Resistor Color Duo Resistor Color Duo
Resistor Color Trio Resistor Color Trio
Reverse String Reverse String
SGF Parsing SGF Parsing
Satellite Satellite
Spiral Matrix Spiral Matrix
Square Root Square Root
State of Tic-Tac-Toe State of Tic-Tac-Toe
Tree Building Tree Building
Two Bucket Two Bucket
Variable Length Quantity Variable Length Quantity
Word Search Word Search
Yacht Yacht
Zebra Puzzle Zebra Puzzle
Zipper Zipper