Objective The overall goal of this course is to teach students how to cope with a software project “too large to fit in any student’s head”.
Social goal: continue the development of collaboration and communication skills from the prerequisite course COMSCI 201. Going beyond pair or small group programming, the course introduces panel-based code reviews. Students present their solutions to their peers on a panel (and the class). Both presenting code and understanding such presentations are critical skills for the modern software engineer.
Technical goal: expose students to the practice of programming at a reasonably large scale. This course teaches how the program design principles scale to a large code base. Indeed, without relying on such fundamental design principles, a large code base may quickly become prohibitively complex and incomprehensible.