Foundations of Software Engineering is a course that presents an introduction to the field of software engineering. For the Spring 2012 semester, we will cover three main topics:
- concepts, techniques and practices associated with agile software development
- techniques and frameworks for designing concurrent software systems
- techniques and frameworks for testing software systems
In addition, a historical perspective of the software engineering field will be presented. These topics will ensures that a student new to software engineering leaves the course with a grasp of the basic concepts and tenets of the field and has some mastery on the latest techniques and tools in the areas of software life cycles, software testing, and concurrency in software systems.