Higher Education

Harvard College's Computer Science 164: Mobile Software Engineering

David J. Malan

Introduction to principles of software engineering for mobile devices and best practices, including code reviews, source control, and unit tests. Topics include Ajax, encapsulation, event handling, HTTP, memory management, MVC, object-oriented design, and user experience. Languages include HTML5, JavaScript, Objective-C, and PHP. Projects include mobile web apps and native iOS apps. This is OpenCourseWare, licensed by David J. Malan of Harvard University under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License. Visit http://cs164.tv/2012/spring/ for more material, including prior semesters and other courses.

Episodes

Lectures / Lecture 0: Introduction / Slides
2017-10-31 21:10:04 UTC
Lectures / Lecture 0: Introduction / Slides

Lectures / Lecture 0: Introduction / Syllabus
2017-10-31 21:10:04 UTC
Lectures / Lecture 0: Introduction / Syllabus

Lectures / Lecture 0: Introduction / Video / MP3
2017-10-31 21:10:04 UTC
Lectures / Lecture 0: Introduction / Video / MP3

Lectures / Lecture 0: Introduction / Video / MP4
2017-10-31 21:10:04 UTC
Lectures / Lecture 0: Introduction / Video / MP4

Lectures / Lecture 1: MVC / Slides
2017-10-31 21:10:04 UTC
Lectures / Lecture 1: MVC / Slides

Lectures / Lecture 1: MVC / Source Code / PDF
2017-10-31 21:10:04 UTC
Lectures / Lecture 1: MVC / Source Code / PDF

Lectures / Lecture 1: MVC / Video / MP3
2017-10-31 21:10:04 UTC
Lectures / Lecture 1: MVC / Video / MP3

Lectures / Lecture 1: MVC / Video / MP4
2017-10-31 21:10:04 UTC
Lectures / Lecture 1: MVC / Video / MP4

Lectures / Lecture 2: Relational Databases / Slides
2017-10-31 21:10:04 UTC
Lectures / Lecture 2: Relational Databases / Slides

Lectures / Lecture 2: Relational Databases / Source Code / PDF
2017-10-31 21:10:04 UTC
Lectures / Lecture 2: Relational Databases / Source Code / PDF

Lectures / Lecture 2: Relational Databases / Video / MP3
2017-10-31 21:10:04 UTC
Lectures / Lecture 2: Relational Databases / Video / MP3

Lectures / Lecture 2: Relational Databases / Video / MP4
2017-10-31 21:10:04 UTC
Lectures / Lecture 2: Relational Databases / Video / MP4

Lectures / Lecture 3: Design Patterns / Slides
2017-10-31 21:10:04 UTC
Lectures / Lecture 3: Design Patterns / Slides

Lectures / Lecture 3: Design Patterns / Source Code / PDF
2017-10-31 21:10:04 UTC
Lectures / Lecture 3: Design Patterns / Source Code / PDF

Lectures / Lecture 3: Design Patterns / Video / MP3
2017-10-31 21:10:04 UTC
Lectures / Lecture 3: Design Patterns / Video / MP3

Lectures / Lecture 3: Design Patterns / Video / MP4
2017-10-31 21:10:04 UTC
Lectures / Lecture 3: Design Patterns / Video / MP4

Lectures / Lecture 4: Objective-C / Slides
2017-10-31 21:10:04 UTC
Lectures / Lecture 4: Objective-C / Slides

Lectures / Lecture 4: Objective-C / Source Code / PDF
2017-10-31 21:10:04 UTC
Lectures / Lecture 4: Objective-C / Source Code / PDF

Lectures / Lecture 4: Objective-C / Video / MP3
2017-10-31 21:10:05 UTC
Lectures / Lecture 4: Objective-C / Video / MP3

Lectures / Lecture 4: Objective-C / Video / MP4
2017-10-31 21:10:05 UTC
Lectures / Lecture 4: Objective-C / Video / MP4

Lectures / Lecture 5: iOS / Slides
2017-10-31 21:10:05 UTC
Lectures / Lecture 5: iOS / Slides

Lectures / Lecture 5: iOS / Source Code / PDF
2017-10-31 21:10:05 UTC
Lectures / Lecture 5: iOS / Source Code / PDF

Lectures / Lecture 5: iOS / Video / MP3
2017-10-31 21:10:05 UTC
Lectures / Lecture 5: iOS / Video / MP3

Lectures / Lecture 5: iOS / Video / MP4
2017-10-31 21:10:05 UTC
Lectures / Lecture 5: iOS / Video / MP4

Lectures / Lecture 6: iOS, continued / Slides
2017-10-31 21:10:05 UTC
Lectures / Lecture 6: iOS, continued / Slides

Lectures / Lecture 6: iOS, continued / Source Code / PDF
2017-10-31 21:10:05 UTC
Lectures / Lecture 6: iOS, continued / Source Code / PDF

Lectures / Lecture 6: iOS, continued / Video / MP3
2017-10-31 21:10:05 UTC
Lectures / Lecture 6: iOS, continued / Video / MP3

Lectures / Lecture 6: iOS, continued / Video / MP4
2017-10-31 21:10:05 UTC
Lectures / Lecture 6: iOS, continued / Video / MP4

Lectures / Lecture 7: iOS, continued / Slides
2017-10-31 21:10:05 UTC
Lectures / Lecture 7: iOS, continued / Slides

Lectures / Lecture 7: iOS, continued / Source Code / PDF
2017-10-31 21:10:05 UTC
Lectures / Lecture 7: iOS, continued / Source Code / PDF

Lectures / Lecture 7: iOS, continued / Video / MP3
2017-10-31 21:10:05 UTC
Lectures / Lecture 7: iOS, continued / Video / MP3

Lectures / Lecture 7: iOS, continued / Video / MP4
2017-10-31 21:10:05 UTC
Lectures / Lecture 7: iOS, continued / Video / MP4

Lectures / Lecture 8: Unit Tests / Slides
2017-10-31 21:10:05 UTC
Lectures / Lecture 8: Unit Tests / Slides

Lectures / Lecture 8: Unit Tests / Source Code / PDF
2017-10-31 21:10:05 UTC
Lectures / Lecture 8: Unit Tests / Source Code / PDF

Lectures / Lecture 8: Unit Tests / Video / MP3
2017-10-31 21:10:05 UTC
Lectures / Lecture 8: Unit Tests / Video / MP3

Lectures / Lecture 8: Unit Tests / Video / MP4
2017-10-31 21:10:05 UTC
Lectures / Lecture 8: Unit Tests / Video / MP4

Lectures / Lecture 9: Scalability / Slides
2017-10-31 21:10:05 UTC
Lectures / Lecture 9: Scalability / Slides

Lectures / Lecture 9: Scalability / Source Code / PDF
2017-10-31 21:10:05 UTC
Lectures / Lecture 9: Scalability / Source Code / PDF

Lectures / Lecture 9: Scalability / Video / MP3
2017-10-31 21:10:05 UTC
Lectures / Lecture 9: Scalability / Video / MP3

Lectures / Lecture 9: Scalability / Video / MP4
2017-10-31 21:10:05 UTC
Lectures / Lecture 9: Scalability / Video / MP4

Lectures / Lecture 10: Windows Mobile / Video / MP3
2017-10-31 21:10:05 UTC
Lectures / Lecture 10: Windows Mobile / Video / MP3

Lectures / Lecture 10: Windows Mobile / Video / MP4
2017-10-31 21:10:05 UTC
Lectures / Lecture 10: Windows Mobile / Video / MP4

Lectures / Lecture 11: Security / Slides
2017-10-31 21:10:05 UTC
Lectures / Lecture 11: Security / Slides

Lectures / Lecture 11: Security / Source Code / PDF
2017-10-31 21:10:05 UTC
Lectures / Lecture 11: Security / Source Code / PDF

Lectures / Lecture 11: Security / Video / MP3
2017-10-31 21:10:05 UTC
Lectures / Lecture 11: Security / Video / MP3

Lectures / Lecture 11: Security / Video / MP4
2017-10-31 21:10:05 UTC
Lectures / Lecture 11: Security / Video / MP4

Projects / Project 0 / Specification
2017-10-31 21:10:05 UTC
Projects / Project 0 / Specification

Projects / Project 1 / Specification
2017-10-31 21:10:05 UTC
Projects / Project 1 / Specification

Projects / Project 2 / Specification
2017-10-31 21:10:05 UTC
Projects / Project 2 / Specification

Projects / Project 2 / Walkthrough / Slides
2017-10-31 21:10:05 UTC
Projects / Project 2 / Walkthrough / Slides

Projects / Project 2 / Walkthrough / Source Code / PDF
2017-10-31 21:10:05 UTC
Projects / Project 2 / Walkthrough / Source Code / PDF

Projects / Project 2 / Walkthrough / Video
2017-10-31 21:10:05 UTC
Projects / Project 2 / Walkthrough / Video

Projects / Project 3 / Specification
2017-10-31 21:10:05 UTC
Projects / Project 3 / Specification

Sections / Section 1: MVC / Slides
2017-10-31 21:10:05 UTC
Sections / Section 1: MVC / Slides

Sections / Section 1: MVC / Source Code / PDF
2017-10-31 21:10:05 UTC
Sections / Section 1: MVC / Source Code / PDF

Sections / Section 1: MVC / Video / MP3
2017-10-31 21:10:05 UTC
Sections / Section 1: MVC / Video / MP3

Sections / Section 1: MVC / Video / MP4
2017-10-31 21:10:05 UTC
Sections / Section 1: MVC / Video / MP4

Sections / Section 2: OOP / Slides
2017-10-31 21:10:05 UTC
Sections / Section 2: OOP / Slides

Sections / Section 2: OOP / Source Code / PDF
2017-10-31 21:10:05 UTC
Sections / Section 2: OOP / Source Code / PDF

Sections / Section 2: OOP / Video / MP3
2017-10-31 21:10:05 UTC
Sections / Section 2: OOP / Video / MP3

Sections / Section 2: OOP / Video / MP4
2017-10-31 21:10:05 UTC
Sections / Section 2: OOP / Video / MP4

Sections / Section 3: XCode and Interface Builder / Slides
2017-10-31 21:10:05 UTC
Sections / Section 3: XCode and Interface Builder / Slides

Sections / Section 3: XCode and Interface Builder / Source Code / PDF
2017-10-31 21:10:05 UTC
Sections / Section 3: XCode and Interface Builder / Source Code / PDF

Sections / Section 3: XCode and Interface Builder / Video / MP3
2017-10-31 21:10:05 UTC
Sections / Section 3: XCode and Interface Builder / Video / MP3

Sections / Section 3: XCode and Interface Builder / Video / MP4
2017-10-31 21:10:05 UTC
Sections / Section 3: XCode and Interface Builder / Video / MP4

Sections / Section 4: iOS (Evil Hangman Walkthrough) / Slides
2017-10-31 21:10:05 UTC
Sections / Section 4: iOS (Evil Hangman Walkthrough) / Slides

Sections / Section 4: iOS (Evil Hangman Walkthrough) / Source Code / PDF
2017-10-31 21:10:05 UTC
Sections / Section 4: iOS (Evil Hangman Walkthrough) / Source Code / PDF

Sections / Section 4: iOS (Evil Hangman Walkthrough) / Video / MP3
2017-10-31 21:10:05 UTC
Sections / Section 4: iOS (Evil Hangman Walkthrough) / Video / MP3

Sections / Section 4: iOS (Evil Hangman Walkthrough) / Video / MP4
2017-10-31 21:10:05 UTC
Sections / Section 4: iOS (Evil Hangman Walkthrough) / Video / MP4

Sections / Section 5: iOS (TableViews and Navigation Controllers) / Slides
2017-10-31 21:10:05 UTC
Sections / Section 5: iOS (TableViews and Navigation Controllers) / Slides

Sections / Section 5: iOS (TableViews and Navigation Controllers) / Source Code / PDF
2017-10-31 21:10:05 UTC
Sections / Section 5: iOS (TableViews and Navigation Controllers) / Source Code / PDF

Sections / Section 5: iOS (TableViews and Navigation Controllers) / Video / MP3
2017-10-31 21:10:05 UTC
Sections / Section 5: iOS (TableViews and Navigation Controllers) / Video / MP3

Sections / Section 5: iOS (TableViews and Navigation Controllers) / Video / MP4
2017-10-31 21:10:05 UTC
Sections / Section 5: iOS (TableViews and Navigation Controllers) / Video / MP4

Sections / Section 6: iOS (MapKit and Movies) / Slides
2017-10-31 21:10:05 UTC
Sections / Section 6: iOS (MapKit and Movies) / Slides

Sections / Section 6: iOS (MapKit and Movies) / Source Code / PDF
2017-10-31 21:10:05 UTC
Sections / Section 6: iOS (MapKit and Movies) / Source Code / PDF

Sections / Section 6: iOS (MapKit and Movies) / Video / MP3
2017-10-31 21:10:05 UTC
Sections / Section 6: iOS (MapKit and Movies) / Video / MP3

Sections / Section 6: iOS (MapKit and Movies) / Video / MP4
2017-10-31 21:10:05 UTC
Sections / Section 6: iOS (MapKit and Movies) / Video / MP4