Don't just imagine your future at University, experience it first-hand!

Step into the shoes of an undergraduate student and join us for our upcoming on-campus Discover Days in Science, Engineering and Fashion. These days are tailored exclusively for Year 12s who are interested in taking their academic journey to the next level. Find your favourite subject now!

Find out more about our Discover Days in Science, Engineering and Fashion

BSc Computer Science / Course details

Year of entry: 2024

Course unit details:
Introduction to Programming 2

Course unit fact file
Unit code COMP16412
Credit rating 10
Unit level Level 1
Teaching period(s) Semester 2
Available as a free choice unit? Yes


This course introduces the concepts of object oriented programming using the Java
language. The features of the object oriented paradigm will be illustrated through theoretical
classes, and practical workshops and labs.


Unit title Unit code Requirement type Description
Introduction to Programming 1 COMP16321 Co-Requisite Compulsory
COMP16412 has a co-requisite of COMP16321


To specify, design, test, develop, deploy, debug and run programmes of a significant
complexity using an object-oriented language (ie Java) and its standard platform. To identify
the strengths and weaknesses of the paradigm and the language.

Learning outcomes

  • To identify the fundamental building blocks of new programming languages in general
  • Identify the advantages of object-oriented programming.
  • Design classes using the UML notation and write the code of a specified class.
  • Explain and implement object oriented concepts including inheritance, polymorphism, interfaces and abstraction.
  • Identify appropriate situations for reading/writing files from an application, be able to make secure, robust calls out to the relevant file-handling libraries in Java.
  • Use data structures of the Java Collections Framework, and create your own data structures.
  • Build interactive graphical applications using JavaFX that respond to user events and consider some basic usability concerns. Use custom components to achieve these goals where appropriate.
  • Describe the benefits of grouping files into packages. Create and deploy packages, use existing libraries.
  • Apply concepts above to existing programming language knowledge, i.e. Python.




Week 1: Crash course on Java I

Week 2: Crash course on Java II

Week 3: Working with input/output and String handling

Week 4: Advanced Object Oriented Programming

Week 5: Error and file handling

Week 6: Reading week: security

Week 7: Introduction to building GUIs with Java

Week 8: Generics

Week 9: Data Structures I

Week 10: Building GUIs with Java and multithreading

Week 11: Data Structures II

Week 12: Revision


Teaching and learning methods

Lectures, workshops, clinics, coursework, face to face mentoring by TAs. Use of online quizzes.

Assessment methods

Method Weight
Written exam 50%
Practical skills assessment 50%

Recommended reading

COMP16412 reading list can be found on the Department of Computer Science internal pages

Study hours

Scheduled activity hours
Lectures 12
Practical classes & workshops 36
Independent study hours
Independent study 52

Teaching staff

Staff member Role
Markel Vigo Unit coordinator

Return to course details