SEN 306: Software Construction



Learning Outcomes
At the end of this Course, students should be able to:
1. explain the importance of Software Construction and the key construction decisions;
2. describe the key issues in design including key design concepts, levels of design and Abstract Data Types (ADTs);
3. discuss best practices in dealing with routines, fundamental data types and different types of statements; and
4. describe how to ensure software quality through developer testing, debugging and software craftsmanship.

Course Contents
Definition of Software Construction; Its importance; Key construction decisions – choice of programming language, selection of major construction decisions. Design in construction – Key design concepts, levels of design, design heuristics. Abstract Data Types (ADTs). Working Classes. High Quality Routines. The Pseudo Code Programming Process. Fundamental Data

Types – Numbers, Characters and Strings, Boolean Variables, Arrays, Tables. Types of Statements – Straight Line Code, Loops, Control Structures; Developer Testing and Debugging. Software Craftsmanship – Layout and Style, Documentation, Personal Character. Lab Work: Practicals on the most common tools to ensure good software construction. The features include static code analysers to check that code follows coding conventions, special code searching and editing, collaboration support to allow multiple programmers working simultaneously, support for proper code documentation. Practice with IDEs (such as Visual Study Code, NetBeans and Eclipse) on debugging, compilation, running of code, auto completion and version control.