Prerequisite

Syllabus

Date Title Topics Resources
9/15 Moon Festival Holiday
9/22 Writing your first code
Introduction to this class, computer science, and Apple's platform.
  • Preface (Pre-Class Announcement)
  • Introduction to Computer and Programming
  • How to make an iOS app?
  • Swift - Introduction to the Swift language
  • Swift - Values and Variables
Keynote Slides
9/29 Introduction to Swift - I
Learn common programming components and data types in Swift (Variables and Functions)
  • Using Xcode Playground
  • Swift - Comments and Literals
  • Swift - Variables and Types
  • Swift - Operators
  • Swift - Strings
  • Swift - Functions
Keynote Slides
Playgrounds
Blog posts
10/6 Introduction to Swift - II
Learn common programming components and data types in Swift (Control Flows and Optionals)
  • Swift - Control Flows
  • Swift - Optionals
  • How to find references in documentations
Keynote Slides
Playgrounds
10/13 Introduction to Swift - III
Learn Collections and Enums in Swift
  • Swift - Collections
  • Swift - Enumerations (Enum)
Keynote Slides
Playgrounds
Homework 1: Book Store
10/20 Introduction to Swift - IV
Learn Error Handling and Closures in Swift. Try to use git SCM.
  • Swift - Error Handling
  • Swift - Closures
  • Using git and GitHub
Keynote Slides
Playgrounds
10/27 Introduction to Swift - V
Learn Structs, Classes, and Extensions in Swift.
  • Object-Oriented Programming
  • Swift - Structures, with Properties and Methods
  • Swift - Classes, with Inheritance
  • Swift - Extensions
Keynote Slides
Playgrounds
11/3 Introduction to Swift - VI
Learn Protocols and ARC in Swift.
  • Protocol-Oriented Programming
  • Swift - Protocols
  • Swift - Type casting and Optional Chaining
  • Swift - Access control of classes
  • Swift - ARC, Automatic Reference Counting
Keynote Slides
Playgrounds
11/10 Writing your first iOS app and Final-Project Proposal Presentation
  • Introduction to the CocoaTouch Frameworks: UIKit
  • Using Xcode Storyboard
Keynote Slides
Sample Projects
Homework 2: Calculator
References
11/17 Target-Action pattern and iOS Human Interface Guidelines
  • View Geometry and Target-action pattern
  • iOS Human Interface Guidelines
Keynote Slides
Apple Guidelines
11/24 Table View & Navigation Controller
  • App Launch (Brief introduction)
  • Storyboard Segues
  • UINavigationController
  • UITableViewController and Cells
Keynote Slides
Sample Projects
12/1 Auto Layout & App Structure
  • Auto Layout
  • Adaptivity
  • Bundle and Sandbox
  • Property List
  • XCAssets
Keynote Slides
Sample Projects
12/8 Midterm Progress Report of Final-Project & Cocoapods
  • [Review and catch up previous progress]
  • Use cocoapods
Keynote Slides
12/15 [TBA]
Homework 3: MRT Stations
12/22 App Lifecycle & Communication Patterns
  • Application Lifecycle
  • Communication Patterns
Keynote Slides
Sample Projects
12/29 Networking & Concurrency
  • Networking
  • Concurrency
Keynote Slides
API Endpoints
1/5 Debug tools
  • Using Xcode debug tools
1/12 Final-Project Presentation and Demo
  • The idea/goal of your final project
  • Design process overview
  • Demo
  • Tools/packages you used
  • Summary
  • 10mins-30mins for each team