CSE 438

Mobile Application Development

shopping calculator app icon
virtual pet app icon
drawing app icon
movie search app icon
Date Topic Assigned Due Slides / Videos Location
Mon, June 12 Intro to Swift .pdf .pdf Cupples II 230
Wed, June 14 Intro to Xcode in Mac Lab Studio 1 Lab 1 Whitaker 316
Mon, June 19 Additional Swift Topics and MVC .pdf Cupples II 230
Wed, June 21 Studio 2 and Lab 2 Studio 2 Lab 2 Lab 1 Whitaker 316
Mon, June 26 View Controllers, Scroll Views, Table Views Cupples II 230
Wed, June 28 In class demo 1 Lab 3 Lab 4 Lab 2 Whitaker 316
Mon, July 3 Storage and APIs Cupples II 230
Wed, July 5 In class demo 2 Lab 3 Cupples II 230
Mon, July 10 Location, Mapkit, Threading, GCD, Discuss Project Ideas Cupples II 230
Wed, July 12 Audio and Video, Remote APIs, Discuss Project Ideas Whitaker 316
Mon, July 17 Final Project Proposals Lab 4 and Final Project Proposal Cupples II 230
Wed, July 19 Objective-C Cupples II 230
Mon, July 24 Open Lab Session Whitaker 316
Wed, July 26 Final Project Update Final Project Update Cupples II 230
Mon, July 31 Open Lab Session Whitaker 316
Wed, Aug 2 Final Project Presentations Final Project Cupples II 230

TA Hours

All TA hours will be held in the Mac Lab (Whitaker 316). Any changes to the hours listed here will be noted on Piazza.

1pm - 2:30pm (no TA hours on July 16th)
Tuesday 9am - 10am
6:30pm - 8pm (no TA hours on July 14th)

Course Information

Learn how to create iOS apps in the Swift programming language. This course covers a variety of topics in the development of modern mobile applications, with a focus on hands-on projects. Students will create multiple fully-functional apps from scratch. The course emphasizes object-oriented design patterns and real-world development techniques. Time is provided at the end of the course for students to work on a project of their own interest.


Todd Sproull
Jolley 536


Zhuangzhuang (Arthur) Zhang

Collaboration Policy

For individual assignments, the code you submit must be your own. For the final project, the code must come from you or your teammates. You are allowed to use portions of code found on the Internet (as long as it is not from another CSE 438 student, past or present).

If you are using a significant amount of code from another website, be sure to include a comment in your submission with the URL to the website. Assume significant means 2 or more lines of code.

Submitting code from another student or from a previous semester is considered cheating and you will receive an F in the course. I have a zero tolerance policy towards students using code (or derived code) from another student, do not do it.


Grades are assigned based on performance on the four lab projects and final project. The labs are worth 70% of the final grade, and the final project is worth 30%. The lab breakdown is listed below:

Lab 1: Shopping Calculator (50 points)
Lab 2: Virtual Pet App (75 points)
Lab 3: Drawing App (100 points)
Lab 4: Movie Search App (150 points)


Grades are based on your performance of the labs assigned throughout the semester (70%) and your final project (30%).
Your letter grade in this course is based on your semester score, computed as described above. No rounding is performed on your semester score: you must have at least the stated number of points to earn the associated grade. The following table explains how the score is converted into a letter or pass/fail grade:

Score Grade
97 A+ Pass
93 A
90 A-
87 B+
83 B
80 B-
77 C+
73 C
70 C-
60 D Fail
0 F