Computer Science
CS 261 Software Development (4)
This course will provide students with an understanding of modern professional software development practices, including processes, tools, and teamwork. The class will be structured as a simulated development team, with students taking on various roles as they would in a real-world development environment. Although the instructor will provide a framework for the class and guidance on general topics, students in this seminar course will be responsible for collectively determining specific topical choices (e.g., specific tools or development methodologies) through a process of investigation, presentation, discussion, and finally group vote. As a development team, we will use a "content project" to focus our investigations into tools and practices. This project will be a programming task of modest size and complexity which we will undertake as a group-the tools and processes will then be instantiated (chosen, studied, used, critiqued, etc.) in the context of developing this content project. Basic tool and process concepts will be introduced during weekly scheduled discussion hours, but students will be responsible, individually and in small groups, for the investigation of alternatives and the specific choices to be used by the team. Much of the work for the class will therefore occur outside the weekly class meetings, with students returning to make presentations and to participate in team meetings to guide further development and investigation. A particular emphasis will be placed on documenting this entire process, so that a running archive of residuals (code, documentation, meeting notes, etc.) is maintained by the group. This archive should be useful both as a showcase for employers and for later teachings of the course. (A "legacy project" that persists between different course offerings may be used to enrich the latter.)
- Prerequisite: CS 152
- Offering: Annually
- Professor: Staff