Skip to main content

Principles of Programming


  • Credit value: 15 credits at Level 7
  • Module convenor and tutorVladislav Ryzhikov
  • Assessment: a programming task (10%), programming project (50%) and one-hour examination (40%)

Module description

This module introduces programming concepts and techniques, as well as elementary software development principles. Both for absolute beginners and for those with prior programming experience, the module introduces the fundamentals of programming, including: variables and assignment, primitive and complex types, methods, control structures, collections, iteration, recursion, as well as classes and objects in object-oriented programming. The module also introduces basic software development issues such as design, testing, debugging.

Indicative module content

  • Core imperative programming ideas: sequence, iteration, assignment and variables
  • Data types
  • Collection data structures: arrays, lists, sets, dictionaries, linked lists
  • Functions
  • Version control
  • Automated testing and test-driven development (TDD)
  • Object-oriented programming: encapsulation, inheritance, polymorphism
  • Functional programming features of Python
  • Recursion
  • Exception handling

Learning objectives

By the end of this module, you will be able to:

  • demonstrate knowledge of fundamental imperative programming concepts such as variables and assignment, conditional statements, loops and methods
  • code an application in Python, from a detailed software specification
  • evidence knowledge of basic concepts and principles of object-orientation such as objects and classes, encapsulation, inheritance, polymorphism and modularity
  • show awareness of basic principles of software design and development including appropriate naming of variables and classes, code layout, testing, debugging, and code version control.