CMT304: Programming Paradigms
School | Cardiff School of Computer Science and Informatics |
Department Code | COMSC |
Module Code | CMT304 |
External Subject Code | 100956 |
Number of Credits | 20 |
Level | L7 |
Language of Delivery | English |
Module Leader | Dr Victor Gutierrez Basulto |
Semester | Autumn Semester |
Academic Year | 2025/6 |
Outline Description of Module
The purpose of this module is to consider choices in, and aspects of, programming language design, and to provide exposure to programming approaches other than imperative and object-oriented approaches. This module will introduce the student to different programming paradigms via examples in a variety of languages and giving the student knowledge of basic concepts and techniques associated with these paradigms through practical examples and programming exercises.
On completion of the module a student should be able to
-
Explain the conceptual foundations, evaluate and apply various programming paradigms, such as logic, functional, scripting, filter-based programming, pattern matching and quantum computing, to solve practical problems.
-
Discuss and contrast the issues, features, design and concepts of a range of programming paradigms and languages to be able to select a suitable programming paradigm to solve a problem.
How the module will be delivered
Modules will be delivered mainly through in-person sessions, with complementary online resources and reading material . You will be guided through learning activities appropriate to your module, which may include:
on-line resources that you work through at your own pace (e.g. videos, web resources, e-books, quizzes),
on-line interactive sessions to work with other students and staff (e.g. discussions, live streaming of presentations, live-coding, team meetings)
face to face small group sessions (e.g. help classes, feedback sessions)
Skills that will be practised and developed
Comparison of programming paradigms and selection of appropriate paradigms for a given problem.
Application of a number of different paradigms using different programming languages.
Understanding of the conceptual basis of different programming languages
How the module will be assessed
A blend of assessment types which may include coursework and portfolio assessments, class tests, and/or formal examinations
Students will be provided with reassessment opportunities in line with University regulations.
Assessment Breakdown
Type | % | Title | Duration(hrs) |
---|---|---|---|
Portfolio | 100 | Portfolio Programming Paradigms | N/A |
Syllabus content
The module will cover a number of programming paradigms and programming languages, which, among others, may include a selection from:
Logic and functional programming Differentiable programming Filter-based computing and pattern matching Scripting Genetic programming Assembly language/machine code Digital and analog quantum computing Other programming paradigms
It might also cover:
Programming language design choices Choosing a programming paradigm and programming language