next up previous
Next: MC106 Software Engineering and Up: Year 1 Previous: MC103 Program Design

MC104 Algorithms and Data Structures


MC104 Algorithms and Data Structures

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


Prerequisites: essential: MC103
Assessment: Continuous assessment: 30% Three hour exam in May/June: 70%

Lectures: 36 Classes: 24
Tutorials: 12 Private Study: 78
Labs: none Seminars: none
Project: none Other: none
Total: 150

Explanation of Pre-requisites

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

Course Description

The purpose of the module MC104 is to take the student beyond the elementary parts of the Pascal language as covered in MC103, 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 MC206, Software Engineering and System Design, and MC204, Design and Analysis of Algorithms.

Aims

This 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 Pascal, thus learning more advanced features of the language. Further software issues connected with code such as reusability and modularity are introduced. We also discuss in an elementary way the fundamental notions of the analysis of algorithms and their complexity.

Objectives

Transferable Skills

Syllabus

Fundamental ideas of list processing; pointers in Pascal; implementing lists in Pascal using pointers; algorithms for processing lists: searching and sorting, including binary search and quicksort; queues. Lists and queues as examples of abstract dat types; implementing abstract data types in Turbo Pascal -- units; variant records in Pascal; text and binary files in Pascal; sequential and random access; searching and sorting algorithms extended to files.

Basic concepts of algorithm analysis; big O notation, asymptotic analysis; algorithm analysis applied to algorithms already introduced elsewhere in the course.

Fundamental idea of a binary tree and of tree operations; implementing trees in Pascal; binary search trees; hash tables defined and compared with binary search trees.

The idea of a higher order function or procedure; map and fold discussed; implementation of higher order programming in Pascal.

Reading list

Essential:

E. B. Koffman, Turbo Pascal, 5th edition, Addison-Wesley.

Recommended:

R. Pressman, Software Engineering -- a Practitioner's Approach, European 3rd edition, McGraw Hill.

Recommended:

T. Cormen, C. E. Leiserson and R. L. Rivest, Introduction to Algorithms, MIT Press.

Recommended:

D. Stubbs and N. Webre, Data Structures with Abstract Data Types and Pascal, 2nd edition, Brooks/Cole.

Background:

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

Background:

D. Cooper, Oh! Pascal!, 3rd edition, W. W. Norton and Co. Inc.

Background:

M. A. Weiss, Data Structures and Algorithm Analysis, 2nd edition, Benjamin Cummings.

Background:

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

Background:

S. Fisher and S. Reges, Pascal and Beyond, Data Abstraction and Data Structures using Turbo Pascal, Wiley.

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 four questions will be taken into account in determining the mark. The examination will test candidates' knowledge of algorithm analysis as well as their programming ability.


next up previous
Next: MC106 Software Engineering and Up: Year 1 Previous: MC103 Program Design
Roy L. Crole
10/22/1998