Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

Exercism

Swift

via Exercism

Overview

Coursera Flash Sale
40% Off Coursera Plus for 3 Months!
Grab it
Swift is a modern open source programming language that runs on macOS, Linux and on Windows using a linux subsystem. Swift was developed initially by Apple to interoperate with their key frameworks, Cocoa and CocoaTouch, both of which are mostly implemented in Objective-C.

Syllabus

  • Hello World
    • Exercism's classic introductory exercise. Just say "Hello, World!".
  • Layers of Lasagna
    • Learn the basics of Swift cooking a brilliant lasagna from your favorite cooking book
  • Wings Quest
    • Learn about booleans by implementing the rules of the Wind Quest game.
  • Freelancer Rates
    • Learn about numbers whilst helping a freelancer communicate with a project manager about day- and month rates.
  • Cal's Custom Sign Shop
    • Learn about characters by helping a sign company create custom messages for their signs.
  • Secret Agent Double-Null0111
    • Learn about higher-order functions by becoming a spy and infiltrate the secret UMBRA headquarters
  • Vexing Vehicle Purchase
    • Learn about conditionals while preparing for your next vehicle purchase
  • Magician-in-Training
    • Help Elyse with her Enchantments and learn about arrays in the process.
  • ChessBoard
    • Learn about ranges while making a chess board.
  • Bird Watcher
    • Count the birds in your garden with for loops.
  • Santa's Swifty Helper
    • Learn about tuples by upgrading the system software of Santa's logistics division.
  • Slice Sizing
    • Learn about optionals by finding the pizza configuration to give you the largest slice.
  • Expert Mixologist
    • Learn about loops by making tasty drinks for the public to enjoy on their nights out.
  • Double-Null0111: Closures Are Forever
    • Learn about closures by preventing a bomb from exploding at the Governor's ball.
  • High Score Board
    • Learn about dictionaries by tracking high scores of an arcade game.
  • The 1st Rule of Poetry Club
    • Learn about strings using poems to get into your local poetry club.
  • Lasagna Master
    • Dig deeper into functions by cooking your favorite lasagna.
  • Windowing System
    • Learn about structs and classes by simulating a windowing based computer system.
  • Log Lines
    • Learn about strings by parsing application logs
  • Difference of Squares
    • Find the difference between the square of the sum and the sum of the squares of the first N natural numbers.
  • Gigasecond
    • Given a moment, determine the moment that would be after a gigasecond has passed.
  • Leap
    • Determine whether a given year is a leap year.
  • RNA Transcription
    • Given a DNA strand, return its RNA complement.
  • Space Age
    • Given an age in seconds, calculate how old someone is in terms of a given planet's solar years.
  • Sum of Multiples
    • Given a number, find the sum of all the multiples of particular numbers up to but not including that number.
  • Two Fer
    • Create a sentence of the form "One for X, one for me.".
  • Reverse String
    • Reverse a given string.
  • Resistor Color
    • Convert a resistor band's color to its numeric representation.
  • Darts
    • Calculate the points scored in a single toss of a Darts game.
  • Bob
    • Bob is a lackadaisical teenager. In conversation, his responses are very limited.
  • ETL
    • Change the data format for scoring a game to more easily add other languages.
  • Armstrong Numbers
    • Determine if a number is an Armstrong number.
  • Grade School
    • Given students' names along with the grade that they are in, create a roster for the school.
  • Grains
    • Calculate the number of grains of wheat on a chessboard given that the number on each square doubles.
  • Hamming
    • Calculate the Hamming distance between two DNA strands.
  • Isogram
    • Determine if a word or phrase is an isogram.
  • List Ops
    • Implement basic list operations.
  • Nucleotide Count
    • Given a DNA string, compute how many times each nucleotide occurs in the string.
  • Raindrops
    • Convert a number into its corresponding raindrop sounds - Pling, Plang and Plong.
  • Resistor Color Duo
    • Convert color codes, as used on resistors, to a numeric value.
  • High Scores
    • Manage a player's High Score list.
  • D&D Character
    • Randomly generate Dungeons & Dragons characters.
  • Square Root
    • Given a natural radicand, return its square root.
  • Binary Search
    • Implement a binary search algorithm.
  • Circular Buffer
    • A data structure that uses a single, fixed-size buffer as if it were connected end-to-end.
  • Clock
    • Implement a clock that handles times without dates.
  • Collatz Conjecture
    • Calculate the number of steps to reach 1 using the Collatz conjecture.
  • Diamond
    • Given a letter, print a diamond starting with 'A' with the supplied letter at the widest point.
  • Flatten Array
    • Take a nested list and return a single list with all values except nil/null.
  • ISBN Verifier
    • Check if a given string is a valid ISBN-10 number.
  • Kindergarten Garden
    • Given a diagram, determine which plants each child in the kindergarten class is responsible for.
  • Perfect Numbers
    • Determine if a number is perfect, abundant, or deficient based on Nicomachus' (60 - 120 CE) classification scheme for positive integers.
  • Phone Number
    • Clean up user-entered phone numbers so that they can be sent SMS messages.
  • Protein Translation
    • Translate RNA sequences into proteins.
  • Proverb
    • For want of a horseshoe nail, a kingdom was lost, or so the saying goes. Output the full text of this proverbial rhyme.
  • Queen Attack
    • Given the position of two queens on a chess board, indicate whether or not they are positioned so that they can attack each other.
  • Robot Name
    • Manage robot factory settings.
  • Robot Simulator
    • Write a robot simulator.
  • Scrabble Score
    • Given a word, compute the Scrabble score for that word.
  • Secret Handshake
    • Given a decimal number, convert it to the appropriate sequence of events for a secret handshake.
  • Sieve
    • Use the Sieve of Eratosthenes to find all the primes from 2 up to a given number.
  • Strain
    • Implement the `keep` and `discard` operation on collections.
  • Sublist
    • Write a function to determine if a list is a sublist of another list.
  • Triangle
    • Determine if a triangle is equilateral, isosceles, or scalene.
  • Bottle Song
    • Produce the lyrics to the popular children's repetitive song: Ten Green Bottles.
  • Resistor Color Trio
    • Convert color codes, as used on resistors, to a human-readable label.
  • Yacht
    • Score a single throw of dice in the game Yacht.
  • Acronym
    • Convert a long phrase to its acronym.
  • All Your Base
    • Convert a number, represented as a sequence of digits in one base, to any other base.
  • Allergies
    • Given a person's allergy score, determine whether or not they're allergic to a given item, and their full list of allergies.
  • Anagram
    • Given a word and a list of possible anagrams, select the correct sublist.
  • House
    • Output the nursery rhyme 'This is the House that Jack Built'.
  • Largest Series Product
    • Given a string of digits, calculate the largest product for a contiguous substring of digits of length n.
  • Matrix
    • Given a string representing a matrix of numbers, return the rows and columns of that matrix.
  • Meetup
    • Calculate the date of meetups.
  • Pangram
    • Determine if a sentence is a pangram.
  • Pascal's Triangle
    • Compute Pascal's triangle up to a given number of rows.
  • Prime Factors
    • Compute the prime factors of a given natural number.
  • Pythagorean Triplet
    • Given an integer N, find all Pythagorean triplets for which a + b + c = N.
  • Rotational Cipher
    • Create an implementation of the rotational cipher, also sometimes called the Caesar cipher.
  • Saddle Points
    • Detect saddle points in a matrix.
  • Say
    • Given a number from 0 to 999,999,999,999, spell out that number in English.
  • Series
    • Given a string of digits, output all the contiguous substrings of length `n` in that string.
  • Simple Linked List
    • Write a simple linked list implementation that uses Elements and a List.
  • Twelve Days
    • Output the lyrics to 'The Twelve Days of Christmas'.
  • Word Count
    • Given a phrase, count the occurrences of each word in that phrase.
  • Atbash Cipher
    • Create an implementation of the Atbash cipher, an ancient encryption system created in the Middle East.
  • Binary Search Tree
    • Insert and search for numbers in a binary tree.
  • Crypto Square
    • Implement the classic method for composing secret messages called a square code.
  • Custom Set
    • Create a custom set type.
  • Food Chain
    • Generate the lyrics of the song 'I Know an Old Lady Who Swallowed a Fly'.
  • Knapsack
    • Given a knapsack that can only carry a certain weight, determine which items to put in the knapsack in order to maximize their combined value.
  • Linked List
    • Implement a doubly linked list.
  • Luhn
    • Given a number determine whether or not it is valid per the Luhn formula.
  • OCR Numbers
    • Given a 3 x 4 grid of pipes, underscores, and spaces, determine which number is represented, or whether it is garbled.
  • Roman Numerals
    • Convert modern Arabic numbers into Roman numerals.
  • Run-Length Encoding
    • Implement run-length encoding and decoding.
  • Simple Cipher
    • Implement the Vigenère cipher, a simple substitution cipher.
  • Rail Fence Cipher
    • Implement encoding and decoding for the rail fence cipher.
  • Spiral Matrix
    • Given the size, return a square matrix of numbers in spiral order.
  • Word Search
    • Create a program to solve a word search puzzle.
  • Conway's Game of Life
    • Implement Conway's Game of Life.
  • Affine Cipher
    • Create an implementation of the Affine cipher, an ancient encryption algorithm from the Middle East.
  • Bowling
    • Score a bowling game.
  • Complex Numbers
    • Implement complex numbers.
  • Nth Prime
    • Given a number n, determine what the nth prime is.
  • Palindrome Products
    • Detect palindrome products in a given range.
  • Pig Latin
    • Implement a program that translates from English to Pig Latin.
  • Tournament
    • Tally the results of a small football competition.
  • Transpose
    • Take input text and output it transposed.
  • Matching Brackets
    • Make sure the brackets and braces all match.
  • Dominoes
    • Make a chain of dominoes.
  • Flower Field
    • Mark all the flowers in a garden.
  • Wordy
    • Parse and evaluate simple math word problems returning the answer as an integer.
  • SGF Parsing
    • Parsing a Smart Game Format string.
  • Poker
    • Pick the best hand(s) from a list of poker hands.

Reviews

Start your review of Swift

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.