![[The University of Leicester]](http://www.le.ac.uk/corporateid/departmentresource/000066/unilogo.gif)  |           Department of Mathematics & Computer Science         | 
  | 
 Next: CO1006 Software Engineering and Professional Practice
 Up: Year 1
 Previous: CO1003 Program Design
 
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
- Advanced object-oriented concepts:  inheritance, interfaces, abstract
classes. 
 
- Structured data objects: stacks, linked lists, queues, hash
  tables,trees.
 
- Abstract data types and their implementation in Java.
 
- Graphical User Interfaces and their implementation in Java.
 
- Event-driven programming in Java.
 
- Introduction to applets.
 
- 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. 
 
 Next: CO1006 Software Engineering and Professional Practice
 Up: Year 1
 Previous: CO1003 Program Design
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.