Today’s applications are increasingly mobile. Computers are no longer confined to desks and laps but instead live in our pockets and hands. This course teaches students how to build mobile apps for iOS, one of today’s most popular platforms. Students learn to write native and web apps for iPhones, iPod touches, and iPads using Xcode and the iOS SDK.

Students must have (and bring to each class) an Intel-based MacBook Air or MacBook Pro running Mac OS 10.7.4 or later. Class meetings will alternate between lectures and hands-on labs.


Prior programming experience in any object-oriented language and comfort with HTML and CSS are required.


You are expected to attend all lectures and labs and to submit all projects.


Your final grade will be determined primarily by your performance on the course’s projects. Projects are evaluated primarily along axes of scope, correctness, design, and style, with grades ordinarily determined by scope × (3 × correctness + 2 × design + 1 × style).


The address of the course’s website is


Lectures take place on Mondays between 6:30pm ET and 9:30pm ET in Northwest Science B101 at 52 Oxford Street. Hands-on labs take place on Wednesdays between 6:30pm ET and 9:30pm ET in Northwest Science B108 at 52 Oxford Street.

A schedule of lectures and labs, subject to change, appears below.

  • Week 0 (Mon 6/24, Wed 6/26)

    • Lecture: JavaScript

    • Lab: JavaScript, Staff’s Choice of Web Apps

  • Week 1 (Mon 7/1, Wed 7/3)

    • Guest Lecture: Objective-C

    • Lab: JavaScript, Staff’s Choice of Web Apps

  • Week 2 (Mon 7/8, Wed 7/10)

    • Lecture: UIKit

    • Lab: Objective-C, UIKit, Staff’s Choice of Native Apps

  • Week 3 (Mon 7/15, Wed 7/17)

    • Lecture: UIKit, Storage

    • Lab: UIKit, Storage, Staff’s Choice of Native Apps

  • Week 4 (Mon 7/22, Wed 7/24)

    • Lecture: Gestures, Core Graphics

    • Lab: Gestures, Core Graphics, Student’s Choice of Apps

  • Week 5 (Mon 7/29, Wed 7/31)

    • Lecture: Windows Phone, Android

    • Lab: Student’s Choice of Apps


A schedule of projects, subject to change, appears below.

  • Staff’s Choice of Web Apps

    • Released: Wed 6/26

    • Due: Wed 7/10, noon ET

  • Staff’s Choice of Native Apps

    • Released: Wed 7/10

    • Due: Wed 7/24, noon ET

  • Student’s Choice of Apps

    • Released: Wed 7/24

    • Due: Wed 8/7, noon ET

Extensions on projects are not granted, except in cases of emergency. Technical difficulties do not constitute emergencies. Projects submitted n hours late may be penalized by 10% for n in (0, 24], by 25% for n in (24, 48], by 50% for n in (48, 72], and by 100% for n greater than 72. Lateness will be determined by submissions' timestamps.

App Party

On Wed 8/7 from 6:30pm ET until 8:00pm ET in Northwest Science B108, the course will conclude with an App Party, a course-wide exhibition of students apps. The App Party will be an opportunity to mingle, enjoy demos, and eat cake. Family and friends are welcome to join.


No books are required for this course, but you may find the below of interest.

Beginning iOS 6 Development: Exploring the iOS SDK
David Mark, Jack Nutting, Jeff LaMarche, Fredrik Olsson
Apress (2013)
ISBN 978-1430245124

Learn HTML5 and JavaScript for iOS: Web Standards-based Apps for iPhone, iPad, and iPod touch
Scott Preston
Apress (2012)
ISBN 978-1430240389

Programming in Objective-C, Fifth Edition
Stephen G. Kochan
Pearson Education, Inc. (2013)
ISBN 978-0321887283

Academic Honesty

All work that you do toward fulfillment of this course’s expectations must be your own. Collaboration on projects is not permitted.

Viewing or copying another individual’s work (even if left by a printer, stored in an executable directory, or posted online) or lifting material from a book, website, or other source—even in part—and presenting it as your own constitutes academic dishonesty, as does showing or giving your work, even in part, to another student or soliciting the work of another individual. Similarly is dual submission academic dishonesty: you may not submit the same or similar work to this course that you have submitted or will submit to another. Nor may you provide or make available solutions to problem sets to individuals who take or may take this course in the future. Moreover, submission of any work that you intend to use outside of the course (e.g., for a job) must be approved by the course’s instructor.

You are welcome to discuss the course’s material with others in order to better understand it. You may even discuss projects with classmates, but you may not share code. In other words, you may communicate with classmates in English, but you may not communicate in, say, Objective-C. If in doubt as to the appropriateness of some discussion, contact the course’s instructor.

You may turn to the Web for instruction beyond the course’s lectures and sections, for references, and for solutions to technical difficulties, but not for outright solutions to problems on problem sets or your own final project. However, failure to cite (as with comments) the origin of any code or technique that you do discover outside of the course’s lectures and sections (even while respecting these constraints) and then integrate into your own work may be considered academic dishonesty.

All forms of academic dishonesty are dealt with harshly. If the course refers some matter to the Administrative Board and the outcome for some student is disciplinary action, the course reserves the right to impose local sanctions on top of that outcome for that student that may include, but not be limited to, a failing grade for work submitted or for the course itself.

Acknowledgement and Authorization

Harvard plans to make audio and video recordings of Computer Science S-76 (CSCI S-76) lectures and other events and activities related to CSCI S-76, with the aims of making the content of the course more widely available and contributing to public understanding of innovative learning (the "Projects"). The recordings, or edited versions of them, may be made available to other Harvard students, to students at other educational institutions, and to the broader public via the Internet, television, theatrical distribution, DVD, or other means. It is also possible that the recordings may be used to make other derivative works in the future. Students may elect not to appear in video used in the Projects and may still participate fully in CSCI S-76.

When you submit the course’s final project, you will need to sign online an Acknowledgement and Authorization in the following form:

I understand that, if I do not wish any video footage of me to be used as part of the Projects, I should so inform the course’s instructor by emailing within one week of enrolling in CSCI S-76. In that event, I understand that I should sit in the designated "no film" section of CSCI S-76 classrooms and should not walk in the field of view of the cameras. I understand that Harvard will take reasonable steps, with my cooperation, to avoid including identifiable images of me in Project video shot in classrooms and other course locations after I opt out as just described. I understand that I am free to opt out of the Project videos in this way, and that doing so will not affect my grade or my ability to participate in course activities.

Unless I opt out of the Project videos as described above and take the steps that will be outlined by the instructor to avoid being filmed, I authorize Harvard to make and use video and audio recordings of my participation in CSCI S-76 and activities related to CSCI S-76 (the "Recordings"). I understand and agree that the Recordings may include my image, voice and name. I also understand and agree that, even if I opt out of the Project videos, my voice and spoken name may be picked up by microphones outside the "no film" section and may be included in the Recordings.

I understand and agree that Harvard will have the irrevocable, worldwide right to make, edit, modify, copy, publish, transmit, distribute, sell, publicly display, publicly perform, and otherwise use and make available their respective Recordings and any other works that may be derived from those Recordings, in any manner or medium now known or later invented, and to authorize others to do so as well. I hereby transfer to Harvard any rights, including copyrights, I may have in the Recordings Harvard makes. I will remain free to use and disseminate any ideas, remarks, or other material that I may contribute to course discussions.

I acknowledge and agree that I will not be entitled to any payment, now or in the future, in connection with the Recordings or any works derived from them. This Acknowledgment and Authorization is a binding agreement, and is signed as a document under seal governed by the laws of the Commonwealth of Massachusetts.

Unless you opt out as described in the Acknowledgment and Authorization, you are agreeing, by attending CSCI S-76, that your participation in CSCI S-76 and related activities may be filmed and used by Harvard in connection with the video projects without further obligation or liability to you, even if you do not sign any authorization.

If you have any questions about the above, contact