DCU Home | Our Courses | Loop | Registry | Library | Search DCU
<< Back to Module List

Module Specifications.

Current Academic Year 2024 - 2025

All Module information is indicative, and this portal is an interim interface pending the full upgrade of Coursebuilder and subsequent integration to the new DCU Student Information System (DCU Key).

As such, this is a point in time view of data which will be refreshed periodically. Some fields/data may not yet be available pending the completion of the full Coursebuilder upgrade and integration project. We will post status updates as they become available. Thank you for your patience and understanding.

Date posted: September 2024

Module Title Comparative Programming Languages
Module Code CA341 (ITS) / CSC1055 (Banner)
Faculty Engineering & Computing School Computing
Module Co-ordinatorGeoffrey Hamilton
Module TeachersBrian Davis
NFQ level 8 Credit Rating 5
Pre-requisite Not Available
Co-requisite Not Available
Compatibles Not Available
Incompatibles Not Available
Repeat examination
Description

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. Explain the essential concepts underpinning modern programming languages.
2. Evaluate a programming language with respect to its design choices and appropriateness for a given programming task
3. Implement a fundamental programming task and data structure in an imperative and declarative fashion
4. Compare a procedural programming language with an object oriented programming language within the context of programming language design concepts
5. Compare a functional programming language with a logic programming language within the context of programming language design concepts



Workload Full-time hours per semester
Type Hours Description
Lecture24Formal lectures
Assignment Completion50No Description
Independent Study51No 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.

Abstraction
Control, Procedural and Data Abstractions, Functions.

Parameter Passing
Parameter Matching and Parameter Passing Mechanisms.

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

Concurrency
Semaphores, Monitors, Message Passing, Threads, Coroutines.

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

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 Assessment50% Examination Weight50%
Course Work Breakdown
TypeDescription% of totalAssessment Date
Group assignmentImperative Programming Assignment. Students will implement a fundamental programming task in a procedural and object-oriented programming language. Students must describe and document their solution in detail and compare and contrast both programming paradigms in a critical report.20%Week 6
Group assignmentDeclarative Programming Assignment. Students will implement a fundamental programming task in a functional and logic based language of their choice. Students must describe and document their solution in detail and compare and contrast both programming paradigms in a critical report20%Week 9
Loop QuizStudents will complete weekly quizzes which will test the knowledge and comprehension of each unit of teaching.10%Every Week
Reassessment Requirement Type
Resit arrangements are explained by the following categories:
Resit category 1: A resit is available for both* components of the module.
Resit category 2: No resit is available for a 100% continuous assessment module.
Resit category 3: No resit is available for the continuous assessment component where there is a continuous assessment and examination element.
* ‘Both’ is used in the context of the module having a Continuous Assessment/Examination split; where the module is 100% continuous assessment, there will also be a resit of the assessment
This module is category 1
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, 315995
  • 2015: Concepts of Programming Languages, 11, Pearson,
Other Resources

None

<< Back to Module List