I. General Information

CART 498J, Special Topics in CART: Mobile Media
Fall 2012, 3 Credits

Lecture Wednesdays 08:30 – 10:30 SGW EV–7.735
Lab Wednesdays 10:30 – 12:30 SGW EV–5.635

Department of Design and Computation Arts, Faculty of Fine Arts
ez [at] silentlycrashing [dot] net

II. Course Description

This studio course focuses on designing and developing compelling interactive experiences on mobile devices. It will emphasize design strategies that work across multiple form factors and device types, and make use of haptic, locative and social data to create engaging experimental applications.


48 credits completed in the Major or Specialization in Computation Arts, or written permission of the Department.

As one course is not enough to cover all aspects of mobile computing, this course will focus on iOS development for iPhone, iPod, and iPad devices. This is a relatively advanced programming class and you should have experience with Object-Oriented Programming (OOP). If you are not familiar with terms such as class, instance, method, inheritance, then this might not be the class for you.

III. Objectives

In this course, students will:

  • Become aware of the computational approaches to mobile development projects.
  • Familiarize themselves with concepts of object-oriented programming.
  • Find solutions to design challenges for small and medium screen output, and for touch-based input.
  • Become proficient in the Objective-C programming language.
  • Develop applications that run on Apple iOS devices.

IV. Schedule (may be subject to change)




  • Course Outline
  • Assignments
  • Prerequisites


  • Definitions
  • Communication

Introduction to Objective-C

  • Syntax
  • Properties
  • Methods

LAB: Diving into Xcode

  • New Project
  • Interface Builder
  • Documentation
  • Building and Running

ASSIGNMENT 1: OUT, Due on Sep 21 2012


Reference Counting

  • strong vs. weak
  • nil

Input and Output

  • Touch and Gestures
  • Audio
  • Image and Camera
  • Spatial Input
  • Screen Resolution and Retina Display


  • Instance vs. Class Methods
  • nil
  • Object Instantiation

Foundation Classes

  • NSObject
  • NSNumber
  • NSString and NSMutableString
  • NSArray and NSMutableArray
  • NSDictionary and NSMutableDictionary

Object Typing

  • Dynamic Binding
  • Casting and Typing
  • Introspection

LAB: Pimp My Cat App

  • UIImage
  • NSUserDefaults
  • UITextField




  • Hierarchy
  • Coordinates
  • Drawing (text, images, custom shapes, etc.)


  • Definition
  • @required vs. @optional
  • Implementation and Usage


  • Event Handling
  • Struts and Springs


  • UIGestureRecognizer



  • UINavigationController and UIViewController
  • Storyboard and Segues in iOS 5
  • Pushing and Popping Views in iOS 4
  • Modal Segues

iPad Navigation

  • UISplitViewController
  • UIPopoverController

Universal Applications

  • Initialization
  • Lifecycle

Scroll Views

  • UIScrollView
  • Adding Subviews
  • Positioning Subviews
  • Zooming



Table Views

  • UITableViewController and UITableView
  • Customizing UITableViewCell
  • UITableViewDataSource and UITableViewDelegate
  • Dynamic Data


  • Variable Scope
  • Parameters


  • Grand Central Dispatch
  • Queues


  • CLLocation and CLLocationManager
  • Accuracy
  • Device Capabilities
  • MapKit Framework




  • Property Lists
  • File System

Core Data

  • Data Model
  • Subclassing NSManagedObject
  • Inserting and Deleting into an NSManagedObjectContext
  • Querying with NSFetchRequest
  • Using Core Data with Table Views with NSFetchedResultsController


  • NSNotification and NSNotificationCenter



Modal View Controllers

  • Presenting and Dismissing
  • UIActionSheet and UIAlertView

Text Input

  • UITextField and UITextView
  • UIKeyboard

UIView Animation


  • Starting and Stopping
  • Using performSelector:withObject:afterDelay: as an Alternative

Getting Media

  • UIImagePickerController
  • Source Types and Available Media Types
  • Camera Capabilities


  • CMMotionManager
  • CMDeviceMotion
  • Capturing Data Using Blocks



TBD based on interest and scheduling

  • Networking
  • Push Notifications
  • Gaming (Cocos2D)
  • Distribution (App Store, In House, TestFlight)
  • Alternatives to Objective-C (openFrameworks, Cinder, etc.)


V. Course Materials

There is no required textbook for the class.

Suggested Resources

Computation Lab

SGW EV-7.760

The Computation Lab is an invaluable resource if you need help understanding class topics or working on your assignments. See the schedule on the website for more information.

VI. Grading


Programming Assignments (4)

Assignments due every 2 weeks for the first 8 weeks.
Topics on material covered during the lectures.
Each assignment is worth 10% of the final grade.



Show up to class on time.
Participate in discussions.
Ask questions if you’ve got them.


Final Project

The last weeks of class will be spent developing a larger scale application.
A project update will be due every week:

  • brainstorm and peer review
  • proposal
  • progress report
  • final presentation and critique



Grading Criteria

Programming assignments will be graded based on correctness, but also on elegance of solution and style. The rule of thumb is: Will you be able to understand what your code does if you look at it again in 6 months?

The grading scale is not absolute, but based on personal improvement.

Open-ended assignment questions and the final project will also be graded on creativity.

VII. Rights and Responsibilities


The most common offense under the Academic Code of Conduct is plagiarism which the Code defines as “the presentation of the work of another person as one’s own or without proper acknowledgement.”
This could be material copied word for word from books, journals, internet sites, professor’s course notes, etc. It could be material that is paraphrased but closely resembles the original source. It could be the work of a fellow student, for example, an answer on a quiz, data for a lab report, a paper or assignment completed by another student. It might be a paper purchased
through one of the many available sources. Plagiarism does not refer to words alone – it can also refer to copying images, graphs, tables, and ideas. “Presentation” is not limited to written work. It also includes oral presentations, computer assignments and artistic works. Finally, if you translate the work of another person into French or English and do not cite the source, this is also plagiarism.

In Simple Words:
Do not copy, paraphrase or translate anything from anywhere without saying where you obtained it!
(Source: The Academic Integrity Website)


Due dates are hard and must be respected. Late assignments will be penalized unless you have a valid reason.

Please inform the instructor well in advance if you will miss a deadline or will be unable to attend a class.

Department Standard for Absence

As a Departmental policy, a maximum of two absences per term is tolerated, after which an official medical certificate or other valid reason must be provided. Three unjustified absences per course will result in an automatic failure; justification must be given in writing to the instructor. Notification in writing will be sent to students after two missed classes. If you have started a course late, each class you missed will count as an absence. In all cases, students are responsible for any material that is not submitted. Information will not be repeated due to absence or tardiness, except for a legitimate medical or other emergency.

Department Standard for Punctuality

Students arriving to class fifteen minutes late or more will be considered as an absence.