Link to current assignments


Courses


Computation & Modeling
Prerequisites: AP Calculus AB/BC, Introduction to Programming, concurrent enrollment in Multivariable Calculus & Linear Algebra

Computation & Modeling is a comprehensive, college-level course that integrates data structures & algorithms, modeling & optimization, machine learning, and object-oriented programming. This is an year-long elective course associated with a highly accelerated math sequence intended for gifted math students in high school. It covers methods of storing and manipulating data so as to achieve a desired result, techniques used to interpolate and extrapolate quantitative data, and software engineering practices used for building complex systems consisting of many interacting parts. More specifically, it introduces techniques from data structures & algorithms (including recursion, time complexity, lists & sorting, matrices & dataframes, graphs & traversals); modeling & optimization (linear regression, logistic regression, least-squares projection, nonlinear regression, gradient descent, k-nearest neighbors, k-means clustering, simulation of coupled differential equations, game trees); and object-oriented programming (classes, inheritance, libraries, testing). Students work primarily in Python. The content for this course has been developed entirely from scratch. Note that probabilistic modeling techniques (e.g. Bayesian inference) are already covered as a part of the Math Academy sequence.


Machine Learning
Prerequisites: Computation & Modeling, Multivariable Calculus & Linear Algebra

Machine Learning is a comprehensive, college-level course that integrates predictive modeling & optimization, clustering & dimensionality reduction, and reinforcement learning. This is a year-long elective course associated with a highly accelerated math sequence intended for gifted math students in high school. It covers methods of building models to draw insights and make predictions based on data, implementing a massively multiplayer game, and developing self-improving game-playing agents. More specifically, it continues the study of techniques from modeling & optimization (decision trees, random forests, neural networks, genetic algorithms, clustering & dimensionality reduction) and introduces reinforcement learning (Markov decision processes, policy iteration, value iteration, temporal difference learning, SARSA, q-learning). Students work primarily in Python. The content for this course draws primarily from the canonical textbooks: Introduction to Statistical Learning, Machine Learning (Mitchell), and Reinforcement Learning (Sutton & Barto). Supplemental content is drawn from An Introduction to Linear Programming and Game Theory.