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
| |||||||||||||||||||||||||||||||||||||||||||||
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 | |||||||||||||||||||||||||||||||||||||||||||||
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 EnvironmentsComplied vs Interpreted Programs, Bindings.Typing and ScopePrimitive 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 ManagementExplicit and Implicit pointers, Memory Management, Garbage Collection.AbstractionControl, Procedural and Data Abstractions, Functions.Parameter PassingParameter Matching and Parameter Passing Mechanisms.Assertions and ExceptionsPre- and Postconditions, Loop Invariants, Program Correctness.ConcurrencySemaphores, Monitors, Message Passing, Threads, Coroutines.Object-Oriented Programming ParadigmClasses, Sub-classes, Inheritance, Multiple Inheritance, Interfaces, Polymorphism (incl. Parametric Polymorphism).Logic Programming ParadigmSearch vs. Computation, Unification, The Prolog Database.Functional Programming ParadigmFunctions as First-Class values, Closures, Partial Application, Lambda Functions. | |||||||||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||||||||
Indicative Reading List
| |||||||||||||||||||||||||||||||||||||||||||||
Other Resources None | |||||||||||||||||||||||||||||||||||||||||||||