Imperial College London

DrAzaleaRaad

Faculty of EngineeringDepartment of Computing

Lecturer
 
 
 
//

Contact

 

+44 (0)20 7594 8271azalea.raad Website

 
 
//

Location

 

Huxley BuildingSouth Kensington Campus

//

Summary

 

The Theory and Practice of Concurrent Programming - COMP60007

Aims

This course focuses on the theory and practice of concurrent programming, in order to familiarise the students with a range of modern concurrent programming models, and with the challenges of correct concurrent programming. It is divided into two parts: a largely practical part that gives an overview of shared memory and message passing concurrency in a variety of programming languages, and a more theoretical part that treats shared memory concurrency from the ground up, covering low-level topics such as hardware memory models, primitives for shared-memory concurrency, building up towards higher-level synchronisation techniques such as locks, mutexes and transactional memory. Throughout the course, a main objective is to reinforce correct concurrent programming through the use of tools, formal specification and verification techniques.

Role

Course Leader

Models of Computation - COMP50003

Aims

This module focuses on formal descriptions (models) of computational behaviour. You will learn about:

  • the operational semantics (formal description)  of a simple 'WHILE' programming language
  • the operational semantics of other styles of real-world languages, such as Java and Haskell
  • equivalent  definitions of algorithm, initiated in the 1930s and providing the foundations for programming languages and computation

Role

Course Leader

Logic & Reasoning (JMC) - COMP40012

Aims

In this module you will have the opportunity to:
- learn about syntax, semantics and proof systems of first-order logic
- learn how to translate human natural language to formal logic, and vice versa
- apply various semantic methods for proving validity of arguments and logical equivalences
- use logic to reason about program behaviour through the use of pre, post and mid conditions and invariants
- use induction to reason about recursive programs
 

Role

Course Leader