Foundations of Software Engineering is a course that presents an introduction to the field of software engineering. For the Spring 2007 semester, we will cover four main topics:

  • a survey of traditional software engineering concepts, terminology, and techniques
  • an in-depth look at software engineering techniques for dealing with concurrency in software systems
  • a review of Agile Design methods, such as Scrum and Extreme Programming, that challenge some of the traditional assumptions of software engineering
  • and a look at the philosophy and techniques of a successful Web 2.0 company.

The first topic ensures that a student new to software engineering leaves the course with a grasp of the basic concepts and tenets of the field. The second topic provides students with an explicit example of how software engineering techniques can be used to tackle complex problem domains. The latter two topics will provide the student with insight into how the field of software engineering is changing.

I welcome feedback and questions from students. Feel free to contact me.

Kenneth M. Anderson, 2007.