Computer Science, Prifysgol Cymru Aberystwyth University of Wales


CSM0220 - Software Development, Data Structures and Algorithms I


Brief Description

This module is a continuation of CSM0110 . In addition to introducing students to the more advanced aspects of software design and implementation, the module covers the basic data structures and algorithms utilised in software development.

Aims, Objectives, Syllabus, Booklist


Further Details

Number of lectures
36
Number of seminars/tutorials
6 (latter part of semester)
Number of practicals
6 (first part of semester)
Coordinator
Dr. Edel Sherratt
Other staff involved
Not yet known
Pre-requisites
CSM0110
Co-requisites
None
Incompatibilities
This module is not available to undergraduate students
Assessment
Assessed oursework 50%
Written exam 50%
This course is assessed at the end of Semester 1.
Timing
This module begins during September and continues through Semester 1.

Aims

This module concentrates on teaching a professional approach to software development. Emphasis is placed on distinguishing between the design of a software product and its implementation. It develops the programming skills of participants by:

Objectives

The course concentrates on a professional approach to software development. On successful completion of the module, students should:

Syllabus

Further Design and Implementation of Computer Programs - 16 Lectures
This module looks at more advanced programming facilities available to the software developer (numbers of lectures in brackets). Composite types - arrays and records. (3) Developing robust programs - illustrated by exceptions. (4) Building abstract data types - case studies. (4) Handling persistent data - advanced input/output and files. (4)
UNIX: An environment to support component reuse? - 2 Lectures
This modules looks at some of the basic UNIX components e.g. sort , uniq and the pipe.
Introduction to telematics: - 2 Lectures
Telematic applications - mailers, teleworking, the internet.
Introduction to telecommunications: - 3 Lectures
Network protocols, communication technologies, and standards.
Introduction to the analysis of algorithms - 3 Lectures
O() notation, growth rates. This material will be used as the basis of more detailed discussions of algorithms later in this course and in CSM0310 .
Dynamic Storage Allocation - 4 Lectures
Introduction dynamic allocation (using the heap). Comparisons of bounded and unbounded forms of data structures. Discussion of the failure modes associated with pointers and dynamic allocation.
Storing and Retrieving Data by Key - 6 Lectures
This problem motivates the discussion of some important data structures and algorithms, the features of various solutions being related to the dimensions of the problem such as the volume of the data to be handled, volatility, and the operations required. Binary searching, trees, a brief look at hashing.
Another Further Look at Abstract Data Types - 3 Lectures
Building more general ADTs. Parameterisation by type using the Ada generic facility.
Practicals - 6 Practicals
This module has a heavy practical content which is used to give students actual experience of the techniques that are described in class.

Booklist

It is considered essential to purchase the following

J G P Barnes. Programming in Ada. Addison-Wesley, Wokingham, England, 4th. edition, 1993.

J.E.Cooling, N.Cooling, and J.Cooling. Introduction to Ada. Chapman and Hall, 1993.

Mark Allen Weiss. Data Structures and Algorithm Analysis in Ada. Benjamin/Cummings, Redwood City, California, 1993.

Notes
Students do not need to obtain both these Ada texts. Choose the one whose style you like.

The following should be consulted for different approaches or for further information

Thomas A Standish. Data Structures, Algorithms and Software Principles. Addison-Wesley, Reading, Massachusetts, 1994.

Version 1.5

Syllabus Syllabus

Nigel Hardy Departmental Advisor

nwh@aber.ac.uk

Dept of Computer Science, UW Aberystwyth (disclaimer)