CompSci 108
Fall 2010
The Software Studio

Announcements

Description

This course is intended to be the most challenging, but also the most fun course at Duke University! During the semester, if you find either goal is not being acheived, contact the course staff immediately to help us remedy the situation. As a class, we will create a single large software product built from open source and student built modules that are refined and extended through multiple draft releases. By the end of the semester you should be able to work in teams to turn vague and ambitious specifications into a system design that can be built, maintained, and extended.

Software design is a craft, learned best through practice that is guided by experienced mentors. In this respect it is more like art than science. The arts, as well as architecture and engineering, benefit from using the studio prominently in their curricula. In a studio student work is subject to constant review by both peers and mentors as a means of providing valuable feedback and to solidify the shared sense of community. Student teams will design and implement modules using Java whose design and functionality must be justified and improved through feedback given in a studio setting.

The studio-based instructional model owes its origins to the master-apprentice educational system used in the guilds of the Middle Ages. The architectural schools of Europe and North America adopted this instructional model in the form of the “design studio”: a place where students set up their own workspaces, drafting tables, books, drawing and modeling materials, and spend much of their time working individually on common design tasks. As students spend long hours working on these tasks, they build camaraderie, looking to each other for support and feedback as they work toward a common purpose.

Required Background: It is assumed that you have previously programmed extensively in Java (e.g., at the level of CompSci 100 at Duke). If you do not have such experience programming, this probably is not the right course for you. See the course staff if you have questions.

Feedback

The Computer Science department at Duke University aims to excel in education and research. To ensure that our courses fulfill student needs and expectations, you can submit comments about this course anonymously or use the Suggestion Box icon at the bottom of each page. These comments will be read by the Director of Undergraduate Studies for Teaching and Learning in addition to the professor teaching the course. Our goal is to adapt the subject and delivery of our courses to meet student needs while maintaining our high standards.