Skip to main content

Principles of Programming

Overview

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

Module description

In this module we introduce you to programming concepts and techniques, as well as elementary software development principles. The module is both for absolute beginners and for those with prior programming experience, and covers the fundamentals of programming, including: variables and assignment, primitive and complex types, methods, control structures, collections, iteration, as well as classes and objects in object-oriented programming. We also introduce you to basic software development issues such as design, testing, debugging.

Indicative syllabus

  • Core imperative programming ideas: sequence, iteration, assignment and variables
  • Data types
  • Collection data structures: arrays, lists, sets, dictionaries
  • Functions
  • Version control
  • Automated testing and test-driven development (TDD)
  • Object-oriented programming: encapsulation, inheritance, polymorphism
  • Functional programming features of Python
  • 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 and polymorphism 
  • show awareness of basic principles of software design and development including modularity testing and code version control.