Computer Science

Important Information for Students on Moodle Course Availability

You may not see a full list of all your expected courses in your Moodle My Courses list or in this category. This does not necessarily mean that your course registrations are incorrect. There are two possible reasons:

  • Departments/Tutors make courses visible to Students in Moodle when the course is ready for teaching
  • Not all courses use Moodle.

You can use the Study tab in Campus Connect to check the courses you are registered for or contact your department who can also provide information on their use of Moodle.

Course image 23-24 CS1812: Object oriented programming II
Computer Science
This course teaches programming and object-orientation concepts, building on what is taught in CS1811. Students will reinforce their knowledge about program basics, algorithms, data structures, objects, exceptions and I/O. Furthermore, the course also teaches fundamentals of coding best practices.
Course image 23-24 CS1821/CS1822/DC1821: Programming Laboratory
Computer Science

Programming languages are tools. A skilled programmer is in demand because they're skilled at using these tools. This module is about developing those skills, which like any skill, requires practice, practice, practice.

Course image 23-24 CS1840/CS2841: Internet Services
Computer Science
The Internet is a global system of interconnected computer networks that use the standard Internet protocol suite to serve billions of users worldwide. The Internet carries an extensive range of information resources and services. This course provides an introduction to internet technologies and their use in an increasingly e-centric industry.
Course image 23-24 CS1860/CS2865: Mathematical Structures
Computer Science
CS1860 is the first of the two mathematics modules in Year 1 (the second is CS1870). By the end of the course, you should be able to argue about sets, functions and relations, use basic recursion, mathematical induction and graph algorithms, and compute probabilities of simple events.


Course image 23-24 CS1870: Machine Fundamentals
Computer Science

This module provides an introduction to the mathematical underpinnings of computing, from number representation and elementary machine operations to abstract automata and the limits of computation. 

Course image 23-24 CS1890: Software Design
Computer Science
This module addresses concepts required for performing software design activities, including: interpreting requirements, identifying software components, documenting software design and understanding various stages of development.
Problem based learning is emphasised and students will see how design is achieved in various current software engineering processes, including the waterfall and agile processes.
Course image 23-24 CS2800: Software Engineering
Computer Science

CS2800 (Software Engineering): This course aims to introduce Software Engineering tools and techniques through practical experience of design and development that enable each individual programmer to help deliver effective, working, clean code, as part of a team, in a timely fashion.

By the end of this course a student should be able to:

  • understand the software engineering techniques and managerial discipline required to work as part of a team
  • understand and use basic object-oriented concepts
  • appreciate the need for program documentation, testing, readability and modifiability
  • use appropriate tools to support software development: Version control, programming standards, a modern IDE, graphical debugger, code style checker, unit testing frameworks, code metrics, etc.,
  • be able to use Test Driven Development to deliver a small scale project.
  • be able to describe appropriate workflows for delivering software using version control systems.
Course image 23-24 CS2810/CS2815: Team Project
Computer Science
This module aims to assist students in appreciating the role of the computer professional through the practical experience of developing medium scale software as part of a team.

Module content includes: The software lifecycle, including: software development, planning and documentation. Team development, communication, managing risks and conflicts. Practical experience of standard industrial software engineering. Agile project management, use of version control in a team, use of tools, etc.
Course image 23-24 CS2847/PC3001/PC4001/PC5001: User-Centred Design
Computer Science
This module will cover aspects and challenges of User-Centred Design, and addresses the approaches that can be used to create interfaces matching users' needs and expectations.

Course content includes: introduction to User-Centred Design (definition and history); perception and cognition; user experience (UX) vs. user interface (UI); heuristic evaluation; rapid prototyping; interaction studies/experiments.
Course image 23-24 CS2850: Operating Systems
Computer Science
This course introduces students to the principles of the function and architecture of operating systems.
Course image 23-24 CS2855: Databases
Computer Science

Timetable Lectures

•Tue 17:00-18:00 Windsor Aud
•Thu 13:00-14:00 Boiler Aud

Lab sessions

Bedford building
PC 0-06/05/04
•Group 1: Tue 12:00-13:00
•Group 2: Tue 13:00-14:00
•Group 3: Tue 14:00-15:00
- No lab session first week (possibly also no last week)

Module Lecturers
  • Argyrios Deligkas
    Bedford 1-20
    argyrios.deligkas@rhul.ac.uk
    Office Hours: Tue 16-17, Thu 14-15
  • Farid Shahandeh
    Bedford 2-25
    farid.shahandeh@rhul.ac.uk






Course image 23-24 CS2860: Algorithms and Complexity
Computer Science
An introduction to the classical theory of the complexity of algorithms, with a range of examples.
Course image 23-24 CS2910: Artificial Intelligence
Computer Science
The aim of this course is to introduce the basic principles, methods and techniques of Artificial Intelligence, focusing in particular on the model-based/symbolic aspects of it. The course discusses a series of topics including search, first-order logic for knowledge representation, non-monotonic reasoning, temporal reasoning, planning and inductive learning. The work is exemplified using the AI programming language Prolog.
Course image 23-24 CS3001/CS4001 : Extramural Year
Computer Science
This is the module for placements associated with undergraduate Year in Industry degrees
Course image 23-24 CS3003: IT Project Management
Computer Science
This module aims to provide the necessary background knowledge and practical insights of how complex and large IT projects can be effectively managed. The module discusses a number of relevant concepts, mainly the following: phases and processes of IT projects, project governance, project planning and controlling, team management, risk management and project quality. The module is based on well-known project management standards and frameworks, such as ISO21500, Prince2 and PMI. Moreover, it emphasizes problem-based learning based on a number of real-world cases and scenarios.
Course image 23-24 CS3470: Compilers And Code Generation
Computer Science
This course studies methods of language specification that allow the automated generation of language translators. It provides an introduction to the core area of compiler theory.
Course image 23-24 CS3480: Software Language Engineering
Computer Science
Learn to to build software language engineering processors using principled methods, including: generalised parsing, attribute grammars, term rewriting and Structural Operational Semantics.
Course image 23-24 CS3490: Computational Optimisation
Computer Science
CS3490 describes theory and algorithms in linear programming, integer programming, and combinatorial optimisation.
Course image 23-24 CS3870: Advanced Algorithms and Complexity
Computer Science
CS3870 Advanced Algorithms and Complexity.

This course samples topics from various aspects of algorithms construction and analysis, including: Graphs and graph algorithms; more algorithm design paradigms; applications such as string algorithms and network flows; and complexity and lower bounds.
Course image 23-24 CS3920/CS5920: Machine Learning
Computer Science
Machine learning is giving  computers the ability to learn without being explicitly programmed. (Samuel, 1959)
Course image 23-24 CS3930/CS5930: Computational Finance
Computer Science
CS3930 / CS5930, Computational Finance

If there are any problems with this page, please contact me by e-mail, ask a question at a lecture, or pop in to my office McCrea 248.

Yuri Kalnishkan yuri.kalnishkan@rhul.ac.uk

Course image 23-24 CS3940/CS5940: Intelligent Agents and Multi-Agent Systems
Computer Science
This course introduces the concepts of agents and multi-agent systems, including the main applications for which they are appropriate. An agent platform is also introduced as a test-bed to program agents and exemplify the ideas behind building multi-agent applications.
Course image 23-24 CS4100/CS5100: Data Analysis
Computer Science

This is the core data analysis course for the Big Data suite of MSc programmes. It covers basic principles and algorithms of data analysis.

Course image 23-24 CS4250/CS5250/CS5250J: Data Visualisation and Exploratory Analysis
Computer Science
The module aims to teach the principles and arts of statistical visualisation and exploratory analysis of data.

By the end of the module you will be able to
- perform open-ended exploratory analysis of data, and master the analytical presentation and critical evaluation of the results of statistical analyses;
- construct linear projections of multivariate data and demonstrate an advanced understanding of non-linear dimension reduction methods;
- demonstrate practical experience of using standard graph visualisation methods and evaluation of results;
- be effective in avoiding data snooping;
- critically evaluate choices in representational mode, glyph design and colour design for presentation graphics.
Course image 23-24 CS4990/CS5990/CS3990: Natural Language Processing
Computer Science

CS4990/CS5990

This course will cover techniques of Natural Language Processing, together with some description and philosophy of language itself.

We will start with useful established techniques for processing text, and then most of the course will be devoted to Large Language Models (such as ChatGPT), transformers, and related techniques. 

Recent developments in NLP have been astonishing! The course will be partly rewritten this year to cover some of the latest developments. 


Course image 23-24 CS5200/CS4200: On-line Machine Learning
Computer Science

The future is not what it used to be.
(See the link for attribution.)

If there are any problems with this page, please contact me by e-mail, ask a question at a lecture, or pop in to my office Bedford 2-28.

Yuri Kalnishkan yuri.kalnishkan@rhul.ac.uk

Course image 23-24 CS5234/CS4234: Large-Scale Data Storage and Processing
Computer Science

This course covers the principles and techniques used to store and process massive quantities of data in modern Big Data systems.

Course image 23-24 CS5504/CS5504J/CS4504: Business Intelligence Systems, Infrastructures and Technologies
Computer Science
Business Intelligence (BI) refers to the skills, processes, methodologies, technologies, applications, and practices used in order to leverage (gathering, storing, analyzing) an organization's internal and external information assets to support and improve decision-making.

This course aims to provide students with
(a) a broad understanding of the information assets and the conceptual and technical architectures of information and business intelligence systems in modern organizations

(b) the necessary background knowledge of, and skills to design, implement and evaluate business intelligence systems and technologies.
Course image 23-24 CS5800: Principles of Computation and Programming
Computer Science
By the end of the module students should be able to:

- understand standard programming concepts;
- apply understanding to solve programming tasks;
- evaluate programming solutions.