Syllabus, Graduate Seminar—Device Programming, Summer 2009
Course Title:
Graduate Seminar—Device Programming

Instructor:
Dean Hougen, SRTC 1050E, 405-325-3150, hougen@ou.edu

Class Hours:
Monday, Tuesday, Wednesday, Thursday 9:00-10:15, SRTC 1030 (Seminar Room)

Office Hours:
Monday, Tuesday, Wednesday, Thursday 11:30-12:30, SRTC 1050E

Required Text Books:
There are no required textbooks for this course. However, there will be numerous documents that you must download from the web and read outside of class meeting times. These will be relevant to the topics covered in the course and include:

Students should read ahead the materials that are expected to be covered in the class period . Students should always bring their laptop with them to all class periods.


Communication:
Because of the quick-paced nature of this class and its connection to your internship, you should plan to be working on campus every day and should contact me directly by coming in person to my office in SRTC with questions as they arise during the day. Likewise, you should work together in person with your classmates each day.

I will be transmitting class information to you through announcements during class time and through web pages. You are responsible for announcements made through either or both of these means.

Occasionally, urgent information may be sent via email. You must ensure that the email address the University has on file for you is valid and is monitored by you. A test of the email addresses provided by the University will be made during the second week of class. You are responsible for notifying the instructor if you do not receive this test email.

One way for students to communicate with one another during the evening or on weekends is through the discussion forums of the Desire2Learn web site for the class.

Details of all of the communication methods follow.

WWW:
Information about this class will be found on the class website. The URL is
http://www.cs.ou.edu/~hougen/classes/Summer-2009/DeviceProgramming/
This page will contain links to the directory of class materials and announcements and other important information.
Email:
Students should use the email address listed above if it is not possible to contact me in person or by phone.

Expectations and Goals:
The prerequisites for this course are CS 2413—Data Structures and instructor permission. You are expected to have a solid working knowledge of abstract data types, control structures, programming structures and abstractions, object-orientation, data structures, memory management, and pointers. This course will introduce students to enterprise development tools and environments, device-specific sensing and communication components, and customer-driven software development. Students will create deployment-ready device-specific programs in teams.

Topics to be covered are development tools (Xcode and Interface Builder), device language (Objective-C), graphical user interface organization (model, view, and controller), threading, caching, memory, input and response, data management, searching, notifications, device application programming interfaces, streams, networking, audio, video, web views, unit testing, and internationalization. We will also compare the implementation of iPhone OS and Android.

Software:
All students in this class will be provided with a copy of the iPhone Software Development Kit (SDK) under the terms of the iPhone Developer University Program (DUP). Students are required to review and agree to the iPhone Developer Program Student Agreement in order to use the iPhone SDK under the iPhone DUP. All code written for this course MUST run using the iPhone SDK under Mac OS X and on 2G iPhones.

Requirements:
The graded assignments and their contribution to a student's grade are given in the table below. (Subject to change.)

Item
Topic
Percent
Assignment 0
Assignment 1
Assignment 2
Comparison Paper
Project 1
Final Project
Development Tools
Objects for Devices
Model, View, Controller
iPhone OS and Android
Model, View, Controller
Deployable Application
1%
4%
10%
15%
30%
40%

Group work is REQUIRED for the projects. Students may work in groups of two or more for projects 0—2 and in groups of four or more for the final project. The more students in a group, the harsher the grading will be.

You are responsible for the material covered during the lectures sessions, whether or not it is also found in your assigned reading materials. Similarly, you are responsible for the material found in your assigned reading materials, whether or not it is also covered during the lectures sessions. In other words, you are responsible for the UNION of these sources of knowledge, as depicted by the shaded region of the Venn diagram below, not merely their intersection.

UNION of lectures and readings

All work in projects must properly cite sources. For example, if you quote a source in your project, you must include the quotation in quotation marks and clearly indicate the source of the quotation.

Programming projects will be due at 9:00 pm on the due date. Late assignments will be penalized 20% per day late. (All parts of days will be rounded up.) After five days, you will not be able to turn in that assignment for credit. If you are worried about turning in the assignment late and loosing points, turn in the assignment ahead of time. You will be turning in electronic and paper copies of all assignments. It is the electronic copy that must be turned in by 9:00 pm on the day that it is due. The paper copy is due at the beginning of the lecture on the day after the electronic copy is due. The paper copy must be submitted BEFORE the lecture is scheduled to begin.

Each group will turn in ONE version of each project (one paper copy and one electronic copy of the same project). The version submitted will be mutually agreed upon by the group members. The scores assigned to the members of the group will reflect their contributions to the version of the project submitted. Note that students are required to contribute equally to each project to the extent possible, so the scores assigned to each group member will typically all be the same. However, if all members of the group do not contribute equally to a project for some reason, the scores assigned to group members may be quite different.

Note that the policy of having each group submit one version of each project for grading is in stark contrast to having each member of each group submit his or her own version of the project for individual grading. As stated above, group work is REQUIRED for the projects. Working as a group does not mean having a chat now and then with another class member then going off to work on your own on the project. It means actively working together with the other members of your group to create a single product (a joint creation).

Copying another's work is cheating and grounds for penalties in accordance with school policies.

Accommodations:
Any student with a disability should contact the instructor so that reasonable accommodations may be made for that student.

Attendance:
Students who do not attend the first week of class may be dropped from the course to make room for additional students to enroll.

Holidays:
It is the policy of the University to excuse the absences of students that result from religious observances and to provide without penalty for the rescheduling of examinations and additional required class work that may fall on religious holidays.

Related Documents:
Students should also read the related documents on Replacement Assignments or Extensions and Discussions of Scores and Grades.