The University of Southampton
Courses

COMP2212 Programming Language Concepts

Module Overview

The aim of this module is to introduce students to the fundamental concepts underlying all programming languages, to introduce a broad range of programming language styles and features, and to provide the theoretical foundation that they will need in order to be able to make informed judgements about programming languages

Aims and Objectives

Module Aims

- Understand the main conceptual features of modern programming languages - Understand common features of type systems and type discipline in various programming languages - Distinguish between families of languages (imperative, OO, functional, declarative) and within families (dynamically typed vs statically typed, call by name vs call by value, etc.) - Use diverse programming language primitives for concurrency - Understand diverse approaches to formal semantics of programming languages

Learning Outcomes

Knowledge and Understanding

Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:

  • Understand the main conceptual features of modern programming languages
  • Understand common features of type systems and type discipline in various programming languages
  • Distinguish between families of languages (imperative, OO, functional, declarative) and within families (dynamically typed vs statically typed, call by name vs call by value, etc)
  • Use diverse programming language primitives for concurrency
  • Understand diverse approaches to formal semantics of programming languages

Syllabus

- Compiled vs. interpreted languages - Imperative, functional and declarative languages - Scope and binding - Type systems - Type inference - Reasoning about programs - Contextual equivalence - Programming language semantics: operational, denotational and axiomatic semantics - Threading and thread safety - Reasoning about concurrent programs - Concurrency primitives in modern programming languages

Learning and Teaching

TypeHours
Lecture36
Wider reading or practice43
Preparation for scheduled sessions18
Follow-up work18
Tutorial12
Revision10
Completion of assessment task13
Total study time150

Assessment

Summative

MethodPercentage contribution
Coursework 40%
Multiple choice Test 60%

Referral

MethodPercentage contribution
Exam  (2 hours) 100%

Repeat Information

Repeat type: Internal & External

Linked modules

Pre-requisites

To study this module, you will need to have studied the following module(s):

CodeModule
COMP2210Theory of Computing
COMP2209Programming III
Share this module Facebook Google+ Twitter Weibo

We use cookies to ensure that we give you the best experience on our website. If you continue without changing your settings, we will assume that you are happy to receive cookies on the University of Southampton website.

×