Module information

This module aims to teach us how to apply machine learning in practice. We will learn how to use machine learning to solve real-world problems. We will also learn how to use machine learning to solve problems in our own field of study.


  1. Lectures: 2 times a week (Thursday 10:00 - 11:00)

These lectures are held online and are not recorded.

Module Breakdown

  1. Assignment 1 50%
  2. Assignment 2 50%


There are no prerequisites for this module.

Module Details

These are the topics covered in this module:

  1. Machine Learning Concepts
    • Terminology
    • Understanding and Preparing the data
    • Analyzing algorithm choice
    • Machine Learning Project Lifecycle
  2. Applying Machine Learning: Classification
    • K-Nearest Neighbors
    • Decision Trees
    • Naive Bayes
    • Deploying a Machine Learning Model to a web service
  3. Understanding Resource Requirements
    • Compute Requirements
    • CPUs vs GPUs
    • Training Deep Learning Models
    • Deploy a deep learning model on cloud
  4. Deploying Machine Learning Solutions: Deep Dive
    • Improving Model Accuracy
    • Hyperparameter Tuning
    • Meta Algorithm: XG/Gradient Boost
  5. Different Types of Neural Networks
    • Convolution Neural Networks (CNN)
    • Recurrent Neural Networks (RNN)
    • Long Short Term Memory (LSTM)
  6. Machine Learning Systems Design
    • Machine Learning Project Considerations
  7. Unsupervised Learning
    • Exploratory Data Analysis
    • Clustering Algorithms


For each lecture, the lecturer will either

  1. Go through a set of slides on the content of the lecture
  2. Go through a Jupyter Notebook on the content of the lecture

Each of these lectures will teach us more about machine learning. It is recommended that you have some basic knowledge of algorithms and data structures before taking this module.

Assignment 1

For the 1st assignment, we were given a dataset and we have to use machine learning to detect anomalies in the dataset. It is mostly filled in by the lecturer and we have to fill in the missing parts and submit it.

Assignment 2

For the 2nd assignment, we have 2 options on what we can do. We can either

  1. Train a CNN Classifier from Scratch
  2. Deploy an Object Detection Tool on the web.

How to start the class

Disclaimer: I do not know if this module is still available currently but it is offered during the semester that I took it.

  1. 1 student representative to create an application in Edurec
  2. Group members must accept the registration in their Edurec account
  3. Application is forwarded to the Provost Office for processing


Workload (1/10) Very Light

The workload for the module was very light. The main tasks for this module were:

  1. Attend the lectures
  2. Submit the 2 very short assignments (2-4 hours each)

Organization (6/10)

The start of the module was very well organized and a good introduction of AI. However, when there was a transition to deep learning, I feel that I am lost and I do not know what is going on.

Learning (8/10)

It is a very good introduction to machine learning and deep learning. It also includes a lot of practical knowledge on how to deploy a machine learning model on the web.

Enjoyment (7/10)

Personally, I enjoyed the module as it is very interesting to learn about machine learning and deep learning.

Usefulness (8/10)

It is very useful for anyone who wants to deploy a machine learning model on the web and apply them in practice.


Overall, I feel that this module is a very good introduction to machine learning and deep learning. Given that it is CS/CU, I would definitely anyone who are looking for CS/CU modules to take it.

  1. NUSMods

Assignment Questions

  1. Assignment 1
  2. Assignment 2

My Project Files

  1. Machine Learning Web Service