My Education

On Campus Learning

MSc(Honors) Physics

The Chinese University of Hong Kong

Shatin, Hong Kong


PGDE ICT (Major), LS (Minor)

The Chinese University of Hong Kong

Shatin, Hong Kong


BScEd (Honors) (Science and Web Technology)

The Education University of Hong Kong

Tai Po, Hong Kong


summer school

iBm qiskit global summer school 2020

It is a two-week summer intensive program, focusing on superconducting devices and quantum chemistry applications. From this program, I have be empowered with the knowledge to explore quantum application on my own using Qiskit through the 3 hours lectures and hands-on programming lab materials. It is a very fascinating place that all intellectuals from all corner of the globe discuss together our next technological paradigm shift in mankind. I am very excited to learn more about the field and make contribution in the near future.

To know more about the summer school please click here

And I will keep updating my blog about Qiskit here

Below is the content what I have gone through in the program.

Week 1: July 20-24

    • Monday, July 20

      • 9:00 - 12:00 EDT Lecture: Qubits and Quantum States, Quantum Circuits, Measurements
        Lecturer: Elisa Bäumer

      • 13:00 - 14:00 EDT Hands-on Programming with Qiskit
        Lab Lead: Abraham Asfaw

    • Tuesday, July 21

      • 9:00 - 12:00 EDT Lecture: Writing and Running Quantum Programs
        Lecturer: Elisa Bäumer

      • 13:00 - 14:00 EDT Hands-on Programming with Qiskit
        Lab Lead: Abraham Asfaw

    • Wednesday, July 22

      • 9:00 - 12:00 EDT Lecture: Shor's Algorithm I: Understanding Quantum Fourier Transform, Quantum Phase Estimation
        Lecturer: Abraham Asfaw

      • 13:00 - 14:00 EDT Hands-on Programming with Qiskit
        Lab Lead: Abraham Asfaw

    • Thursday, July 23

      • 9:00 - 12:00 EDT Lecture: Shor's algorithm II: From Factoring to Period-Finding, Writing the Quantum Program
        Lecturer: Abraham Asfaw

      • 13:00 - 14:00 EDT Hands-on Programming with Qiskit
        Lab Lead: Abraham Asfaw

    • Friday, July 24

      • 9:00 - 12:00 EDT Lecture: Quantum Error Correction using Repetition Codes
        Lecturer: James Wootton

      • 13:00 - 14:00 EDT Hands-on Programming with Qiskit
        Lab Lead: James Wootton

Week 2: July 27-31

    • Monday, July 27

      • 9:00 - 12:00 EDT Lecture: Superconducting Qubits I: Quantizing a Harmonic Oscillator, Josephson Junctions
        Lecturer: Zlatko Minev

      • 13:00 - 14:00 EDT Hands-on Programming with Qiskit
        Lab Lead: Nick Bronn

    • Tuesday, July 28

      • 9:00 - 12:00 EDT Lecture: Superconducting Qubits II: Circuit Quantum Electrodynamics, Readout and Calibration Methods
        Lecturer: Zlatko Minev

      • 13:00 - 14:00 EDT Hands-on Programming with Qiskit
        Lab Lead: Nick Bronn

    • Wednesday, July 29

      • 9:00 - 12:00 EDT Lecture: Quantum Chemistry I: Obtaining the Qubit Hamiltonian for H2 and LiH
        Lecturer: Abhinav Kandala & Antonio Mezzacapo

      • 13:00 - 14:00 EDT Hands-on Programming with Qiskit
        Lab Lead: Abhinav Kandala & Antonio Mezzacapo

    • Thursday, July 30

      • 9:00 - 12:00 EDT Lecture: Quantum Chemistry II: Finding the Ground States of H2 and LiH Using a Variational Quantum Eigensolver
        Lecturer: Abhinav Kandala & Antonio Mezzacapo

      • 13:00 - 14:00 EDT Hands-on Programming with Qiskit
        Lab Lead: Abhinav Kandala & Antonio Mezzacapo


Stanford University: machine learning

Course Syllabus

Week 1

Linear Regression with One Variable

Linear regression predicts a real-valued output based on an input value. We discuss the application of linear regression to housing price prediction, present the notion of a cost function, and introduce the gradient descent method for learning.

Linear Algebra Review

This optional module provides a refresher on linear algebra concepts. Basic understanding of linear algebra is necessary for the rest of the course, especially as we begin to cover models with multiple variables.

Week 2

Linear Regression with Multiple Variables

What if your input has more than one value? In this module, we show how linear regression can be extended to accommodate multiple input features. We also discuss best practices for implementing linear regression.

Octave/Matlab Tutorial

This course includes programming assignments designed to help you understand how to implement the learning algorithms in practice. To complete the programming assignments, you will need to use Octave or MATLAB. This module introduces Octave/Matlab and shows you how to submit an assignment.

Week 3

Logistic Regression

Logistic regression is a method for classifying data into discrete outcomes. For example, we might use logistic regression to classify an email as spam or not spam. In this module, we introduce the notion of classification, the cost function for logistic regression, and the application of logistic regression to multi-class classification.


Machine learning models need to generalize well to new examples that the model has not seen in practice. In this module, we introduce regularization, which helps prevent models from overfitting the training data.

Week 4

Neural Networks: Representation

Neural networks is a model inspired by how the brain works. It is widely used today in many applications: when your phone interprets and understand your voice commands, it is likely that a neural network is helping to understand your speech; when you cash a check, the machines that automatically read the digits also use neural networks.

Week 5

Neural Networks: Learning

In this module, we introduce the backpropagation algorithm that is used to help learn parameters for a neural network. At the end of this module, you will be implementing your own neural network for digit recognition.

Week 6

Advice for Applying Machine Learning

Applying machine learning in practice is not always straightforward. In this module, we share best practices for applying machine learning in practice, and discuss the best ways to evaluate performance of the learned models.

Machine Learning System Design

To optimize a machine learning algorithm, you’ll need to first understand where the biggest improvements can be made. In this module, we discuss how to understand the performance of a machine learning system with multiple parts, and also how to deal with skewed data.

Week 7

Support Vector Machines

Support vector machines, or SVMs, is a machine learning algorithm for classification. We introduce the idea and intuitions behind SVMs and discuss how to use it in practice.

Week 8

Unsupervised Learning

We use unsupervised learning to build models that help us understand our data better. We discuss the k-Means algorithm for clustering that enable us to learn groupings of unlabeled data points.

Dimensionality Reduction

In this module, we introduce Principal Components Analysis, and show how it can be used for data compression to speed up learning algorithms as well as for visualizations of complex datasets.

Week 9

Anomaly Detection

Given a large number of data points, we may sometimes want to figure out which ones vary significantly from the average. For example, in manufacturing, we may want to detect defects or anomalies. We show how a dataset can be modeled using a Gaussian distribution, and how the model can be used for anomaly detection.

Recommender Systems

When you buy a product online, most websites automatically recommend other products that you may like. Recommender systems look at patterns of activities between different users and different products to produce these recommendations. In this module, we introduce recommender algorithms such as the collaborative filtering algorithm and low-rank matrix factorization.

Week 10

Large Scale Machine Learning

Machine learning works best when there is an abundance of data to leverage for training. In this module, we discuss how to apply the machine learning algorithms with large datasets.

Week 11

Application Example: Photo OCR

Identifying and recognizing objects, words, and digits in an image is a challenging task. We discuss how a pipeline can be built to tackle this problem and how to analyze and improve the performance of such a system.

university of michigan:programming for everbody (getting started with python)

Course Syllabus

Week 1 - Why we Program?

These are the course-wide materials as well as the first part of Chapter One where we explore what it means to write programs. We finish Chapter One and have the quiz and first assignment in the third week of the class. Throughout the course you may want to come back and look at these materials. This section should not take you an entire week.

Week 2 - Installing and Using Python

In this module you will set things up so you can write Python programs. Not all activities in this module are required for this class so please read the "Using Python in this Class" material for details.

Week 3 - Why We Program (continued)

In the first chapter we try to cover the "big picture" of programming so you get a "table of contents" of the rest of the book. Don't worry if not everything makes perfect sense the first time you hear it. This chapter is quite broad and you would benefit from reading the chapter in the book in addition to watching the lectures to help it all sink in. You might want to come back and re-watch these lectures after you have funished a few more chapters.

Week 4 - Variables and Expressions

In this chapter we cover how a program uses the computer's memory to store, retrieve and calculate information.

Week 5 - Conditional Code

In this section we move from sequential code that simply runs one line of code after another to conditional code where some steps are skipped. It is a very simple concept - but it is how computer software makes "choices".

Week 6 - Functions

This is a relatively short chapter. We will learn about what functions are and how we can use them. The programs in the first chapters of the book are not large enough to require us to develop functions, but as the book moves into more and more complex programs, functions will be an essential way for us to make sense of our code.

Week 7 - Loops and Iteration

Loops and iteration complete our four basic programming patterns. Loops are the way we tell Python to do something over and over. Loops are the way we build programs that stay with a problem until the problem is solved.


Machine learning with python: a practical introduction

In this course, I have:

    • Explored examples of Machine Learning and the libraries and languages used to create them.

    • Applied the appropriate form of regression to a data set for estimation.

    • Applied an appropriate classification method for a particular Machine Learning challenge.

    • Used the correct clustering algorithms on different data sets.

    • Explained how recommendation systems work, and implement one on a data set.

    • Demonstrated the understanding of Machine Learning in an assessed project.

Course Syllabus

Module 1 - Introduction to Machine Learning

    • What is Machine Learning?

  1. To give examples of Machine Learning.

  2. To demonstrate the Python libraries for Machine Learning.

  3. To classify Supervised vs. Unsupervised algorithms.

Module 2 - Regression

    • Linear Regression

    • Non-Linear Regression

  1. To understand the basics of regression.

  2. To apply Simple and Multiple, Linear and Non-Linear Regression on a data set for estimation.

Module 3 - Classification

    • K-Nearest Neighbours

    • Decision Trees

    • Logistic Regression

    • Support Vector Machine

  1. To understand different Classification methods.

  2. To apply Classification algorithms on various data sets to solve real world problems.

  3. To understand evaluation methods in Classification.

Module 4 - Clustering

    • k-Means Clustering

    • Hierarchical Clustering

    • Density-based Clustering

  1. To understand different types of clustering algorithms.

  2. To apply clustering on different types of data sets.

Module 5 - Recommender Systems

    • Content-based Recommendation Engines

  1. To understand the purpose and mechanism of recommendation systems.

  2. To understand the different types of recommender systems.

  3. To implement recommender systems on a real data set.

Final Assignment

IBM: AI for everyone:Master the basics

In this course, I have:

    • learnt what AI is

    • understood its application and how it is transforming our lives

    • explored basic AI concept including machine learning, deep learning, neural networks

    • investigated in case studys and application of AI

    • concerned the ethics, bias, jobs and impacts on society

Course Syllabus

MODULE 1 - What is AI? Applications and Examples of AI

  • What is AI?

  • Impact of AI: Applications and Examples

  • Quiz

MODULE 2 - AI Concepts, Terminology, and Application Areas

  • AI Introduction

  • Machine Learning, Deep Learning, Neural Networks

  • AI Application Areas

  • Quiz

MODULE 3 - AI: Issues, Concerns and Ethical Considerations

  • AI and Ethics, Jobs, Bias

  • Quiz

MODULE 4 - The Future with AI, and AI in Action

  • Our Future with AI

  • Your Future with AI

  • AI in Action: Using Computer Vision to Classify Images

Final Assignment: AI in Action

Curtin university: introduction to the internet of things (iot)

Course Syllabus:

This course consists of six modules. We estimate that I have spent at least 2-3 hours on each module. The course is self-paced so I have the flexibility to complete modules in my own time.

Module 1: What in the world is the Internet of Things?

An introduction to what the Internet of Things is, and its scope to create efficiencies and increase safety.

Module 2: The ‘things’ of the Internet of Things

Introduction to the many ‘end devices’ that give the IoT the ability to physically sense and respond in different circumstances.

Module 3: Networking IoT

Introduction to the components of basic IoT networks, the types of network connections and how data travels through them, and the role of Internet Protocols.

Module 4: Programming IoT

Introduction to the types of programming required for IoT, and the types of data that IoT generates.

Module 5: Securing IoT

Introduction to the security and privacy implications of the Internet of Things.

Module 6: All together now

Introduction to design considerations for IoT, and what electronics are required for IoT prototyping.

École polytechnique fédérale de Lausanne: MATLAB and Octave for Beginners

  • Work with vectors and matrices

  • Process text files containing data

  • Manipulation of plots and figures and saving them to pdf or jpg

  • Using scripts and functions

  • Writing of small interactive programs