👑 Premium Sign in Sign up

Language lab · Optional: iOS

🍎 Swift

Concept → trace → write code → run tests → explain why → improve → mini-project. Start in the browser if you like; set up your own computer when you are ready.

💻 Runs on your computerOfficial download & docs ↗

🛠️ Set up and verify

  1. Install
    see swift.org/install (Windows toolchain)
    xcode-select --install   (or install Xcode)
    see swift.org/install for your distribution
  2. Editor: Visual Studio Code with Xcode, or the Swift extension for VS Code.
  3. Create hello.swift
    print("Hello, GayaGnan!")
  4. Run it and check the version
    swift hello.swift
    swift --version
  5. Health check: paste what your terminal printed.

Install one language at a time. These commands only install or print versions; nothing here deletes files. Versions change: check the official page and note the version you installed.

🧭 The 14-lab path

  • 00 · Setup and verify — install the runtime and editor, run hello world, print the version, fix PATH
  • 01 · Syntax and trace — follow each line and the value of every variable
  • 02 · Logic — conditionals and decision trees
  • 03 · Loops — trace tables and loop challenges
  • 04 · Functions — break problems down and test each piece
  • 05 · Data structures — lists, maps, stacks, queues and trees you can see
  • 06 · Debugging — bug cases with a hint ladder
  • 07 · Algorithms — search, sort and Big-O comparison
  • 08 · Files and data — read and write fixture files
  • 09 · API or database — talk to a mock API or a sandbox database
  • 10 · Testing — write tests and read failing assertions
  • 11 · Security — secure coding and dependency hygiene for this language
  • 12 · Project — one portfolio mini-project
  • 13 · Assessment — quiz, coding test, rubric and an explain-your-answer prompt

📚 Modules

  1. types
  2. optionals
  3. functions
  4. structs and classes
  5. protocols
  6. collections
  7. async/await
  8. SwiftUI basics
  9. testing

🏗️ Mini-projects

  • Offline flashcard app
  • Learning progress dashboard

Projects use synthetic data only.