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
Lectures

24

Practical

24

Autonomous Student Learning

70

Total

118

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
Pre-requisite:
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

50

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

20

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

30


Carry forward of passed components
Yes
 
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.