Module Identifier CS12230  
Academic Year 2000/2001  
Co-ordinator Dr Mark Ratcliffe  
Semester Semester 1  
Mutually Exclusive CS12320 , CS12220 , Previous high level programming experience  
Course delivery Lecture   42 lectures  
  Workshop   11 x 1hr  
  Tutorial   11  
  Practical   11 x 2hours  
  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 introduces students to the basic concepts of programming in the context of a professional approach to software development. The design of software using hierarchical decomposition and its subsequent implementation using the Java programming language is fundamental to the module. The practical work associated with the module will enable students to learn how to edit, compile, run and test simple programs in Java. The module is intended for students with little, if any, previous programming experience.

This module aims to introduce students to the idea of problem solving and algorithm design together with subsequent implementation using the programming language Java. Emphasis is placed on distinguishing between the design of a software product and its implementation. The intention of the supervised practical sessions is to develop the programming skills of participants.

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. Management Issues and Professional Conduct - 1 Lecture
The growing role of computing and software. The need for software engineering and professionalism.

3. Computer system appreciation - 2 Lectures
Introduction to the basic computer organisation. Emphasis is placed on the relationships between hardware, architecture and software, with reference to the computer systems at Aberystwyth. Using the computing facilities at Aberystwyth.

4. Representation of designs - 3 Lectures
Looking at the way in which designs can be illustrated using UML.

5. Programming in the large - An introduction to Java - 33 Lectures
Software crisis, abstraction, algorithms and programs. The design of algorithms, object oriented programming, and an introduction to Java. Programming constructs, expressions, primitive types, classes and objects. Information hiding. Further object oriented design - inheritance.

6. Testing - 2 Lectures
Techniques and aids for error detection.

7. Personal Communications Skills - 1 Weekend
Team roles; Belbin methodology and self assessment. Interpersonal skills - achieved in associated Team Skills weekends.

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. 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 HorstMann. (2000) Computing Concepts with Java 2 Essentials. John Wiley ISBN 0471 346098
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..