Module Provider: Computer Science
Number of credits: 20 [10 ECTS credits]
Terms in which taught: Autumn / Spring term module
Pre-requisites: CS1PR16 Programming
Non-modular pre-requisites:
Modules excluded:
Module version for: 2017/8

Module Convenor: Prof Richard Mitchell

Email: r.j.mitchell@reading.ac.uk

Summary module description:
The module introduces the students to Object-Oriented programming with the Java language. The module covers the discipline, methodologies, and techniques of software development in Java. Knowledge of the C language syntax and experience of structured programming is a pre-requisite. The module is designed for students with some programming experience. The module is delivered in two terms. In the Autumn term the module introduces the basics of Object-Oriented Programming in Java (e.g. classes, objects, inheritance hierarchies, I/O, etc.). In the Spring term the module covers the advanced topics and techniques (e.g. data structures, networking, GUI, etc.).

This module improves students’ programming skills. It exposes the students to advanced programming techniques and methodologies. The practical activities of this module are fundamental to build sufficient skills and confidence to approach part 3 modules which require programming activities and the final year project.

Assessable learning outcomes:

Students are expected to master the Java language and be able to develop complete stand-alone and network applications with a Graphical User Interface. They will also be able to describe the main elements of Object-Oriented programming in general and with respect to the syntax of the Java programming language in particular. Upon completion of this module, students will be able to:

• Compile and run a Java application from the command line and within IDEs.

• Understand the role of the Java Virtual Machine and the Java bytecode in achieving platform independence.

• Navigate through the API docs.

• Generates API documentation for their own software.

• Understand the Object Oriented paradigm and correctly use it in Java programs. 

• Understand the division of classes into Java packages. 

• Use Exceptions to handle run time errors. 

• Select the proper I/O class among those provided by the JDK. 

• Select the proper data structures among those provided in the JCF. 

• Use threads in order to create more efficient Java programs. 

• Use network protocol within Java applications. 

• Design and develop GUIs.

Additional outcomes:
Students will become familiar with the Standard Java API (Application Programming Interface) and cross-platform libraries. They will also learn how to improve programming proficiency by exploiting the advanced features of Integrated Development Environments like Eclipse.

Outline content:

• Object-Oriented programming;

• Abstraction, Encapsulation, Inheritance, Polymorphism;

• Java Virtual Machine and the Java 2 Platforms;

• Overview of the Java programming language;

• Java syntax and code conventions;

• Classes, Objects, Interfaces, Abstract Classes;

• Java cross-platform libraries (API);

• Threads, Exception handling, Garbage collection;

• Java Input/Output system;

• Java Collections Framework;

• Java Foundation Classes, model-delegate GUI design and event-driven programming;

• Client/Server applications and Internet protocols;

• Unit testing;

• Java in Mobile Computing (Android).

Brief description of teaching and learning methods:
The module is delivered in flipped mode using videos and practical activities. Practical work is in the form of tutorials, programming exercises and assessed coursework. Students will incrementally develop software applications by extending example code to reinforce most of the topics presented in the lectures.

Contact hours:
  Autumn Spring Summer
Lectures 1 0
Practicals classes and workshops 20 20
Guided independent study 79 80
Total hours by term 100.00 100.00
Total hours for module 200.00

Summative Assessment Methods:
Method Percentage
Set exercise 100

Other information on summative assessment:

The assessment will comprise two major programs in Java each worth 40% of the marks, a set of weekly quizzes worth 10% and an online test on aspects of Java worth 10%.


Formative assessment methods:

Weekly practicals with opportunities for feedback.

Penalties for late submission:
The Module Convenor will apply the following penalties for work submitted late, in accordance with the University policy.

  • where the piece of work is submitted up to one calendar week after the original deadline (or any formally agreed extension to the deadline): 10% of the total marks available for the piece of work will be deducted from the mark for each working day (or part thereof) following the deadline up to a total of five working days;
  • where the piece of work is submitted more than five working days after the original deadline (or any formally agreed extension to the deadline): a mark of zero will be recorded.

  • The University policy statement on penalties for late submission can be found at: http://www.reading.ac.uk/web/FILES/qualitysupport/penaltiesforlatesubmission.pdf
    You are strongly advised to ensure that coursework is submitted by the relevant deadline. You should note that it is advisable to submit work in an unfinished state rather than to fail to submit any work.

    Length of examination:


    Requirements for a pass:

    A mark of 40% overall.

    Reassessment arrangements:
    Examination only.
    One 2-hour examination paper in August/September.

    Additional Costs (specified where applicable):
    1) Required text books:
    2) Specialist equipment or materials:
    3) Specialist clothing, footwear or headgear:
    4) Printing and binding:
    5) Computers and devices with a particular specification:
    6) Travel, accommodation and subsistence:

    Last updated: 31 March 2017

    Things to do now