Module Identifier CS12320  
Module Title CONCEPTS IN PROGRAMMING  
Academic Year 2001/2002  
Co-ordinator Dr Mark Ratcliffe  
Semester Semester 1  
Mutually Exclusive CS12230  
Course delivery Lecture   30 lectures  
  Seminars / Tutorials   11 x 1hr  
  Practical   11 x 2 hours  
  Practicals / Field Days   1 Activity weekend  
  Workshop   11 x 1hr  
Assessment Practical exercise   A3 Regular worksheets with penalties for non-completion    
  In-course assessment   A2 Best of 2 in-class tests   20%  
  Supplementary examination   1.5 Hours Written examination   100%  
  Course work   A4 One piece of assessed coursework (group project)   30%  
  Exam   1.5 Hours A1   50%  
Further details http://www.aber.ac.uk/compsci/ModuleInfo/CS12320  

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.

Aims


The module concentrates on the design of software using object oriented design in a way that eases development by a team of programmers, enhances reuse of existing components and improves the maintainability of the resulting software.


The idea of problem solving and algorithm design is addressed very early on in the module. Through extensive practical experience, students gain skills in developing, evaluating and implementing their own designs. Through the tutorial system they are also given practice in evaluating and implementing designs produced by others. Emphasis is placed on distinguishing between the design of a software product and its implementation.


The Java programming language is used as a basis for illustrating the concepts covered by the syllabus. 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.


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.


The Activity Weekend is designed to enhance the student's team working skills and to further develop their interpersonal and communication skills. Through a series of varied tasks held over the weekend, and supported by further project work, students will be exercised in their problem solving abilities.

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. have an awareness of the need for professional software development within computing, demonstrated through the quality of their program code (A4);
3. be able to demonstrate their understanding of problem abstraction and program design by producing good software designs (A3, A4);
4. be able to describe their designs using simple Universal Modelling Language (UML) notation (A3);
5. be capable of realising their design in the Java programming language (A3, A4);
6. be able to use the workstations to develop their programs to meet the specified requirements (A3);
7. have experience of team work within varying environments and have an appreciation of the idea of team roles (A4).

Syllabus


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 - 1 Lecture
Computer organisation at Aberystwyth. Emphasis is placed on the relationships between hardware, architecture and software, with reference to the computer systems at Aberystwyth.


4. Representation of designs - 3 Lectures
An introduction to illustrating designs using the Unified Modelling Language (UML).


5. Programming in the large - An introduction to Java - 23 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 - 1 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

Books
** Recommended Text
B. Cornelius. (2001) Understanding Java. Addison-Wesley ISBN 0201711079
** Consult For Futher Information
G. Rowe. (1999) Essence of Java Programmin. 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. (1996) Software Design. Addison Wesley ISBN 0-201-54403-2
Michael Main. (Oct 1998) Data Structures and Other Objects Using Java. Addison-Wesley ISBN 0201357445