Practical Experiences of Programming

Undergraduate course, King's College London, Department of Informatics, 2019

This course aims to provide the students with extensive practical experience of programming; to draw on, integrate, and build upon the theoretical and practical teaching of other modules in the programme.

C++ is used as the basis for this module; with additional use of other languages (e.g. Haskell, Scala, Prolog) to clarify and illustrate other points as appropriate.

Syllabus:

  • Imperative/object-oriented programming concepts
  • Virtualisation, dynamic dispatch and design patterns
  • Abstraction and generic programming;
  • Templates and template meta-programming
  • Memory management and smart pointers
  • Non-imperative programming concepts
  • Recursive definitions of algorithms
  • Lambda functions and higher-order functions
  • Logic programming

Course Website