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 programming abilities and introduce you to the management principles required to lead effective software teams.

Take a few minutes to review the syllabus; schedule; and overview of the 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 lesson notes that identify the reading assignment(s) that should be completed prior to each lesson.