[The University of Leicester]

Department of Mathematics & Computer Science



Next: CO1006 Software Engineering and Professional Practice Up: Level 1 Previous: CO1003 Program Design

CO1004 Algorithms and Data Structures


CO1004 Algorithms and Data Structures

Credits: 20 Convenor: Dr. N. Measor Semester: 2

Prerequisites: essential: CO1003
Assessment: Continuous assessment: 40% Three hour exam in May/June: 60%
Lectures: 36 Problem Classes: none
Tutorials: none Private Study: 78
Labs: 24 Seminars: none
Project: none Other: none
Surgeries: 12 Total: 150

Explanation of Pre-requisites

Since its purpose is to lead the student on to more advanced programming concepts, the module assumes that CO1003, Program Design, has already been taken.

Course Description

The purpose of the module CO1004 is to take the student beyond the elementary parts of the Java language as covered in CO1003, introducing advanced features of the language which require sophisticated design techniques and algorithms if they are to be used effectively. The module leads on to the second year modules CO2006, Software Engineering and System Design, and CO2004, Design and Analysis of Algorithms.

Aims

The aim of this module is to build on the fundamentals of object-oriented programming presented in CO1003 by extending the coverage of objects to include more sophisticated concepts such as inheritance which enhance their usefulness to the software engineer. We also introduce Graphical User Interfaces and applets.

The module introduces students to various kinds of complex data structures, and shows how these can be specified as abstract data types. Simple algorithms are presented to process such data structures, and students are shown how to implement both the data structures and the algorithms in Java, thus learning more advanced features of the language.

Objectives

Transferable Skills

Syllabus

  1. Advanced object-oriented concepts: inheritance, interfaces, abstract classes.
  2. Structured data objects: stacks, linked lists, queues, hash tables,trees.
  3. Abstract data types and their implementation in Java.
  4. Graphical User Interfaces and their implementation in Java.
  5. Event-driven programming in Java.
  6. Introduction to applets.
  7. Algorithms to handle structured data objects: sorting and searching.

Reading list

Essential:

C. Thomas Wu, An Introduction to Object-Oriented Programming with Java, 2nd edition, McGraw-Hill.

Recommended:

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

Recommended:

W. J. Collins, Data Structures and the Java Collections Framework, McGraw-Hill.

Background:

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

Background:

U. Manber, Introduction to Algorithms: a Creative Approach, Addison-Wesley.

Details of Assessment

The coursework for the continuous assessment consists of five worksheets containing both programming and pencil and paper problems.

The written Midsummer examination contains six questions, and the best three questions will be taken into account in determining the mark.


Next: CO1006 Software Engineering and Professional Practice Up: Level 1 Previous: CO1003 Program Design

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

Author: S. J. Ambler, tel: +44 (0)116 252 3884
Last updated: 2002-07-11
MCS Web Maintainer
This document has been approved by the Head of Department.
© University of Leicester.