High School Machine Learning

Professor Stanley H. Chan, Purdue University, Spring 2021

What is this program?

i2Lab's high school outreach program aims at providing STEM educational enrichment to students in the United States and overseas. Spring 2021 is our first offering, and it is our pilot program. We are very thankful for the generous supports from the National Science Foundation.

The program is designed for students in the 9th to the 12th grade who are interested in programming and mathematics. We collaborate with partnering high schools to deliver the course content, through weekly Zoom lectures, tutorials. Science teachers of the participating school offer on-site support and physical interactions with the students.

If you are a high school principal / teacher and would like to discuss possible collaborations, please contact Prof Chan.

Course Information

Instructor: Professor Stanley H. Chan
Email: stanchan@purdue.edu

Teaching Assistant:
Chengxi Li, li2509@purdue.edu
Nick Chimitt, nchimitt@purdue.edu

Forum and Homework

  • Submit your homework

    • Please submit your homework to your high school teacher.

    • We will provide the solution keys to your teacher. Your high school teacher will grade your work.


  • 9th - 12th grade, or freshman without background in programming.

  • Interested in mathematics and programming.

  • No background in programming is required. We will teach you from scratch.

  • Have access to a comptuer and internet.

  • Have a Google account. We will use Google Colab for all our homework.

  • A committment of 20 weeks.

  • Can speak and write in English.

Lecture Note

Course materials are restricted to participating students.

  • Week 1 Introduction

    • Learning objective: What is data science, and how to learn data science. Hello world in Python.

    • Dec 11, 2020 9pm EST (Dec 12, 2020 10am GMT+8), Lecture 01 (PDF, 3.8MB) (Password protected)

    • Dec 18, 2020 9pm EST (Dec 19, 2020 10am GMT+8), Tutorial 01

    • Homework 1 (PDF, 500KB) (Password protected)

  • Week 2 How to plot functions in Python?

    • Learning objective: How does computer understand a function? What commands we can call to plot functions? Some common functions

    • Jan 08, 2021 9pm EST (Jan 09, 2021 10am GMT+8), Lecture 02 (PDF 6.81MB) (Password protected)

    • Jan 15, 2021 9pm EST (Jan 16, 2021 10am GMT+8), Tutorial 02

    • Homework 2 (PDF, 900KB) (Password protected)

  • Week 3 How do computers handle images?

    • Learning objective: What are images? How do computers understand an image? How to read an image? How to display an image? How to extract a block from an image?

    • Jan 22, 2021 9pm EST (Jan 23, 2021 10am GMT+8), Lecture 03 (PDF, 2MB) (Password protected)

    • Jan 29, 2021 9pm EST (Jan 20, 2021 10am GMT+8), Tutorial 03

    • Homework 3 (PDF 300KB) (Password protected)

    • Image data (BMP 1MB)

  • Week 4 What are arrays, vectors, and matrices?

    • Learning objective: What are matrices and vectors? How to multiply a matrix with a vector? Why are they relevant to data science? How to compute them in Python?

    • Feb 05, 2021 9pm EST (Feb 06, 2021 10am GMT+8), Lecture 04 (PDF, 1MB) (Password protected)

    • Feb 12, 2021 9pm EST (Feb 13, 2021 10am GMT+8), Tutorial 04

    • Homework 4 (PDF 300KB) (Password protected)

  • Week 5 Project discussion

    • Learning objective: What is MNIST dataset? How to read the example program? What is the goal of the project?

    • Feb 19, 2021 9pm EST (Feb 20, 2021 10am GMT+8), Lecture 05

    • Feb 26, 2021 9pm EST (Feb 27, 2021 10am GMT+8), Tutorial 05

  • Week 6 How to fit data with a line?

    • Learning objective: What is a line? How to formulate the problem? How to fit data on Python? Why are matrices and vectors useful here?

    • Mar 05, 2021 9pm EST (Mar 06, 2021 10am GMT+8), Lecture 06

    • Mar 12, 2021 9pm EST (Mar 13, 2021 10am GMT+8), Tutorial 06

  • Week 7 How to minimize a function?

    • Learning objective: How to find the minimum point of a function (without calculus)? How does a computer find the minimum point? What is an algorithm?

    • Mar 19, 2021 9pm EDT (Mar 20, 2021 9am GMT+8), Lecture 07

    • Mar 26, 2021 9pm EDT (Mar 27, 2021 9am GMT+8), Tutorial 07

  • Week 8 How to extract features from an image?

    • Learning objective: What is convolution? How can convolution extract features from an image? How does a comptuer do convolution?

    • Apr 02, 2021 9pm EDT (Apr 03, 2021 9am GMT+8), Lecture 08

    • Apr 09, 2021 9pm EDT (Apr 10, 2021 9am GMT+8), Tutorial 08

  • Week 9 How does a single-layer perceptron classify a pattern?

    • Learning objective: How to classify a simple pattern? What is a perceptron? How does a computer teach the perceptron?

    • Apr 16, 2021 9pm EDT (Apr 17, 2021 9am GMT+8), Lecture 09

    • Apr 23, 2021 9pm EDT (Apr 24, 2021 9am GMT+8), Tutorial 09

  • Week 10 How does a neural network work?

    • Learning objective: How do today's deep neural network look like? Why do they work? How to prepare for a career in data science?

    • Apr 30, 2021 9pm EDT (May 01, 2021 9am GMT+8), Lecture 10

    • May 07, 2021 9pm EDT (May 08, 2021 9am GMT+8), Tutorial 10

Learning Outcomes

  • Students completing the course will be able to

    • Use Python to do the most basic scientific computing, such as plotting, and processing images.

    • Understand what it means for statistics, linear algebra, and optimization.

    • Use non-technical language to explain a few ideas such as line fitting, feature extraction, and classification.

    • Say data science is fun.

  • Our goals are realistic. The followings are not the purpose of this course:

    • Demonstrate proficient in programming, nor writing a complete Python program on their own.

    • Be able to develope an app or software.

    • Be able to program a robot and make it move.

    • Can bypass the normal high school math syllabus such as calculus.