The University of Sheffield
Department of Computer Science

COM6516 Object Oriented Programming and Software Design

Summary This module presents the object-oriented approach to building large software systems from components in the Java Programming Language. It assumes prior knowledge of imperative programming. Large scale program design and implementation issues are covered, using the Java Application Programmer's Interface, including the AWT, GUI programming and the Java Collections Framework. Topics include: data and procedural abstraction, collection interfaces and implementations, the event-driven model of computation, user interface components, streams and files, documentation styles with the Unified Modelling Language (UML).
Session Autumn 2023/24
Credits 15
Assessment
  • Blackboard quiz
  • Assessed lab
  • Coursework
Lecturer(s) Dr Yoshi Gotoh
Resources
Aims
  • to provide a grounding in object-oriented programming techniques;
  • to introduce the major aspects of the Java API;
  • to establish a sound and consistent programming style in Java.
Learning Outcomes  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 on to solutions in the Java Programming Language;
  • understand the basics of visual application programming;
  • be able to document programs using UML.
Content
  • Introduction to programming in Java
  • Object oriented programming: classes and objects, inheritance, abstract classes and interfaces
  • UML
  • Java Collections Framework
  • Graphics programming and user interfaces
Restrictions This module assumes students already have some experience of imperative programming
Teaching Method Lectures will be used to introduce the material, and the main learning method will be practical sessions, during which students will be able to gain experience of the material.
Feedback Students will get feedback from two assessed labs and from the assignment at the end of the semester.