Latest Module Specifications
Current Academic Year 2025 - 2026
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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. 1E499A9D-522E-0001-8283-1DB071481BCD 2. Explain the essential concepts underpinning modern programming languages. 4. 7,6 5. 1 6. 1E499A9D-6593-0001-CF25-147010AA9960 7. Evaluate a programming language with respect to its design choices and appropriateness for a given programming task 9. 11,9 10. 2 11. 1E499A9D-A63F-0001-9826-10001A1B1DF5 12. Implement a fundamental programming task and data structure in an imperative and declarative fashion 14. 8,10 15. 3 16. 1E499A9D-C79D-0001-68E7-67F46BED1337 17. Compare a procedural programming language with an object oriented programming language within the context of programming language design concepts 19. 9 20. 4 21. 1E499A9D-F9CA-0001-D0E5-EA1210608630 22. Compare a functional programming language with a logic programming language within the context of programming language design concepts 24. 9 25. 5 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Indicative Reading List Books:
Articles:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Other Resources None | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||