The University of Sheffield
School of Computer Science

COM114 Java Programming

Summary

This module is about programming in the Java language.

There is no requirement that students arrive with any knowledge of programming although many do and some are already very experienced programmers. This module is intended to ensure that both absolute beginners and strong programmers are capable of writing clear, well structured, readable programs in Java by the end of the module.

The module is largely taught through practical classes but students will have the opportunity to pace their own learning based on their prior experience. It does mean that beginners will have to work harder than students who arrive as experts, though some students who consider themselves to be experts may have some unlearning to do. 

Session Autumn 2025/26
Credits 20
Assessment
  • Programming assignments 
  • Final exam
Lecturer(s) Dr Maria-Cruz Villa Uriol, Dr Siobhan North, Dr Xu Xu, Miss Ayesha Sana & Ms Varvara Papazoglou
Resources
Aims

The aims of this module are:

  • Provide a solid foundation to object oriented programming in Java.
  • Emphasise the importance of writing well-structured and understandable code.
Learning Outcomes 

By the end of the module, the student will be able to:

  • Recognise and apply fundamentals of Java programming as an Object Oriented language to programming problems
  • Demonstrate the ability to write well structured and maintainable Java programs that conform to the Java language conventions
  • Be familiar with the Java API documentation and capable of using it in new contexts
Content

Introduction to Java programming 

  • variables, constants and assignments;
  • data types and values;
  • classes and objects;
  • input and output;
  • problem solving and program design.

Object Oriented Programming

  • classes;
  • methods and parameters;
  • object composition;
  • inheritance;
  • polymorphism.

Object-oriented programming and design

  • information hiding;
  • abstract data types;
  • refactoring.

Testing

Advanced programming topics

  • exception handling.

Components of the Java API

  • Input and output;
  • Collections;
  • Swing;
  • specifying and developing a graphical user interface.

Teaching Method Lectures and problem solving classes
Feedback

Formative feedback will be provided in weekly practical classes, with additional feedback being provided for submitted coursework.