[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

Prerequisites:
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

Aims

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.

Methods

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

Assessment

Marked coursework, written examination.

Subject Skills

Aims

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.

Methods

Class sessions, worksheets with automated feedback system.

Assessment

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.

Syllabus

  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

Essential:

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

Recommended:

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

Background:

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

Resources

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.