20-21 CS2800: Software Engineering

CS2800 (Software Engineering): This course aims to introduce Software Engineering tools and techniques through practical experience of design and development that enable each individual programmer to help deliver effective, working, clean code, as part of a team, in a timely fashion.

By the end of this course a student should be able to:

  • understand the software engineering techniques and managerial discipline required to work as part of a team
  • understand and use basic object-oriented concepts
  • appreciate the need for program documentation, testing, readability and modifiability
  • use appropriate tools to support software development: Version control, programming standards, a modern IDE, graphical debugger, code style checker, unit testing frameworks, code metrics, etc.,
  • be able to use Test Driven Development to deliver a small scale project.
  • be able to describe appropriate workflows for delivering software using version control systems.