Imperial College OF SCIENCE, TECHNOLOGY AND MEDICINE
University of London

Department of Electrical & Electronic Engineering

Electrical & Electronic Eng. (EEE)        BEng, MEng 2nd Year
Information Systems Eng. (ISE)
              BEng, MEng 1st Year

Software Engineering:
Algorithms & Data Structures (2005-6)

Peter Y. K. Cheung


Objectives

The aim of this course is to familiarise you with a number of principles, concepts and techniques from computer science. The principles you will learn include how to construct code that's easy to read, understand and modify. The concepts you will learn include abstract data types and object-oriented programming. The techniques you will learn include how to build data structures, such as lists and trees, and algorithms for certain common tasks, such as lookup and sorting.

By the end of the course, you will be able to:

Textbook & Key References

Lecture Notes & Support Material
Week
Notes
Other material
1

Lecture 1 - Introduction

 C++ Tutorial 1 & 2 (PDF 1 & 2)
2

Lecture 2 - More C++

C++ Tutorial 5 & 6 (PDF 5 & 6)

Exercise A & sudoku001.txt (Solution A)

3
Lecture 3 - How to write a good routine?

C++ Tutorial 3 & 4 (PDF 3 & 4 )

Exercise B & ExerciseB.cpp (Solution B)

4
Lecture 4 - Classes & Pointers

C++ Tutorial 8 & 15 (PDF 8 & 15 )

5
Lecture 5 - Linked Lists

Exercise C & source from lecture

6
Lecture 6 - Ordered Lists

Exercise D
Assessed Assignment 1
C++ Tutorial 19 (PDF 19)

7

Lecture 7 - Recursion
Lecture 8 - More List Processing

 
8

Lecture 9 - Binary Trees

Assessed Assignment 2
9
Lecture 10 - Parsing & Expression Evaluation
 
10
Lecture 11 - Parse Trees
 


Useful links


This page is maintained by Peter Cheung
Last updated: 15 May, 2006.