Undergraduate Course: Advances in Programming Languages (INFR11101)
|School||School of Informatics
||College||College of Science and Engineering
|Credit level (Normal year taken)||SCQF Level 11 (Year 4 Undergraduate)
||Availability||Available to all students
|Summary||This course will survey recent developments in programming language design and implementation with an emphasis on those developments which are technological advances on the state-of-the-art.
* The aims of language design: correctness, uniformity, practicality
* Advanced programming language constructs: overview and motivation
* Specific examples of programming language approaches to different problem domains, generally four or five drawn from areas such as:
Concurrency, memory management, security, distribution, parallelism,
verification, correctness, types, objects, classes, language interworking,
polymorphism, generics, naming, and modularity.
Relevant QAA Computing Curriculum Sections: Comparative Programming Languages, Compilers and Syntax Directed Tools, Theoretical Computing
Entry Requirements (not applicable to Visiting Students)
|Prohibited Combinations|| Students MUST NOT also be taking
Advances in Programming Languages (INFR10003)
||Other requirements|| Familiarity with at least one object-oriented imperative language and one functional programming language. For students taking undergraduate degrees in the School of Informatics, these will usually be Java and Haskell, respectively.
Information for Visiting Students
|Pre-requisites||Visiting students are required to have comparable background to that
assumed by the course prerequisites listed in the Degree Regulations &
Programmes of Study. If in doubt, consult the course lecturer.
|High Demand Course?
Course Delivery Information
|Not being delivered|
| A student who has successfully completed this course should be able to:
1 - Give examples of different programming idioms, other than the imperative class-based object-oriented model which is familiar from Java.
2 - Explain distinctive features of programming idioms, illustrating some relative advantages and disadvantages.
3 - Describe requirements and constraints in the design of programming languages and individual language features.
4 - Outline some of the problems arising from feature interaction in programming languages.
5 - For a range of programming language features, identify the problem they were created to solve, explain the approach they take to do this, and discuss possible problems that may arise.
6 - Describe in depth a specific recent programming language innovation, explaining its motivation, implementation, and how it compares to previous approaches.
7 - Write working code that demonstrates the use of a novel language feature, based on technical research papers and language documentation.
|Reading material will include selected technical papers on the languages featured in the course. There is no nominated textbook for the course.|
|Course organiser||Dr Ian Stark
Tel: (0131 6)50 5143
|Course secretary||Ms Sarah Larios
Tel: (0131 6)51 4164