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 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. | 
 
| Course description | 
    
    * 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 |  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? | 
		Yes | 
     
 
Course Delivery Information
| Not being delivered |   
Learning Outcomes 
    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 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:  | 
Course secretary | Ms Sarah Larios 
Tel: (0131 6)51 4164 
Email:  | 
   
 
 | 
 |