The University of Sheffield
Department of Computer Science

COM6102 Advanced Java Programming

Summary This module presents the object-oriented approach to building large software systems from components in the Java Programming Language. It assumes basic Java Programming skills acquired in COM6471. Large-scale program design and implementation issues are covered, using the Java Application Programmer's Interface, the Java Foundation Classes, the Java Abstract Windowing Toolkit and the Java Collections Framework. Detailed topics include: data and procedural abstraction, generics, collection interfaces and implementations, searching and sorting algorithms, time and space complexity analysis, the event-driven model of computation, GUI building and files.
Session Spring 2020/21
Credits 15

There will be no written examination for this module.
Assessment will be based on a 3-stage coursework assignment.
For each stage, there will be an individual interview with the module leader and demonstrators to demonstrate each piece of coursework and to answer questions about the assignment.

Lecturer(s) Dr Maria-Cruz Villa-Uriol
  • to provide a grounding in object-oriented programming techniques;
  • to inculcate a component-based approach to large program design;
  • to introduce key aspects of GUI design;
  • to develop an understanding of data structures and algorithmic complexity
  • to establish a sound and consistent programming style in Java.
Objectives By the end of this course, students will:
  • understand what is meant by object-oriented and component-based programming;
  • understand the time and space trade-offs between different implementations of collections;
  • understand the basics of visual application programming.
  • Review of object-oriented programming: objects, classes, inheritance and polymorphism
  • Exception handling
  • Recursion
  • Input and output
  • Generics
  • Collections
  • Swing
  • Threads and Concurrency
Restrictions Only available to students whose home department is Computer Science (or to students on joint programmes with Computer Science).
Teaching Method Teaching will begin in the week before semester starts followed by lectures and practical classes for the first 6-7 weeks of semester. Laboratory sessions will be ebedded during lectures to support the practical work.

The primary form of feedback will be the grades and individualised feedback comments on the first two stages of the assignment. Individual feedback will be provided to students during the individual interviews held after the submission of each piece of coursework. Marks will be returned with sufficient time for problems to be addressed in the next installment. Additionally, regular lab work will be offered to students and discussed in labs and classes with the module leader and demonstrators.

Recommended Reading

B.J Evans & D Flanagan, Java in a Nutshell (2014, 6th Ed), O'Reilly.

C. Horstmann & G. Cornell, Core Java Vol. I and II. (2012, 2013 9th Ed), Prentice Hall.