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:
-
introducing more advanced facilities that are available to
the software engineer to improve the robustness, reusability and
maintainability of software;
-
applying these skills in practice using the Ada
programming language;
-
introducing the main Abstract Data Types common in
software development.
Objectives
The course concentrates on a professional approach to software
development. On successful completion of the module, students
should:
-
have an understanding of the concepts of problem
abstraction and program design;
-
be capable of realising their design in the Ada
programming language producing software that is robust, reusable and
maintainable;
-
have an understanding of the Unix operating system at a
level to support their programming requirements.
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
Nigel Hardy Departmental Advisor
nwh@aber.ac.uk
Dept of Computer Science, UW Aberystwyth (disclaimer)