Welcome to Comp Sci 350: Software Engineering. Software engineering is “the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software” (IEEE, 1990). In essence, software engineering represents a transition from writing small-scale programs (e.g., a programming exercise in a course) to the collaborative development of large-scale systems with well-defined, stable interfaces that are thoroughly tested and documented. The techniques that we study in this course will improve your ability to design complex software systems, program effectively, and introduce you to the management principles required to lead effective software teams.

Take a few minutes to review the syllabus; schedule; course overview, and first lesson, being sure to note the initial reading assignment.

This course website will be updated throughout the semester. You should check back frequently for updates and specifically review the lessons to see the reading assignment(s) that should be completed prior to each lesson.