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 22-23 CS1811: Object oriented programming I
Computer Science
CS1811 develops the foundations of computer programming. It covers basic programming constructs and introduces the use of objected oriented programming.
Course image 22-23 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 22-23 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 22-23 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 22-23 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 22-23 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 22-23 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 22-23 CS1999: Foundation Individual Scientific Project
Computer Science

The Personal Project for CS1999: students develop a webserver for a buggy-racing project. Uses skills in web tech (HTML, CSS) and Python, as well as Git for version control (and optionally JavaScript).

Course image 22-23 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 22-23 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 22-23 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 22-23 CS2850: Operating Systems
Computer Science
This course introduces students to the principles of the function and architecture of operating systems.
Course image 22-23 CS2855: Databases
Computer Science

Databases 2022-23

Timetable Lectures

•Mon 13:00-14:00 Windsor Aud
•Thu 12:00-13:00 Windsor Aud

Lab sessions

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

Contact Details and Office Hours

Dr Argyrios Deligkas
Argyrios.Deligkas@rhul.ac.uk
Bedford Build. 1-20/Zoom/Teams
Office hours: Monday 9:00-11:00


Course image 22-23 CS2860: Algorithms and Complexity
Computer Science
An introduction to the classical theory of the complexity of algorithms, with a range of examples.
Course image 22-23 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 22-23 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 22-23 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 22-23 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 22-23 CS3490: Computational Optimisation
Computer Science
CS3490 describes theory and algorithms in linear programming, integer programming, and combinatorial optimisation.
Course image 22-23 CS3870: Graph 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 22-23 CS3920/CS5920: Machine Learning
Computer Science
Machine learning is giving  computers the ability to learn without being explicitly programmed. (Samuel, 1959)
Course image 22-23 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 22-23 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 22-23 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 22-23 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 22-23 CS4860/CS5860: Advanced Distributed Systems and Communication Networks
Computer Science
This course covers the main concepts used in the design of modern day cloud and Internet-of-Things infrastructure. It covers topics relevant to distributed computer systems, especially loosely-coupled and failure-prone ones.
Course image 22-23 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 22-23 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 22-23 CS5800: Object-oriented 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.
Course image 22-23 CS5810: Programming for Data Analysis
Computer Science
This module aims to give students advanced understanding of MATLAB, a programming language widely used for data analysis, show connections to Python libraries and give an overview of Weka.