Module Identifier CS12230  
Module Title INTRODUCTION TO PROGRAMMING  
Academic Year 2006/2007  
Co-ordinator Dr Mark B Ratcliffe  
Semester Semester 1  
Other staff Dr Lynda A Thomas  
Mutually Exclusive CS12320  
Course delivery Other   Workshop. 11 x 1hr  
  Seminars / Tutorials   Tutorial. 11 x 1hr  
  Practical   11 x 2hrs  
  Practical   Practicals / Field Days. 1 activity weekend  
  Lecture   42 lectures  
Assessment
Assessment TypeAssessment Length/DetailsProportion
Semester Exam2 Hours A1 online examination  50%
Semester Assessment A2 In-Course Assessment: Best of 2 in-class tests  20%
Semester Assessment A4 Course Work: One piece of assessed coursework (group project)  30%
Semester Assessment A3 Practical Exercise: Regular worksheets with penalties for non-completion   
Supplementary Exam1.5 Hours Online examination  100%
Further details http://www.aber.ac.uk/compsci/ModuleInfo/CS12230  

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

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.

Aims

This module is intended for students with little, if any, previous programming experience.

Students are introduced to the basic concepts of programming in the context of a professional approach to software development. 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.

Although Java is used as the implementation language, the module is taught in a way that attempts to ease the task of learning second and subsequent programming languages. The practical work associated with the module enables students to learn how to edit, compile, run and test programs that cover all aspects of the Java language addressed in lectures.

The intention of the supervised practical sessions is to develop the problem solving and 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.

The Activity Weekend is designed to enhance the student'r 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.

Content

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
An introduction to illustrating designs using the Unified Modelling Language (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

Books
** Recommended Consultation
Barnes and Kolling (2006) Objects First with Java 3rd. Pearson
John Lewis and William Loftus (2005) Java Software Solutions 4th. Addison Wesley 0321269799
Savitch, Walter J. (2008) Absolute Java 3rd. Addison Wesley 0321312538
** Consult For Futher Information
Horton, Ivor (Jan. 2005) Ivor Horton's Beginning Java 2 5th. 0764568744
Nell Dale, Chip Weems, Mark Headington (2003) Programming and Problem Solving with Java 1. Jones and Bartlett, Computer Science 0763704903

Notes

This module is at CQFW Level 4