By fitting comfortably in our pockets and bags, smartphones are worn on our bodies throughout the day and remain by our pillows at night. These mobile computers are connected to the net and are packed with accelerometers, gyroscopes, cameras, microphones, and even GPS. They present a unique platform for location and context aware software. Through readings and projects, this course will examine the opportunities and challenges presented by mobile computing. This is a hands-on seminar; projects will include the development and deployment of applications on smartphones and other mobile devices.
Students should gain a clear understanding of the opportunities and challenges afforded by mobile computing. They should also gain practical experience building and deploying software on iOS.
This course is a seminar. A few traditional lectures will be given at the start of the semester to quickly familiarize the class with technical aspects of mobile programming — specially iOS programming — most of the remaining course time will be devoted to student presentations, discussions, and project work.
Students will be required to make two class presentations:
There will be small programming assignments designed to build iOS programming confidence and expertise.
There will be one final programming project. The final project will include an initial project proposal presentation, a final project presentation, and a written document describing the project motivations, features, technical aspects, and shortcomings. You are encouraged (but not required) to make the final project a group project.
Attendance and active participation are absolutely necessary for this class to function. Unexcused absences will directly impact your grade, as well as indirectly affecting the quality of your work.
Late Work: Late assignments will not be accepted.
While bound by the Honor Code, you are encouraged to seek assistance from classmates on assignments, presentations, or projects should you have difficulty. They are a great resource which can aid you in completing your work. Appropriate forms of assistance include help with the understanding of concepts, help debugging a program, or help refining ideas/concepts for projects (i.e. brainstorming). That said, the work you turn in must be your own. When turning in your assignment you are required to credit all students from whom you received substantial help.