18,279
students have developed their Swift skills on Exercism.

Students
18,279
Submissions
177,821
Mentoring Discussions
2,992

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
197 learnt
Cl
Closures
197 learnt
Sh
Shorthand arguments
197 learnt
Tr
Trailing closures
197 learnt
Ch
Characters
1,187 learnt
Nu
Numbers
1,209 learnt
Di
Dictionaries
278 learnt
Ba
Basics
2,510 learnt
Co
Constants
2,510 learnt
Fu
Functions
2,510 learnt
Ty
Type Annotations
2,510 learnt
Va
Variables
2,510 learnt
De
Default Parameters
379 learnt
Fu
Function Overloading
379 learnt
In
Inout Parameters
379 learnt
Mu
Multiple Return Values
379 learnt
Ne
Nested Functions
379 learnt
Va
Variadic Parameters
379 learnt
En
Enumerations
177 learnt
Co
Contro transfer
257 learnt
fo
for loops
257 learnt
Lo
Loops
257 learnt
re
repeat while
257 learnt
wh
while loops
257 learnt
Ar
Arrays
554 learnt
Op
Optionals
377 learnt
Im
Importing
248 learnt
St
String Components
248 learnt
St
String Indexing
248 learnt
Tu
Tuples
475 learnt
Es
Escaping functions
703 learnt
Hi
Higher Order Functions
703 learnt
Bo
Booleans
872 learnt
Co
Conditionals Guard
872 learnt
Co
Conditionals If
872 learnt
Co
Conditionals Switch
872 learnt
Te
Ternary operator
872 learnt
Me
Methods
202 learnt
Se
Self
202 learnt
St
Structs And Classes
202 learnt
Va
Value and reference types
202 learnt
15 active learning exercises
Started
Attempts
Completions
Mentoring requests
Double-Null0111: Closures Are Forever Double-Null0111: Closures Are Forever
228
1,293 (avg. 5.7)
197 (86.4%)
7 (3.1%)
Cal's Custom Sign Shop Cal's Custom Sign Shop
1,417
11,677 (avg. 8.2)
1,187 (83.8%)
5 (0.4%)
Freelancer Rates Freelancer Rates
1,707
22,028 (avg. 12.9)
1,209 (70.8%)
13 (0.8%)
High Score Board High Score Board
301
1,502 (avg. 5.0)
278 (92.4%)
3 (1.0%)
Layers of Lasagna Layers of Lasagna
3,805
22,511 (avg. 5.9)
2,510 (66.0%)
20 (0.5%)
Lasagna Master Lasagna Master
403
3,011 (avg. 7.5)
379 (94.0%)
9 (2.2%)
Log Lines Log Lines
184
633 (avg. 3.4)
177 (96.2%)
2 (1.1%)
Master Mixologist Master Mixologist
283
2,716 (avg. 9.6)
257 (90.8%)
5 (1.8%)
Magician-in-Training Magician-in-Training
658
9,181 (avg. 14.0)
554 (84.2%)
11 (1.7%)
Slice Sizing Slice Sizing
424
4,751 (avg. 11.2)
377 (88.9%)
13 (3.1%)
The 1st Rule of Poetry Club The 1st Rule of Poetry Club
289
2,411 (avg. 8.3)
248 (85.8%)
3 (1.0%)
Santa's Swifty Helper Santa's Swifty Helper
493
1,651 (avg. 3.3)
475 (96.3%)
4 (0.8%)
Secret Agent Double-Null0111 Secret Agent Double-Null0111
876
3,947 (avg. 4.5)
703 (80.3%)
8 (0.9%)
Vexing Vehicle Purchase Vexing Vehicle Purchase
1,227
12,800 (avg. 10.4)
872 (71.1%)
17 (1.4%)
Windowing System Windowing System
231
2,055 (avg. 8.9)
202 (87.4%)
4 (1.7%)

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.

Usage statistics

Total Test Runner Runs
152,149
Test Run Pass Rate
18.8% (28660)
Test Run Fail Rate
19.2% (29215)
Test Run Error Rate
62.0% (94274)

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
10,714
23,434 (avg. 2.2)
7,941 (74.1%)
16 (0.1%)
Difference of Squares Difference of Squares
1,625
4,683 (avg. 2.9)
1,118 (68.8%)
211 (13.0%)
Gigasecond Gigasecond
1,676
2,912 (avg. 1.7)
1,131 (67.5%)
272 (16.2%)
Leap Leap
2,583
4,563 (avg. 1.8)
2,193 (84.9%)
575 (22.3%)
RNA Transcription RNA Transcription
1,049
2,211 (avg. 2.1)
852 (81.2%)
146 (13.9%)
Space Age Space Age
786
1,242 (avg. 1.6)
681 (86.6%)
90 (11.5%)
Sum of Multiples Sum of Multiples
883
1,911 (avg. 2.2)
744 (84.3%)
113 (12.8%)
Two Fer Two Fer
2,117
3,225 (avg. 1.5)
1,663 (78.6%)
920 (43.5%)
Accumulate Accumulate
776
1,266 (avg. 1.6)
560 (72.2%)
39 (5.0%)
Bob Bob
780
1,877 (avg. 2.4)
670 (85.9%)
84 (10.8%)
ETL ETL
606
916 (avg. 1.5)
541 (89.3%)
18 (3.0%)
Grade School Grade School
576
1,108 (avg. 1.9)
481 (83.5%)
22 (3.8%)
Grains Grains
554
1,252 (avg. 2.3)
482 (87.0%)
59 (10.6%)
Hamming Hamming
736
1,333 (avg. 1.8)
692 (94.0%)
72 (9.8%)
Isogram Isogram
455
868 (avg. 1.9)
384 (84.4%)
15 (3.3%)
List Ops List Ops
331
632 (avg. 1.9)
227 (68.6%)
11 (3.3%)
Nucleotide Count Nucleotide Count
926
1,463 (avg. 1.6)
687 (74.2%)
61 (6.6%)
Raindrops Raindrops
621
990 (avg. 1.6)
526 (84.7%)
28 (4.5%)
Binary Search Binary Search
255
468 (avg. 1.8)
200 (78.4%)
1 (0.4%)
Circular Buffer Circular Buffer
172
501 (avg. 2.9)
128 (74.4%)
3 (1.7%)
Clock Clock
371
650 (avg. 1.8)
296 (79.8%)
10 (2.7%)
Collatz Conjecture Collatz Conjecture
187
338 (avg. 1.8)
154 (82.4%)
2 (1.1%)
Diamond Diamond
184
307 (avg. 1.7)
134 (72.8%)
1 (0.5%)
Flatten Array Flatten Array
224
481 (avg. 2.1)
174 (77.7%)
6 (2.7%)
ISBN Verifier ISBN Verifier
181
408 (avg. 2.3)
139 (76.8%)
5 (2.8%)
Kindergarten Garden Kindergarten Garden
259
355 (avg. 1.4)
210 (81.1%)
4 (1.5%)
Perfect Numbers Perfect Numbers
267
448 (avg. 1.7)
233 (87.3%)
7 (2.6%)
Phone Number Phone Number
331
663 (avg. 2.0)
284 (85.8%)
10 (3.0%)
Protein Translation Protein Translation
168
415 (avg. 2.5)
123 (73.2%)
1 (0.6%)
Proverb Proverb
135
254 (avg. 1.9)
103 (76.3%)
1 (0.7%)
Queen Attack Queen Attack
246
424 (avg. 1.7)
210 (85.4%)
4 (1.6%)
Robot Name Robot Name
385
619 (avg. 1.6)
320 (83.1%)
5 (1.3%)
Robot Simulator Robot Simulator
234
366 (avg. 1.6)
181 (77.4%)
8 (3.4%)
Scale Generator Scale Generator
127
204 (avg. 1.6)
69 (54.3%)
0 (0.0%)
Scrabble Score Scrabble Score
334
657 (avg. 2.0)
286 (85.6%)
4 (1.2%)
Secret Handshake Secret Handshake
190
244 (avg. 1.3)
152 (80.0%)
0 (0.0%)
Sieve Sieve
236
360 (avg. 1.5)
200 (84.7%)
1 (0.4%)
Strain Strain
245
334 (avg. 1.4)
207 (84.5%)
2 (0.8%)
Sublist Sublist
192
345 (avg. 1.8)
141 (73.4%)
1 (0.5%)
Triangle Triangle
365
626 (avg. 1.7)
314 (86.0%)
6 (1.6%)
Acronym Acronym
216
603 (avg. 2.8)
138 (63.9%)
5 (2.3%)
All Your Base All Your Base
146
238 (avg. 1.6)
101 (69.2%)
0 (0.0%)
Allergies Allergies
280
418 (avg. 1.5)
210 (75.0%)
4 (1.4%)
Anagram Anagram
313
579 (avg. 1.8)
266 (85.0%)
9 (2.9%)
Beer Song Beer Song
179
241 (avg. 1.3)
130 (72.6%)
1 (0.6%)
House House
115
126 (avg. 1.1)
79 (68.7%)
1 (0.9%)
Largest Series Product Largest Series Product
127
392 (avg. 3.1)
90 (70.9%)
3 (2.4%)
Matrix Matrix
161
296 (avg. 1.8)
117 (72.7%)
0 (0.0%)
Meetup Meetup
155
226 (avg. 1.5)
102 (65.8%)
1 (0.6%)
Pangram Pangram
128
260 (avg. 2.0)
98 (76.6%)
2 (1.6%)
Pascal's Triangle Pascal's Triangle
124
159 (avg. 1.3)
80 (64.5%)
1 (0.8%)
Prime Factors Prime Factors
128
164 (avg. 1.3)
92 (71.9%)
1 (0.8%)
Pythagorean Triplet Pythagorean Triplet
129
233 (avg. 1.8)
83 (64.3%)
1 (0.8%)
Rotational Cipher Rotational Cipher
89
186 (avg. 2.1)
55 (61.8%)
1 (1.1%)
Saddle Points Saddle Points
104
246 (avg. 2.4)
76 (73.1%)
2 (1.9%)
Say Say
67
140 (avg. 2.1)
34 (50.7%)
1 (1.5%)
Series Series
167
331 (avg. 2.0)
118 (70.7%)
0 (0.0%)
Simple Linked List Simple Linked List
156
235 (avg. 1.5)
108 (69.2%)
0 (0.0%)
Twelve Days Twelve Days
196
246 (avg. 1.3)
145 (74.0%)
1 (0.5%)
Word Count Word Count
484
651 (avg. 1.3)
390 (80.6%)
11 (2.3%)
Atbash Cipher Atbash Cipher
87
214 (avg. 2.5)
65 (74.7%)
1 (1.1%)
Binary Search Tree Binary Search Tree
122
529 (avg. 4.3)
78 (63.9%)
1 (0.8%)
Crypto Square Crypto Square
86
306 (avg. 3.6)
59 (68.6%)
0 (0.0%)
Custom Set Custom Set
91
192 (avg. 2.1)
57 (62.6%)
1 (1.1%)
Food Chain Food Chain
66
90 (avg. 1.4)
40 (60.6%)
0 (0.0%)
Linked List Linked List
108
224 (avg. 2.1)
73 (67.6%)
5 (4.6%)
Luhn Luhn
95
185 (avg. 1.9)
67 (70.5%)
3 (3.2%)
OCR Numbers OCR Numbers
71
124 (avg. 1.7)
43 (60.6%)
2 (2.8%)
Roman Numerals Roman Numerals
117
189 (avg. 1.6)
83 (70.9%)
2 (1.7%)
Run-Length Encoding Run-Length Encoding
84
141 (avg. 1.7)
55 (65.5%)
0 (0.0%)
Simple Cipher Simple Cipher
76
136 (avg. 1.8)
47 (61.8%)
0 (0.0%)
Bowling Bowling
77
158 (avg. 2.1)
38 (49.4%)
0 (0.0%)
Complex Numbers Complex Numbers
57
81 (avg. 1.4)
33 (57.9%)
0 (0.0%)
Nth Prime Nth Prime
99
224 (avg. 2.3)
67 (67.7%)
1 (1.0%)
Palindrome Products Palindrome Products
66
140 (avg. 2.1)
45 (68.2%)
0 (0.0%)
Pig Latin Pig Latin
73
151 (avg. 2.1)
46 (63.0%)
0 (0.0%)
Tournament Tournament
71
151 (avg. 2.1)
51 (71.8%)
1 (1.4%)
Transpose Transpose
66
114 (avg. 1.7)
39 (59.1%)
0 (0.0%)
Matching Brackets Matching Brackets
88
175 (avg. 2.0)
63 (71.6%)
1 (1.1%)
Dominoes Dominoes
71
121 (avg. 1.7)
39 (54.9%)
0 (0.0%)
Minesweeper Minesweeper
83
154 (avg. 1.9)
46 (55.4%)
1 (1.2%)
Wordy Wordy
91
235 (avg. 2.6)
58 (63.7%)
1 (1.1%)
Poker Poker
186
215 (avg. 1.2)
44 (23.7%)
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