![]() | Department of Mathematics & Computer Science | |||
![]() |
Credits: 10 | Convenor: Dr. G. Laycock | Semester: 2 |
Prerequisites: | essential: MC103, MC104, MC111, MC206 | |
Assessment: | Continuous assessment: 50% | Two hour exam in May/June: 50% |
Lectures: | 18 | Problem Classes: | 6 |
Tutorials: | none | Private Study: | 21 |
Labs: | 24 | Seminars: | none |
Project: | none | Other: | none |
Surgeries: | 6 | Total: | 75 |
It is assumed that students taking this module have an understanding of the object-oriented design philosophy, and are familiar with the fundamental concepts of the object-oriented paradigm.
Students should also be familiar with the basics of ``formal methods''. In particular students should be familiar with the concept of representing data structures in terms of the fundamental abstract data types (set, sequence and map).
The vast majority of programming projects involve the organised storage of a large number of pieces of information. This module covers a wide range of well known abstract data types that can be used as containers for volumes of data. Each structure will be covered abstractly, by examining the formal VDM notation, and concretely, by studying the implementation in C++ and the Standard Template Library.
To build on the students' knowledge of object-oriented design, data abstraction and algorithms by introducing the language support in C++ for these ideas.
To present the common abstract data structures as containers for data, both as abstractions using the formal notation of VDM, and as concrete implementations in C++ and the Standard Template Library.
Data Structures. Presentation of the basic abstract data types (set, sequence and mapping). Use of the basic abstract data types to model real world data structures.
Implementation issues. The Standard Template Library of C++, and the basic structures in it (vector, list, set, map). Use of iterators and algorithms. Low level implementation issues when creating new structures from scratch.
Timothy Budd, Data Structures in C++, using the Standard Template Library, Addison Wesley, 1998.
Timothy Budd, C++ for Java Programmers, Addison Wesley Longman 1999.
Bjarne Stroustrup, The C++ Programming Language, 3rd edition, Addison-Wesley, 1997.
C. B. Jones, Software Development using VDM, Prentice-Hall, 1989. Available on the Web from ftp://ftp.ncl.ac.uk/pub/users/ncbj/ssdvdm.ps.gz.
The first two exercises consist of problem sheets requiring a number of relatively simple programs to be written to illustrate basic understanding of the basic features of C++. These will be assessed by demonstrators during the practical laboratory sessions.
The later exercises will require the student to write larger pieces of code to implement various object-oriented classes suitable for incorporation in larger object-oriented designs. Generally, a framework of code will be provided and the student has to implement some missing sections to produce a complete working program. These exercises will be submitted electronically.
![]() ![]() ![]() ![]() ![]() |
Author: S. J. Ambler, tel: +44 (0)116 252 3884
Last updated: 2001-09-20
MCS Web Maintainer
This document has been approved by the Head of Department.
© University of Leicester.