| 
 Undergraduate Course: Advances in Programming Languages (INFR11101)
Course Outline
| 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 |  
| SCQF Credits | 10 | ECTS Credits | 5 |  
 
| Summary | This course surveys recent developments in programming language design and implementation with an emphasis on those developments which are technological advances on the state-of-the-art. |  
| Course description | Students in APL learn about a range of significant issues in programming language design and implementation. Much of the material is presented in lectures on current topics, supported by additional reading and self-study. Students also learn through a practical exercise where they must individually research a chosen programming language innovation. 
 Areas covered include the following.
 
 * 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)
| Pre-requisites |  | Co-requisites |  |  
| Prohibited Combinations |  | 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. 
 This course is open to full year Visiting Students only, as the course is delivered in Semester 1 and examined at the end of Semester 2.
 |  
		| High Demand Course? | Yes |  
Course Delivery Information
| Not being delivered |  
Learning Outcomes 
| On completion of this course, the student will be able to: 
        Give examples of different programming idioms, explain their distinctive features, and illustrate the relative advantages and disadvantages of these.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.Outline some of the problems arising from the interactions between different features in programming languages.Describe in depth a specific recent programming language innovation, explaining its motivation, implementation, and how it compares to previous approaches.Write working code that demonstrates the use of a novel language feature, based on technical research papers and language documentation |  
Reading List 
| Reading material will include selected technical papers on the languages featured in the course. There is no nominated textbook for the course. |  
Contacts 
| Course organiser | Dr Ian Stark Tel: (0131 6)50 5143
 Email: Ian.Stark@ed.ac.uk
 | Course secretary | Miss Clara Fraser Tel: (0131 6)51 4164
 Email: clara.fraser@ed.ac.uk
 |  |  |