Module Information

Module Identifier
Module Title
Academic Year
Semester 1
Mutually Exclusive
Other Staff

Course Delivery

Delivery Type Delivery length / details
Other Workshop. 10 x 1hr
Lecture 42 lectures - 4 per week
Practical 11 x 2 hours


Assessment Type Assessment length / details Proportion
Semester Exam 2 Hours   online examination  40%
Semester Assessment Best of 2 in-class tests  20%
Semester Assessment 1 practical programming assignment involving design and implementation of a java solution to a problem  30%
Semester Assessment Up to 8 practical worksheets completed in labs and in own time  10%
Supplementary Exam 2 Hours   Supplementary Exam  Resit failed examination and/or resubmission of failed/non-submitted coursework components or ones of equivalent value  100%

Learning Outcomes

On successful completion of this module students should be able to:

demonstrate an understanding of problem abstraction and program design by producing good software designs using simple Universal Modelling Language (UML) notation.

realise those designs by using Java concepts in programs that solve a variety of problems.

demonstrate professionalism through the production of high quality program code.

describe the purpose of high level programming languages in solving real world problems.


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.

Brief description

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.


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.

Reading List

Recommended Consultation
Barnes and Kolling (2012) Objects First with Java 5th (older would probably do) Pearson Primo search
Consult For Futher Information
Horton, Ivor Beginning Java: Java 7 Edition Good for looking things up. Not good for learning Java from scratch. Primo search


This module is at CQFW Level 4