Module Identifier CS12320  
Academic Year 2000/2001  
Co-ordinator Dr Mark Ratcliffe  
Semester Semester 1  
Mutually Exclusive CS12220 , CS12230  
Course delivery Lecture   30 lectures  
  Seminars / Tutorials   11 tutorials  
  Practical   16 x 2 hours  
  Practicals / Field Days   1 Activity weekend  
Assessment Exam   1.5 Hours   50%  
  In-course assessment   Best of 2 in-class tests   20%  
  Practical exercise   Regular worksheets with penalties for non-completion    
  Course work   One piece of assessed coursework.   30%  
  Supplementary examination   1.5 Hours Written examination   100%  

Brief description
This module is designed for students with experience of programming in procedural languages. The material covered will be similar to that in CS12230 but will build on the students' previous computing experience. The practical work associated with the module will help students to become familiar with Java and the development environment offered at Aberystwyth.

Personal transferable skills are an important quality of any software engineer and form an important part of this module.

This module aims to introduce students to the concepts of programming in the large. Though the module revisits the technique of functional decomposition, the main emphasis is placed on object-based design. The Java programming language is used as a basis for illustrating these concepts. The intention of the supervised practical sessions is to enhance the programming skills of participants, giving them practical experience of writing software systems in Java.

Weekly tutorials provide the pastoral support for the first semester and give a forum for discussing the technical aspects of material presented in this module.

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

1. Welcome and preview- 1 Lecture
Introduction to the department and the course.

2. Using the computing facilities at Aberystwyth - 2 Lectures
An overview of the facilities available and how to make the most of them.

3. Modular approaches to software design - 2 Lectures
A recap of functional decomposition; An introduction to object orientated design.

4. Programming in the large - An introduction to Java - 20 Lectures
Software crisis, abstraction, algorithms and programs; Programming constructs, expressions, primitive types, classes and objects; Information hiding; Further object oriented design - inheritance. Robust programs - exceptions.

5. An introduction to Graphical User Interfaces - 4 Lectures
Building on programming skills, this looks at developing graphical front ends to simple software systems.

6. Testing techniques and aids for error detection - 1 Lecture
A recap of the best approaches to testing software systems.

Reading Lists
** Recommended Text
S. Heller. (1998) Who's Afraid of Java. AP Professional ISBN 0123391016
Y. Daniel Liang. (1998) An Introduction to Java Programming. Que E&T Series in Programming and Development ISBN 1-57576-548-9
Ivor Horton. (March 1999) Beginning Java 2. Wrox Press Inc ISBN 1861002238
Walter Savitch. (Dec. 1998) Java: An Introduction to Computer Science and Programming. Prentice Hall ISBN 0132874261
Elliot B. Koffman and Ursula Wolz. (Aug 1998) Problem Solving with Java. Addison-Wesley ISBN 0201357437
Samuel N. Kamin, M. Dennis Mickunas, and Edward M. Reingold. (Nov 1997) An Introduction to Computer Science: Using Java. WCB/McGraw-Hill ISBN 0070342245
Cay Horst Mann. (2000) Computing Concepts with Java 2 Essentials. John Wiley ISBN 0471 346098