CO1004 Algorithms and Data Structures


CO1004 Algorithms and Data Structures

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

Prerequisites: essential: CO1003
Assessment: Coursework: 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

Subject Knowledge

Aims

This module teaches advanced features of the Java language which require sophisticated design techniques and algorithms.

Learning Outcomes

Students should be able to: understand advanced object-oriented techniques such as inheritance and interfaces; understand Graphical User Interface concepts and the event-driven model of programming; construct simple GUIs and applets in Java. understand the fundamental types of structured and dynamic data structure, their specification as abstract data types, and their implementation in Java. understand some of the main algorithms for processing dynamic datatypes, and to be able to write Java programs using these algorithms.

Methods

Class sessions, recommended textbook, worksheets, feedback from markers 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 problems of moderate complexity. This will involve analysis of the problem and the development and implementation of suitable solution strategies.

Methods

Class sessions, worksheets with feedback from markers.

Assessment

Marked coursework, written examination.

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.

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: arrays; sorting and searching.

Reading list

Essential:

C. Thomas Wu, An Introduction to Object-Oriented Programming with Java, 3rd 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.

Resources

Departmental web page, text book web site, study guide, worksheets, handouts, lecture rooms computer projection facilities and OHPs, past examination papers.

Module Evaluation

Course questionnaires, course review.


[University Home] [Faculty of Science] [MCS Home] [CS Home] CS Home Page [University Index A-Z] [University Search] [University Help]

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