Paper 1: Software Design

Lecturer: Dr A.F. Blackwell

No. of lectures: 12

This course is a prerequisite for Programming Methods (Part IA), Programming in Java (Part IA) and the Group Project (Part IB).

Aims

The aim of this course is to present a range of effective methods
for the design and implementation of software, especially where that
software must meet professional quality standards. This will include
a brief introduction to current commercial methods, but the main
motivation is to understand the reasons why such methods have developed,
how they differ from the concerns of academic computer science, and
what are the technical foundations of good software engineering.

The course also provides an introduction to the principles of
object-oriented programming, as a complementary perspective to the
functional and procedural programming styles that have been presented
in the Foundations of Computer Science course. Object-oriented
programming principles will be applied in the Programming in Java
practical classes.

After the first few lectures, students should understand the steps
necessary to create simple object-oriented programs in the Java
language. They will have the opportunity to practise this in the
Programming in Java course that runs concurrently with these lectures.

At the end of the course, students should be able to undertake system
design in a methodical manner, starting from a statement of system
requirements, developing a modular design model, refining it into an
implementation that clearly identifies and minimises risk, coding in a
manner that can be integrated with the work of a team, and using
appropriate methods to identify and prevent faults.