Module Identifier CI12420  
Academic Year 2003/2004  
Co-ordinator Dr Mark B Ratcliffe  
Semester Semester 2  
Other staff Isabel A Robertson, Dr Lynda A Thomas  
Pre-Requisite CS12230 or CS12320  
Mutually Exclusive CS12420  
Course delivery Lecture   30 lectures  
  Practical   11 x 2hr  
  Other   Workshop. Up to 11 x 1hr  
Assessment TypeAssessment Length/DetailsProportion
Semester Exam1.5 Hours A1 Online examination  40%
Semester Assessment Course Work: 2 pieces of assessed coursework  40%
Semester Assessment A2 Course Work: Best of two in-class tests  20%
Semester Assessment A3 Course Work: Regular worksheets with penalties for non-submission   
Supplementary Assessment 1.5 hour Online examination   
Further details  

Learning outcomes

The module concentrates on developing the student''s professional approach to software development.

The major learning outcome of this module is that students should:
1. have an appreciation of the Java concepts covered in the syllabus and be able to make full use of them in their programs (A1, A2);

In addition, on successful completion of the module, students should:
2. appreciate the importance of software design, coding and testing as demonstrated by their own software development (A1, A2, A3, A4, A5);
3. be able to analyse a problem and produce high quality software designs as shown by their project work (A3, A4, A5);
4. be able to produce more robust programs making full use of Java exceptions (A1, A2, A3, A4, A5);
5. be able to make data persist from one program run to another (A3, A4, A5);
6. demonstrate how classes can be made more reusable using Java interfaces (A3, A4, A5);
7. produce high quality software that is robust, reliable, reusable and maintainable (A3, A4, A5).
8. have practical experience of using Swing to develop user-friendly front ends (A3, A4, A5);
9. have more experience of software development within a team working to tight time constraints (A5).


This module is suitable for students who have completed CS12230 or CS12320 but are embarking either on the Internet Computing degree or the Minor in Computer Science. It places much more emphasis on worked examples but does not normally provide a direct route through to other computing degrees.

Students are introduced to more advanced facilities that are available to the software engineer to improve the robustness, reusability and maintainability of software. In particular the module involves detailed coverage of exceptions and an introduction to interfaces.

The graphical user interface, Swing, is used as the basis for implementing user-friendly front-ends. Although the coverage is not exhaustive, students will gain plenty of practical experience the use of these concepts.

The Java programming language is used as a basis for illustrating the concepts covered by the syllabus, but where possible the concepts are introduced in a language independent manner.

The intention of the supervised practical sessions is to enhance the problem solving and programming skills of participants, giving them practical experience of writing software systems in Java.


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. 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.

4. 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 and Queues implemented using arrays and vectors.

5. 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.

Reading Lists

** Recommended Text
Nell Dale, Chip Weems, Mark Headington (March 2003) Programming and Problem Solving with Java 1. Jones and Bartlett, COmputer Science 0-7637-2578-1
** Consult For Futher Information
B. Cornelius (2001) Understanding Java Addison-Wesley ISBN 0201711079
G. Rowe (1999) Essence of Java Programming Pearson Education ISBN 0130113778
John Lewis and William Loftus (2000) Java Software Solutions Addison Wesley ISBN 0201 612712
Ivor Horton (March 2000) Beginning Java 2: 1.3 Version Wrox Press Inc ISBN 1861003668
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
David Budgen (1993) Software Design Addison-Wesley
Michael Main (Oct. 1998) Data Structures and Other Objects Using Java Addison-Wesley ISBN 0201357445
Nell Dale A Laboratory Course for Programming Java jones and Bartlett, Computer Science 0-7637-2463-7
David Flanagan (March 2002) Java in a Nutshell 4. O'Reilly 0-596-00283-1


This module is at CQFW Level 4