Software Engineering


This is the homepage for Software Engineering (CS71) at Swarthmore College in the Fall 2017 semester. This site provides information regarding the course, including the lecture schedule, homework assignments, and syllabus.


The purpose of this course is to tame the process of creating software. Just as authoring a book requires greater preparation and foresight than writing a letter, so does engineering a large piece of software require more planning and structure than does writing small programs. Software Engineering is a methodical and scientific approach to the process of developing software. Topics include software development methodologies, design principles, collaboration techniques, the use of modern libraries and frameworks, quality assurance, and timeline management.

This course presumes that the student has taken CS35 (Data Structures and Algorithms). A firm grasp of data structures and object-oriented programming is required.

Getting Started

This site should contain all of the information you need to prepare for the course.