Relational Database Management System and Internet application programminga three-day course designed in January 2011 by Philip Greenspun, Andrew Grumet, John Morgan, and Shimon Rura
Next class: January 2012 (free and open to the public)
Site Home : Teaching : One Course
Intended format: A TA'd laboratory environment, with short introductory explanations by a teacher followed by students working independently at their laptops, getting assistance as required from fellow students and/or instructors.
The course was successfully taught at MIT in January 2011 in three days, 10 am to 4 or 5 pm each day. We did not get through the Day 3 material and it probably would be better to work 9 am to 6 pm or expand the class to a five-day format. We strongly recommend using Google Docs for in-classroom support.
Why the virtual machine rather than configuring a server to which all students ssh? It cut our sysadmin effort and enables students to continue with their work at any time and in any place. The Android phone emulator took as long as 10 minutes to load. Remember that a student would be typically be running Windows on his or her laptop. On top of that would be running our Linux virtual machine. On top of that would be running the Android operating system... i.e., one more layer of Linux. Virtualization turns out not to be free!
Why do we have students do Android rather than iPhone development? Fewer than 10 percent of students have Macintosh computers, a prerequisite for using the iPhone development tools. No student in our class had any experience with Objective-C, the iPhone application development language, whereas many had at least some experience with Java, the Android application development language. Assuming a student had a Macintosh laptop, getting an application to a physical device with iPhone would require students to pay Apple $200, wait for approval by Apple Employees, and then "buy their own app" from the Apple store. Physical Android phones were much more common among our students than iPhones and moving a developed application to a device is as simple as plugging in a USB cable while Eclipse is running. [Note that the Day 3 problems do include an iPhone HTML5 pseudo-application development project.]