Page 1 of 1

Module Code - Title:

CS4207 - ADVANCED PROGRAMMING CONCEPTS AND PRACTICES

Year Last Offered:

2025/6

Hours Per Week:

Lecture

2

Lab

2

Tutorial

0

Other

0

Private

6

Credits

6

Grading Type:

N

Prerequisite Modules:

CS4115
CS4076

Rationale and Purpose of the Module:

None of the main programming paradigms have a precise, globally unanimous definition, nor official international standard. Nor is there any agreement on which paradigm constitutes the best method to developing software. This module provides a deeper understanding of some of the less well known programming paradigms. In particular is will focus on central programming concepts such as abstraction and representation as well as concepts such as parallel and concurrent execution. Particular emphasis on newer and emerging programming languages and industry trends will be an essential aspect of this module.

Syllabus:

In the course of a career, a computer scientist will be confronted with many different programming languages and paradigms. To make informed design choices when selecting a particular language, they must understand the principles underlying how different programming language features are defined, implemented and be suited to different problem domains. Syllabus will include : Abstract Machines; Describing a Programming Language, Names and The Environment, Memory Management, Control, Abstraction; Models of concurrency and implementation.

Learning Outcomes:

Cognitive (Knowledge, Understanding, Application, Analysis, Evaluation, Synthesis)

Following completion of this module, students will be able to: Demonstrate an in-depth understanding of functional, logic, object oriented and concurrent programming paradigms Demonstrate an understanding of an implementations of each different paradigms covered and atleast one hybrid paradigms Demonstrate and compare the application of 2 different programming paradigms implementations to the same problem

Affective (Attitudes and Values)

Following completion of this module, students will be able to: Demonstrate an in-depth understanding of how different approaches to programming have developed over time and how the notion of paradigms have often been created retrospectively Demonstrate an in-depth understanding of why some programming language researchers criticise the notion of paradigms as a classification of programming languages

Psychomotor (Physical Skills)

N/A

How the Module will be Taught and what will be the Learning Experiences of the Students:

A number of programming paradigms have risen and fallen in popularity since the invention of the computer. Many of these have been accompanied by claims that they are a more natural way to program, others paradigms have evolved as new approaches to new hardware innovation or domain requirements. Recently research covers areas such as Model Driven Development (MDD) and Domain-Specific Language (DSL) which have both have been touted as an easier or more natural way to develop software. Another catalyst has been the growth of Artificial Intelligence and the demands to better take advantage of new highly parallel chip architecture. Although it is difficult to predict what new or evolved paradigms will come to the fore it is certain that as with nearly everything else in the software development world it will not stay the same for long. Following completion of this module, students will be able to: Demonstrated a capacity to bring their knowledge of various programming paradigms to bear on appropriate solutions for real world domain problems and challenges Demonstrated an ability to use their knowledge to drive the improvements and lead positive change of existing software paradigm research

Research Findings Incorporated in to the Syllabus (If Relevant):

Prime Texts:

Gabbrielli, Maurizio, Martini, Simone (2010) Programming Languages: Principles and Paradigms , Springer

Other Relevant Texts:

Robert Sebesta (2016) Concepts of Programming Languages, Global Edition , Pearson

Programme(s) in which this Module is Offered:

BSCOSYUFA - COMPUTER SYSTEMS
BSCGDEUFA - COMPUTER GAMES DEVELOPMENT

Semester(s) Module is Offered:

Autumn

Module Leader:

meghana.kshirsagar@ul.ie