COMP30070 Object-Oriented Programming

Academic Year 2022/2023

This is an advanced programming module that assumes a working knowledge of object-oriented programming and data structures & algorithms, and a familiarity with functional programming . This module covers object-oriented programming in detail and explores how functional programming integrates with object-oriented programming in current practice. There is a focus on producing software that is:
(1) demonstrably correct, by using unit testing and
(2) maintainable, by observing sound programming principles during development.
There is a strong emphasis on practical programming skills throughout this module, and being able to develop correct, maintainable code is a key part of the assessment for this module. The main programming language employed is Scala.

Show/hide contentOpenClose All

Curricular information is subject to change

Learning Outcomes:

On successful completion of this module students should be able to:
o describe the key aspects of object-oriented programming and their inter-relationships,
o design, implement, test and debug object-oriented programs of moderate complexity,
o understand functional programming and how it integrates with object-oriented programming
o compare and contrast different object-oriented programming languages,
o assess and improve the internal quality of software

Indicative Module Content:

Student Effort Hours: 
Student Effort Type Hours
Autonomous Student Learning








Approaches to Teaching and Learning:
The module material is presented in face-to-face or online lectures where students are actively encouraged to ask questions and discuss the material further. Weekly labs give the students a space to engage with the material in a practical way. A number of programming assignments are set to enable students to improve their programming skills. 
Requirements, Exclusions and Recommendations
Learning Requirements:

This module assumes that participants:
have a solid grounding in object-oriented programming using Java, or a similar language,
have some experience of functional programming,
are familiar with basic data structures and algorithms,
are competent users of Git and GitHub,
have some experience with test-driven development.

Learning Recommendations:

Participants on this module should have covered the material provided by:
COMP20010 Data Structures and Algorithms I
COMP20040 Data Structures and Algorithms II

Module Requisites and Incompatibles
COMP10300 - Functional Programming, COMP20050 - Software Engineering Project 2, COMP20190 - Intro to Functional Progr'ing, COMP20250 - Introduction to Java, COMP20280 - Data Structures, COMP20290 - Algorithms

Additional Information:
COMP10300 Functional Programming or COMP20190 Introduction to Functional Programming

Assessment Strategy  
Description Timing Open Book Exam Component Scale Must Pass Component % of Final Grade
Practical Examination: Programming exam held in the school. Week 12 n/a Graded No


Examination: End of semester written exam. 1 hour End of Trimester Exam No Graded No


Assignment: Programming assignments Throughout the Trimester n/a Graded No


Carry forward of passed components
Resit In Terminal Exam
Spring No
Please see Student Jargon Buster for more information about remediation types and timing. 
Feedback Strategy/Strategies

• Group/class feedback, post-assessment

How will my Feedback be Delivered?

After each assignment the lecturer will discuss a sample solution with the class and highlight the most common errors.

Name Role
Mr Deaglan Connolly Bree Tutor
Timetabling information is displayed only for guidance purposes, relates to the current Academic Year only and is subject to change.
Lecture Offering 1 Week(s) - Autumn: All Weeks Fri 12:00 - 12:50
External & School Exams Offering 1 Week(s) - 12 Thurs 18:00 - 20:40
Lecture Offering 1 Week(s) - Autumn: All Weeks Wed 14:00 - 14:50
Practical Offering 1 Week(s) - Autumn: All Weeks Tues 09:00 - 10:50
Practical Offering 4 Week(s) - 1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12 Mon 11:00 - 12:50