News

Final notes:
Grades -- because of the great job on the projects, everyone got at least a B. I then scored how well your last few standup reports described your progress, and how well your final report identified development issues and adapt agile ideas. See Final Report discussion for a run-through on the major items for each of the questions.

Resources

Fast and Loose

This is a class about learning to develop code "fast" for "loose" (mobile) applications for iPhone®s and Android®s. It is not about hacking together an unmaintainable mess of spaghetti code, but about delivering high code quality at a predictable pace, through the use of modern practices in lean agile software development, including continuous integration and test-driven development.

Time and Place

This class meetings Monday, Wednesday and Friday, from 10:00am to 10:50pm, in Tech L168.

Prerequisites

Programming proficency: This is a project-based learn-by-doing course. Substantial programming and learning of new development frameworks is involved. You should feel at home programming in multiple languages and have had some experience with coding against a database. Experience with modern version control, such as svn or git, is recommended.

Mobile experience is not required.

Development computer: You need to have either a Mac or a PC suitable for software development, with the memory and space to support the requirements listed here. You'll need gigabytes of free disk space.

An iPhone™ or Android™ phone is not required.
Work can be tested in simulators. A real device is better. Simulators are slow and can't emulate all features, but they will be sufficient for the class.

The platform for development will probably be PhoneGap. The advantages of PhoneGap, and similar frameworks, such as Titanium and Rhodes, for this course are:

Textbook

The mobile programming material will be from online sources, in order to be current.

The text for agile software methods is The Agile Samurai by Jonathan Rasmusson. Don't be fooled by the casual style. This is a sound summary of modern thought about agile software development.