Undergraduate Course: Advances in Programming Languages (INFR10003)
Course Outline
| School | School of Informatics | 
College | College of Science and Engineering | 
 
| Course type | Standard | 
Availability | Available to all students | 
 
| Credit level (Normal year taken) | SCQF Level 10 (Year 4 Undergraduate) | 
Credits | 10 | 
 
| Home subject area | Informatics | 
Other subject area | None | 
   
| Course website | 
http://www.inf.ed.ac.uk/teaching/courses/apl | 
Taught in Gaelic? | No | 
 
| Course description | 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. | 
 
 
Information for Visiting Students 
| Pre-requisites | None | 
 
| Displayed in Visiting Students Prospectus? | Yes | 
 
 
Course Delivery Information
| Not being delivered |   
Summary of Intended Learning Outcomes 
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. 
 | 
 
 
Assessment Information 
Written Examination	80 
Assessed Assignments	20 
Oral Presentations	0 
 
Assessment 
A written examination will assess outcomes 1-5. The remaining outcomes will be assessed through a single piece of coursework, completed in two stages. This will involve some software development and the writing of a report. 
 
If delivered in semester 1, this course will have an option for semester 1 only visiting undergraduate students, providing assessment prior to the end of the calendar year. |  
 
Special Arrangements 
| None |   
 
Additional Information 
| Academic description | 
Not entered | 
 
| Syllabus | 
*  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 | 
 
| Transferable skills | 
Not entered | 
 
| Reading list | 
Reading material will include selected technical papers on the languages featured in the course. There is no nominated textbook for the course. | 
 
| Study Abroad | 
Not entered | 
 
| Study Pattern | 
Lectures	20 
Tutorials	0 
Timetabled Laboratories	0 
Non-timetabled assessed assignments	20 
Private Study/Other	60 
Total	100 | 
 
| Keywords | Not entered | 
 
 
Contacts 
| Course organiser | Dr Amos Storkey 
Tel: (0131 6)51 1208 
Email:  | 
Course secretary | Miss Kate Weston 
Tel: (0131 6)50 2701 
Email:  | 
   
 
 | 
 |