Module Identifier CS12420  
Academic Year 2000/2001  
Co-ordinator Dr Mark Ratcliffe  
Semester Semester 2  
Pre-Requisite CS12230 or CS12320  
Mutually Exclusive CI12420  
Course delivery Lecture   30 lectures  
  Practical   11 x 2 hours.  
  Seminars / Tutorials   11 tutorials  
Assessment Exam   1.5 Hours   40%  
  In-course assessment   Best of 2 in-class tests   20%  
  Course work   2 pieces of assessed coursework   40%  
  Supplementary examination   Regular worksheets with penalties for non-submission.    
  Resit assessment   1.5 Hours Written examination   100%  

This module builds on the material covered in CS12230/CS12320 to further the development of participants' programming skills 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 Java programming language.

Learning outcomes
The module concentrates on instilling a professional approach to software development. Further programming concepts are introduced in the context of developing more robust and reliable software. On successful completion of the module, students should:

1. Robust Programming - 4 Lectures
The need for a separate mechanism for handling erroneous code; throwing and catching exceptions. User defined exceptions.

2. Persistent Data - 4 Lectures
Advanced input/output and files. Worked example bringing together file handling and exceptions.

3. Abstract Data Types and Linear Data Structures - 7 Lectures
More on the ideas of abstraction and encapsulation. Java support for their implementation. An introduction to linear data structures: stacks, Queues implemented using arrays and vectors.

4. Enhancing the Reusability of Classes - 5 Lectures
An introduction to Java interfaces: Sortable, Listable and the standard Iterator class. Using interfaces to produce a reusable List class.

5. An introduction to Graphical User Interfaces - 10 Lectures
Building on programming skills, this looks at developing graphical front ends to simple software systems introducing Java's AWT and Swing classes.

Reading Lists
** Recommended Text
John Lewis and William Loftus. (2000) Java Software Solutions. Addison Wesley ISBN 0201 612712
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
Ira Pohl and Charlie McDowell. (Oct 1999) Java by Dissection. Addison Wesley ISBN 0201 612488
Cay Horst Mann. (2000) Computing Concepts with Java 2 Essentials. John Wiley ISBN 0471 346098
Russell Winder and Graham Roberts. (2000) Developing Java Software. John Wiley ISBN 0471 606960
It is considered essential that students buy one of these general texts on Java. Exactly which is left to your own personal preference. Advice will be offered in lectures..
** Consult For Futher Information
David Budgen. (1993) Software Design. Addison-Wesley
Michael Main. (Oct 1998) Data Structures and Other Objects Using Java. Addison-Wesley ISBN 0201357445