Software Engineering
Full course description
This course introduces students to software design and project management concepts. Students get introduced to multiple techniques they require to work on medium and large-scale projects in professional business and research environments. Students learn how to produce professional, reliable, and cost-efficient software that can be developed in a team, reused, maintained, further evolved, and that is tested professionally. Covered concepts include requirement engineering, project planning, risk management, software evaluation and testing, software engineering processes, design principles, software architectures, design patterns and principles, API development, code review, version control, specifications, debugging, refactoring, and abstract data types.
Prerequisites
Desired prior knowledge: Procedural Programming (formerly known as Introduction to Computer Science 1), Objects in Programming (formerly known as Introduction to Computer Science 2) and Data Structures and Algorithms.
Recommended reading
- Goldman and Miller, MIT 6.031: Software Construction: http://web.mit.edu/6.031/
- Martin, Clean Code: A Handbook of Agile Software Craftsmanship (2008)
- T.H.J. Pepels
- B. Küppers