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.
Course learning outcomes
- Apply advanced programming language concepts such as inter-process communication, concurrency and synchronisation to various problems
- Evaluate the performance of various concurrent programming solutions to the same problem
- Apply development and testing approaches and tools to concurrent and parallel problems
- Apply fundamental principles of programming language design
- Create algebraic specification of abstract data types
- Develop interpreter-based specification of programming languages