[The University of Leicester]

Department of Mathematics & Computer Science

Next: CO1004 Algorithms and Data Structures Up: Year 1 Previous: Year 1

CO1003 Program Design

CO1003 Program Design

Credits: 20 Convenor: Dr. M. Hoffmann Semester: 1

Assessment: Coursework: 40% Three hour exam in January: 60%
Lectures: 36 Problem Classes: none
Tutorials: none Private Study: 78
Labs: 24 Seminars: none
Project: none Other: none
Surgeries: 12 Total: 150

Subject Knowledge


This module teaches the basic principles of object-oriented programming, design and testing.

Learning Outcomes

Students should be able to: understand the basic components of an object-oriented program including methods and attributes, the distinction between classes and instances, the structures required to write basic algorithms, the components of simple text and graphics based interfaces, the relevance of the design process and basic object-oriented design notation, the applicability and effectiveness of various basic software testing techniques.


Class sessions, recommended textbook, worksheets, automated feedback and extensive web support.


Marked coursework, written examination.

Subject Skills


Produce written work in a number of different formats; analyse problems, formulate strategies to solve them, design a plan, carry out the required research, implement and evaluate the solution; recognise the need for information, and then locate and access that information.

Learning Outcomes

Students will learn to develop object-oriented programs to satisfy simple problems. This will involve analysis of the problem and the development and implementation of suitable solution strategies. Students will also be able to produce simple design and testing diagrams for the code they produce.


Class sessions, worksheets with automated feedback system.


Marked coursework (with automated feedback system), written examination.

Explanation of Pre-requisites

Strongly motivated students will have no problems even if they have no previous experience of programming. The module assumes knowledge of mathematics up to GCSE level.

Course Description

The module introduces students to the basic ideas involved in developing a piece of software to solve a problem. It illustrates these ideas by presenting fundamental elements of the programming language Java.


  1. Basic Java concepts: Java virtual machine, byte-code; applications and applets; source, editors, compilers, development environments.
  2. Fundamentals of Java programming: types; classes; objects; packages; assignment.
  3. Structured programming: methods and parameters; for-loops, while-loops, do-loops.
  4. Interactive input, file input and output.
  5. Selection with if-else; the switch statement.
  6. Introduction to exception handling.
  7. Strings and string handling, formatting.
  8. Overview of design and development concepts; requirements analysis; basic notions of specification.
  9. Fundamentals of object-oriented design.
  10. Software problems : errors, faults, and failures.
  11. Testing -- structural testing: flow-graphs, structural coverage.

Reading list


C. Thomas Wu, An Introduction to Object-Oriented Programming with Java, 3rd (international) edition, McGraw-Hill.


R. Pressman and D.Ince, Software Engineering -- a Practitioner's Approach, European 5th edition, McGraw-Hill.


I. Sommerville, Software Engineering, 5th edition, Addison-Wesley.


Course notes, departmental web page, text book web site, automated feedback and assessment tool (coursemaster), study guide, worksheets, handouts, lecture rooms computer projection facilities and OHPs, past examination papers.

Module Evaluation

Course questionnaires, course review.

Next: CO1004 Algorithms and Data Structures Up: Year 1 Previous: Year 1

[University Home] [MCS Home] [University Index A-Z] [University Search] [University Help]

Author: N. Rahman, tel: +44 (0)116 252 3902
Last updated: 2003-09-23
MCS Web Maintainer
This document has been approved by the Head of Department.
© University of Leicester.