Hi all! My name is Matteo Fontana (call me Matteo), and I will be your teacher for this course!
Let me welcome to CS5750!
The objective of this module is to cover the basics of visualisation and exploratory data analysis, both from a theoretical as well as applied perspective. We will cover topics such as
- What makes a good data visualisation?
- How to design, improving, and communicating with visualisations
- In general, how to develop a critical eye with respect to data storytelling and data visualizations (you should be able to say, at the end of the course, why a dataviz is a good or a bad one, and why)
The labs are going to be based on Python. We will be using the usual numpy and pandas libraries (and matplotlib), while the great majority of the plotting will be done in plotnine.
Read the introduction section to see how to get started.
Throughout this module, students will be exposed to a real-life problem and will work through case studies of the use of data science in addressing such problems.
There will be a series of ‘topics’ through which students will be
introduced to new methods and techniques that are appropriate for different
questions and datasets. In each topic, students will be expected to process
data, perform analysis, interpret the results and communicate findings in a
clear manner that is appropriate for a range of audiences.
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.
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.
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).
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.
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 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.
Timetable
Lectures
Lab sessions
Bedford building
PC 0-06/05/04
- 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
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.
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
This is the core data analysis course for the Big Data suite of MSc programmes. It covers basic principles and algorithms of data analysis.
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.
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.
Theory and practice of reinforcement learning.
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
This course covers the principles and techniques used to store and process massive quantities of data in modern Big Data systems.