Module Identifier CI12420  
Module Title SOFTWARE DEVELOPMENT  
Academic Year 2000/2001  
Co-ordinator Dr Mark Ratcliffe  
Semester Semester 2  
Pre-Requisite CS12230 or CS12320  
Mutually Exclusive CS12420  
Course delivery Lecture   30 lectures  
  Tutorial   11 tutorials  
  Practical   11 x 2hr practicals  
Assessment Exam   1.5 Hours Final examination   40%  
  Course work   2 pieces of assessed coursework   40%  
  Course work   Best of two in-class tests   20%  
  Course work   Regular worksheets with penalties for non-submission    
  Resit assessment   Supplementary examination will take the same form, under the terms of the Department's policy.    

Brief description
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 more emphasis on worked examples but does not provide a route through to other computing degrees.

Aims
This module builds on the material covered in CS12230/CS12320 to further the development of participants' programming skills by:

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:

Syllabus
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
Books
Students are likely to need ready access to one of the texts below..
** 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
** 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