CompSci 196
Spring 2011
Software for Mobile Devices


Lecture meets on Wednesday from 4:25-7:15pm in North room 311

Class attendance is required as class time will often involve participatory exercises, code reviews, or team meetings.


Professor Duvall Professor Robert Duvall
LSRC room D228
rcd AT cs DOT duke DOT edu
Office Hours: TBA
Drop-in policy: Feel free to come in whenever my office door is open. You may also contact me to make an appointment.
Professor Lucic Professor Richard Lucic
LSRC room D310
lucic AT cs DOT duke DOT edu
Office Hours: TBA
Drop-in policy: TBA
  Teaching Assistants
Office hours by appointment with team
  • Nancy Chen, Digital Seamonsters App
  • Koichi Ishida, Medical Decision Apps
  • Brook Osborne, Interface Design

Email is the best way to contact the course staff if you have a personal concern. When using email, please put CompSci 196 at the start of your subject line to help ensure that your email gets past our spam filters and is delivered correctly. If you send us an email and do not get a response within 24 hours, we probably did not receive it. In general, you should only email us about administrative aspects of the course; questions about course content are better made using the course Bulletin Board since it is seen by more people.


While there are no official textbooks for the course, readings will be available online during the semester. Although time will be given at the beginning of lecture for you to ask questions about the reading, the majority of the lecture will be an extension of the reading, not a summary. You will be expected to be active participants in group exercises during class time. This makes it vital that you prepare by reading before coming to class.


This course is about the creation of software in teams, thus it is much more than simply a programming course. Thus to receive a passing grade, you must demonstrate both that you have completed some significant programming and that you have been a successful part of a team. This emphasis is reflected in the grading weights below that give equal weight to the programming assignments and "soft-skills" needed to survive as a software developer.

25% Engagement: participation in class and on-line discussions, in your team-work, and in your in-class presentations
25% Skills: progress in project planning and management
50% Assignments: tutorial and final project grades

During the first part of the course you will work on small projects singly or in pairs. During the second part you will work in teams on a large final project. Grades will be based on projects, class participation, and presentations. There will be no formal in-class exams and completing the final project will be required instead of a final exam; however, there may be weekly quizzes or take-home exams. Absence, tardiness, or an inability to discuss assigned readings implies a lack of participation.

To help track your progress during the semester, you will be required to complete a weekly survey based journal that discusses your work done during the week.

Computing Requirements

All computing projects will use Objective-C and the Xcode programming environment on Intel Mac computers. More information about installing this software is available here.

Additional Information Online

Web Page
Many of the materials for this course, including class notes, readings, assignments, and other resources, will be available through the course web page at

Bulletin Board
You should regularly read and contribute to the course bulletin board as it is a useful place for posting questions that are likely to be of interest to the rest of the class. You are encouraged to post responses to questions as well as ask them. The bulletin board will be monitored regularly and responses posted to questions that have not previously been answered. Before posting a question, please make sure that you have read all previous messages and that your question has not yet been discussed.

Finally, please check your email regularly, as important course announcements may be sent via email.