The University of Sheffield
Department of Computer Science

COM6471 Foundations of Object Oriented Programming

Summary This module introduces the foundations of object-oriented programming using the language Java. The emphasis of the module is on software engineering principles, and concepts underpinning object-oriented design and development are introduced from the outset. By the end of the course, students will be able to design, implement and test moderately complex Java programs.
Session Autumn 2020/21
Credits 15
Assessment There will be no final examination for this module. Assessment will be based on programming assignments.
Lecturer(s) Prof Richard Clayton
  • to provide a grounding in object-oriented programming techniques;
  • to inculcate a component-based approach to large program design;
  • to introduce the major aspects of the Java API;
  • 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;
  • be able to target complex problems onto solutions in the Java Programming Language.
  • The Java language and its characteristics;
  • Objects, classes and instances;
  • Sequence, selection, repetition;
  • Arrays and searching;
  • Inheritance, polymorphism, interfaces and abstract classes;
  • Abstract data types, e.g. stacks and queues;
  • Input, output;
  • Introduction to graphics in Java;
Teaching Method Lectures and Laboratory sessions.
Feedback Debriefing lectures after assignment hand ins to provide group feedback
Individual feedback on assignment performance from individual marking.
Feedback in lab class performance through interaction with demonstrators.
Recommended Reading
  • Garside and Mariani (2003). Java: first contact (2nd ed).
  • Bishop (2001). Java gently (3rd ed).
  • Kamin, Mickunas and Reingold (2002). An introduction to computer science using Java (2nd ed).
  • Bell and Parr (2006). Java for students (5th ed).
  • Deitel and Deitel (2005). Java: how to program (6th ed).
For experienced programmers:
  • Cornell and Hortsmann (2008). Core Java 2, volume I.
  • Arnold, Gosling and Holmes (2006). The Java programming language (4th ed).
  • Flanagan (2005). Java in a nutshell (5th ed).