Skip to main content Skip to navigation

CS909 Data Mining

Welcome to CS909/CS429 Data Mining in Term-2 of 2024! This webpage is the primary source of information for all updates, announcements and content for this module.


We will be adding an major announcements for the module below.

Module Teaching Team

Instructor: Fayyaz MinhasLink opens in a new window

Module Coordinator: Saif AnwarLink opens in a new window

Teaching Assistants

Communication between students and teaching team

Please use moodle for non-urgent communication. It is very difficult to monitor and respond to emails from individual students due to the large size of the class.

For questions about Logistics or other issues, the first point of contact is Saif Anwar.

Instructor Office HoursLink opens in a new window

Moodle Link (For QA & Discussions)

We shall be using this moodle page for our moduleLink opens in a new window.

Students can Post your QuestionsLink opens in a new window to the moodle forum.

The instructors will also be posting a series of questions each week under Self Assessment QuestionsLink opens in a new window that you can answer for self-assessment and feedback. As the goal of these questions is to encourage students to explore and self study, answers to all of these questions will not be provided but students are welcome to discuss them with the instructors in lab sessions or as questions in lectures or via Moodle.


  • All Times are UK Times

Lectures - Weeks 110

Monday: 11am, R0.21
Thursday: 12pm, Lecture Theatre 3
Friday: 1pm, OC1.05



Monday 11:00 - 12:00 R0.21
Thursday 12:00 - 13:00 L3
Friday 13:00 - 14:00 OC1.05

Lab Sessions - Weeks 110

Each student has been allocated a lab session. Please check your scheduled lab session on Tabula and attend that. Please make sure that you attend the whole of an assigned lab session so that you do not miss attendance.

TA allocation to labs may change from week to week due to scheduling constraints. However, there should be at least one TA common between sessions.

NOTE: The following information may change if there are changes to face-to-face teaching.

Students who might need to change group (due to mitigating circumstances or a timetable clash) should email queries to the relevant resource email account ( / The teaching staff wil only be able to sign-post to support teams.

Coursework Assignments

    Books and Other resources

    [PML-1] Probabilistic Machine Learning: An Introduction by Kevin Patrick Murphy. MIT Press, 2021. link: 

    [PML-2] Probabilistic Machine Learning: Advanced Topics by Kevin Patrick Murphy. MIT Press, 2023. link: 

    [IML] Introduction to Machine Learning 3e by Ethem Alpaydin (selected chapters: ch. 1,2,6,7,9,10,11,12,13)

    [DBB] Deep Learning by Ian Goodfellow, Yoshua Bengio, Aaron Courville, (Ch 1-5 if needed as basics), Ch. 6,7,8,9 link: opens in a new window

    [FNN] Fundamentals of Neural Networks : Architectures, Algorithms And Applications by Laurene Fausett, (ch. 2,6)

    [SODL] The Science of Deep Learning by Iddo Drori link:

    Casual Reading:

    1. The master algorithm
    2. The Alignment Problem
    3. The book of why

    Course Materials

    Slides and reading materials will be posted each week. The lab session will be available prior to the start of the lab session. Please see the Lab Access section below for guidance on running the lab materials and Python guides.


    • It is strongly recommended that you attend all lectures in person as this year's lectures would be significantly different in content and delivery from previous ones and we cannot guarantee the sufficiency of archived content for effective learning in terms of success in coursework or examination. However, if you are unable to attend lectures due to a genuine issue, you can use the links to archived lecture recordings from previous years which are available at this Course Stream ChannelLink opens in a new window as well as on YoutubeLink opens in a new window ( ).

    Lab Access and Machine Requirements

    Remote Machine Login:

    Use "module load cs909-python". The following guide will show you how to run jupyter-notebook as well as loading using notebooks with the module loaded in Visual Studio Code:

    Notebook and VSCode Setup GuideLink opens in a new window

    If using your own machine, you will be needing the listed libraries.

    1. Anaconda Python (3.6+)
    2. Jupyter Notebook or Jupyter Lab
    3. Matplotlib
    4. Numpy
    5. Scipy
    6. Pandas
    7. Scikit-learn
    8. Keras, PyTorch and TensorFlow (with GPU configuration if GPUs available)

    Learning Python

    The following resources may be useful when familiarising yourself with Python.

    Python Documentation:

    NumPy Website:

    Matplotlib Website:

    Video Tutorials

    Courtesy of Dr. Greg WatsonLink opens in a new window

    1. Introduction
    2. Basic Variables
    3. Lists
    4. Control Flow
    5. Functions
    6. Tuples
    7. Sets
    8. Dictionaries
    9. NumPy
    10. Matplotlib
    11. Classes