The experience of the Software Development course is formative in teaching students to work as a team and in helping them put together the pieces they've learned in the foundational courses (students sometimes call the course "Sophomore Development"), and it prepares them well for summer internships that involve teamwork and development.
Sample Student Products
Spring 2014 - Time lines are a handy tool for visualizing the ordering and overlapping of events. Organizing information about events, such as their duration and how to categorize them, is a complicated job that can be automated. This semester's class produced a time maker, a system that maintained a database of events and provided three interfaces for modifying the information and viewing a rendering of the time line: a desktop version, an Android version, and a web version.
Virtual Hymnal, v. 2.0
Spring 2012 - This semester the course revisited the virtual hymnal from Spring 2010, not only to polish it up but to add crucial features such as a mode for editing texts and tunes and tolerance for when a text fudges the meter.
Spring 2011 - Playing chess is a mental challenge in itself. But what about designing chess-like games? The project this year was a chess program that not only supported the playing of classic chess but also a wide array of chess variants with different board dimensions, piece layout, objectives, and even new pieces with novel movement patterns. One of the most exciting parts was an editor feature that allowed users to invent their own chess variants.
Spring 2010 - Traditional hymns are written to fit regular meters. This means that a hymn text in a certain meter can be sung with any tune for that meter---texts and tunes can be swapped easily as long as the meter matches. The students this year produced a virtual hymnal that dynamically rendered music based on the user's selection of text and tune.
Spring 2009 - This year students produced a virtual version of a board game called RoboRally by Wizards of the Coast. In the game, players arrange cards to program robots, trying to navigate them around a board. The game play was ripe for being automated by a computer program.
Stock Portfolio Manager
Fall 2007 - The teams worked on a stock portfolio manager, a program for keeping track of stock holdings that would automatically update prices based on online information, even handling stock splits and buy-outs.