The University of Sheffield
Department of Computer Science

COM1003 Java Programming

Summary This module introduces programming concepts through the Java programming language. Program design and the use of testing to drive program creation are also covered. Initial focus is placed on the structured aspects typical of many programming languages: the ideas of a sequence, selection and repetition. The object-oriented approach to building large software systems from components is then presented. Throughout the module, emphasis is placed on the practice of writing well-structured and readable programs to solve problems.
Session Academic Year 2023/24
Credits 20
Assessment Assessment will be via Blackboard quizzes, short programming assignments and larger programming assignments. There will be no written examination for this module.
Lecturer(s) Dr Siobhán North, Dr Jose Rojas & Dr Mari-Cruz Villa-Uriol
Resources
Aims
  • to develop an understanding of computers and computer program execution;
  • to develop an understanding of program elements such as variables, types and objects;
  • to develop skills in problem solving and program design;
  • to develop an understanding of abstractions such as methods and control structures;
  • to introduce notions of data abstraction and encapsulation;
  • to provide a grounding in object-oriented programming techniques;
  • to inculcate a component-based approach to large program design;
  • to introduce key aspects of the Java API and Swing;
  • to develop an understanding of data structures and algorithmic complexity;
  • to establish a sound and consistent programming style in Java;
  • to provide experience of collaborative work on solving programming problems;
  • to introduce unit testing and develop an understanding of how to write simple automated tests.
Learning Outcomes  By the end of this course, students will:
  • Recognise and apply fundamentals of Java programming
  • Apply principles of object oriented programming to construct programming solutions in Java
  • Demonstrate the use of object oriented design
  • Develop and apply unit testing using a standard framework
  • Recognise and apply key components of the Java API
  • Demonstrate application of advanced programming concepts (such as exception handling, threading and recursion) in Java.
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
  • JUnit.
Advanced programming
  • exception handling;
  • threading;
  • recursion.
Components of the the Java API
  • Input and output;
  • Collections;
  • Swing;
  • specifying and developing a graphical user interface.
Teaching Method Lectures and laboratory sessions.
Feedback
  • On assignment hand back sheets
  • In Blackboard Quiz feedback
  • In lectures (going through class test Q&As)
  • In lab classes (going through exercises and assignment problems).