DE1 Computing 1

Lecturer: Dr Petar Kormushev

Jupyter NotebookThis module aims to introduce students to computer programming. They learn the Python programming language using the Jupyter Notebook environment. The module focuses on the fundamental programming blocks that are the foundations of computer programming in any language. By the end of the module the students should be able to write moderately complex programs in Python and be able to transition easily to other high-level languages, such as Java, C# .NET, C++, etc. The idea of this introductory course is to lay a foundation such that the students can undertake independent learning for application-specific programming in their subsequent work. The module teaching style is very hands-on, using a blended/hybrid teaching approach which intertwines short lectures with practical programming exercises.

DE2 Computing 2

Lecturer: Dr Petar Kormushev

This course delves deeper into the implementation of some important computing building blocks, such as algorithms for sorting and searching, data structures for maintaining lists, queues, stacks, heaps, etc. The course expands on the object-oriented programming paradigm and addresses issues of software system design, development, integration, testing, and maintenance. The design space associated with software systems is massive, and therefore systems thinking is critical to ensure that each subsystem functions as a part of a larger whole. Coursework projects are undertaken focusing on software system design, programming, and project-based implementation. The main topics include:

  • Basics of computational complexity and analysis of algorithms
  • Algorithms for sorting and searching
  • Linear data structures
  • Algorithms for trees and graphs
  • Software design and development lifecycle

The Computing 2 tutorials provide a structured way for the students to practice writing progressively longer parts of source code. Additionally, optional “computing surgery” sessions are organized for students in case they run into difficulties and need further help with the material.

DE3 Robotics 1

Lecturer: Dr Petar Kormushev

RoboticsThis course introduces the concepts and main components of robotics - the intelligent connection of sensing to action (Sir M. Brady). The course presents the basics of modelling, design, planning, control and adaptation of robot systems. The material treated in this course integrates relevant results from geometry, kinematics, dynamics, control and learning. The presentation focuses on the intuitive understanding of the robotics concepts and introduces the relevant mathematics concepts gradually. The course is composed of lectures that introduce the theoretical concepts, tutorials with examples enabling every student to assimilate the material, and practical lab sessions where the students get to physically interact with robotic systems and challenge their understanding of the material.

DE4 Robotics 2

Lecturer: Dr Petar Kormushev

RoboticsThis is an elective course that will delve deeper into core robotics topics and allow students the opportunity to develop practical robotic demonstrations with real robots.