DCU Home | Our Courses | Loop | Registry | Library | Search DCU


Module Specifications

Archived Version 2019 - 2020

Module Title
Module Code

Online Module Resources

NFQ level 8 Credit Rating 5
Pre-requisite None
Co-requisite None
Compatibles None
Incompatibles None

This module will introduce the student to essential programming concepts on which modern programming languages are designed. This module will allow students to understand design choices in current programming languages, and to readily understand the features that may introduced into future programming languages.

Learning Outcomes

1. Demonstrate a strong understanding of essential programming concepts.
2. Understand design choices in current programming languages.
3. Select an appropriate programming language for a given programming task.

Workload Full-time hours per semester
Type Hours Description
Lecture24No Description
Assignment Completion30No Description
Independent Study71No Description
Total Workload: 125

All module information is indicative and subject to change. For further information,students are advised to refer to the University's Marks and Standards and Programme Specific Regulations at: http://www.dcu.ie/registry/examinations/index.shtml

Indicative Content and Learning Activities

Execution Environments
Complied vs Interpreted Programs, Bindings.

Typing and Scope
Primitive types, Constructed Types, Static vs Dynamic Types Languages, Type Inference, Algebraic Data Types, Dependent Types, Scope in Blocks, Scope in Namespaces, Static vs. Dynamic Types.

Pointers and Memory Management
Explicit and Implicit pointers, Memory Management, Garbage Collection.

Control, Procedural and Data Abstractions, Functions.

Parameter Passing
Parameter Matching and Parameter Passing Mechanisms.

Assertions and Exceptions
Pre- and Postconditions, Loop Invariants, Program Correctness.

Object-Oriented Programming Paradigm
Classes, Sub-classes, Inheritance, Multiple Inheritance, Interfaces, Polymorphism (incl. Parametric Polymorphism).

Memory Models
Shared, Distributed and Associative Memory.

Logic Programming Paradigm
Search vs. Computation, Unification, The Prolog Database.

Functional Programming Paradigm
Functions as First-Class values, Closures, Partial Application, Lambda Functions.

Assessment Breakdown
Continuous Assessment% Examination Weight%
Course Work Breakdown
TypeDescription% of totalAssessment Date
Reassessment Requirement
Resit arrangements are explained by the following categories;
1 = A resit is available for all components of the module
2 = No resit is available for 100% continuous assessment module
3 = No resit is available for the continuous assessment component
Indicative Reading List

  • M. Ben-Ari: 1996, Understanding Programming Languages, John Wiley & Sons, 978-047195846
  • John C. Mitchell: 2003, Concepts in programming language, Cambridge University Press, New York, 978-052178098
  • David A. Watt: 2004, Programming Language Design Concepts, John Wiley & Sons, 978-047085320
  • 0: Programming Language Pragmatics, 4, San Diego; Morgan Kaufmann, 139570
  • 2015: Concepts of Programming Languages, 11, Pearson,
Other Resources

Programme or List of Programmes