Course overview
This course aims to provide a comprehensive overview of advanced programming paradigms and methodologies. These include the design and development of programs that contain concurrency, inter-process communication and synchronisation. In addition, the course will focus on the design and development of new languages and factors influencing the acceptance of languages. By the end of the course, participants will have acquired the knowledge and skills necessary to tackle complex programming challenges with confidence and proficiency, empowering them to excel in their roles as software developers and engineers.
- Concurrent Programming
- Language Design and Algebraic Spec
- Interpreter Design
Course learning outcomes
- Design, implement, and test concurrent programs using inter-process communication, synchronisation mechanisms, and appropriate debugging tools.
- Evaluate the performance of concurrent programming solutions across execution time, scalability, resource utilisation, and fault tolerance.
- Apply fundamental principles of programming language design, including syntax, semantics, and data abstraction.
- Develop formal specifications for abstract data types and programming languages using algebraic and interpreter-based approaches.
Degree list
The following degrees include this course