BSc Computer Science with Industrial Experience

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

Overview

 
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.

Pre/co-requisites

Unit title Unit code Requirement type Description
Introduction to Programming 1 COMP16321 Co-Requisite Compulsory

Aims

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.

 

 

Syllabus

Fundamental design and concepts in programming languages, core code structures, object orientation (classes, interfaces, inheritance, overloading and overriding), primitive and reference types, console and file I/O, error handling, cross-cutting topics (e.g. security, accessibility), data structures (e.g. stack, queue, set), generics, streams, graphical user interfaces in Java FX, using the Java APIs to search and sort, fundamentals of recursion, fundamentals of threading and concurrency.

Teaching and learning methods

Asynchronous independent study material (e.g. videos, reading, online quizzes and formative coursework), group-based workshops, practical lab sessions, Q&A sessions. Activities are supported by academics and GTAs both in-person and through online forums.

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 6
Practical classes & workshops 33
Independent study hours
Independent study 61

Teaching staff

Staff member Role
Sarah Clinch Unit coordinator

Return to course details