Machine Learning for Advanced High School Students
2024 Summer Course

2024 Summer Course

There is not a second level of Machine Learning at this time.

What is this program?

i2Lab's high school outreach program aims at providing STEM educational enrichment to students in the United States and overseas.

We are very thankful for the generous support from the National Science Foundation.

The program is designed for advanced high school students, typically in grades 10-12 who are interested in programming and mathematics. Younger students who meet the content requirements may be enrolled at the discretion of the Instructors.

Professor Stanley H. Chan

Instructor and Teaching Assistants:
Nick Chimitt, Lead Instructor
Kent Gauen,
Cheng-Hao Chen,
Weijian Zhang,


  • High school Algebra 2; Calculus 1 is recommended, but not required.
  • Interested in mathematics and programming
  • No background in programming is required. We will teach you from scratch.
  • Have access to a computer and Internet.
  • Have a Google account. We will use Google Colab for all our homework.

Course Materials, Presentations, Lecture Notes

Course materials are restricted to participating students only.

Day 1 Introduction

  • What is Machine Learning? What can be learned, and what cannot be learned?
  • Python basics: Defining variables, Data types; If-then-else, for-loop, while-loop statements.
  • Plotting functions in Python. How to define a function in Python? How to evaluate a function? How to visualize a functions?
  • Zoom synchronous meeting

Day 2 Linear regression: Fitting data with a line

  • Concept of a line: Slope and y-intercept. Concept of noisy data points drawn from a line.
  • Basic concepts about arrays, matrices and vectors.
  • How to write the line-fitting problem in the form of matrix and vector? How to visualize the data-fitting problem?
  • Zoom synchronous meeting

Day 3 Minimizing a function

  • What is minimization? We will visualize the process without using Calculus.
  • How to apply the minimization technique to fit data?
  • Why is a single-layer neural network the same as a line-fitting problem?
  • Zoom synchronous meeting

Day 4 Pattern recognition

  • What is inner product? What is cosine angle? How can they be used to classify a two-class dataset?
  • How to implement a simple pattern-recognition method?
  • Zoom synchronous meeting

Day 5 Image processing

  • What are images? What are colors?
  • How to read and write images?
  • How to do filtering on images?
  • How to extract feature(s) from images?
  • Zoom synchronous meeting

Learning Outcomes

  • Students completing the course will be able to
    • Use Python to do the most basic scientific computing (i.e., plotting and processing images).
    • Understand the role of statistics, linear algebra, and optimization in Machine Learning.
    • Use non-technical language to explain a few ideas such as line fitting, feature extraction, and classification.
    • Say: "Machine Learning is fun!"
  • Our goals are realistic. The following are not the objectives of this course:
    • Demonstrate proficiency in programming or writing a complete Python program on your own.
    • Be able to develop an app or software.
    • Be able to program a robot and make it move.
    • Bypass the normal high school math syllabus or skip a course in the math sequence.