COMP30950 Multi-paradigm Programming

Academic Year 2023/2024

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

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 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

Not applicable to this module.


Module Requisites and Incompatibles
Pre-requisite:
COMP10300 - Functional Programming, COMP20250 - Introduction to Java, COMP20280 - Data Structures, COMP20290 - Algorithms

Incompatibles:
COMP30070 - Object-Oriented Programming


 
Assessment Strategy  
Description Timing Open Book Exam Component Scale Must Pass Component % of Final Grade
Examination: Final written exam 1 hour End of Trimester Exam No Graded No

30

Continuous Assessment: Programming assignments and programming exam Throughout the Trimester n/a Graded No

70


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

• Feedback individually to students, post-assessment
• 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 Lecturer / Co-Lecturer
Timetabling information is displayed only for guidance purposes, relates to the current Academic Year only and is subject to change.
 
Autumn
     
Lecture Offering 1 Week(s) - Autumn: All Weeks Fri 12:00 - 12:50
External & School Exams Offering 1 Week(s) - 12 Thurs 18:00 - 21:50
Lecture Offering 1 Week(s) - Autumn: All Weeks Tues 14:00 - 14:50
Practical Offering 1 Week(s) - Autumn: All Weeks Tues 09:00 - 10:50
Practical Offering 2 Week(s) - 1, 2, 3, 4, 8, 9, 10, 12 Mon 11:00 - 12:50
Autumn