Machine Learning / Artificial Intelligence
Course Highlights
This course introduces students to the technological and philosophical foundations of the AI revolution. The course is 1/3 philosophy and ethics, 1/3 programming, and 1/3 software engineering practices. As the course progresses, students are encouraged to use ChatBots to help them produce code and understand new ideas more quickly. At each step, students then reflect on their experience to see if the ChatBot added to, or detracted from their learning.
The class is designed to mold around the current AP curriculum. The reason for this is that many students in the class will take the AP class the year after taking this class and many students in the class have already taken the AP class. By focusing on philosophy, ethics, and Software Engineering, students of all abilities are exposed to new and challenging content.
Years Taught
Main Links
Course Units
Units include:
Unit 00: Foundations of Intelligence
In this unit, we explore the technical and philosophical roots of AI. We first talk about how most problems can be thought of as a form of search. Then we talk about (and demonstrate) the original Turing Test and what its strengths/ weaknesses are. After this, students do a quick “skills assessment”. On the last day of the assessment, students are encouraged to use a ChatBot to aid them. This leads to a final discussion about the role of ChatBots for learners.
Keywords
Search Space, Turing Test, ChatBots, Learning, Python
Resources
Unit 01: SDE Boot Camp
In this unit, students are exposed to the core technologies that enforce good engineering practices. They learn to use the terminal, git, and deploy projects that utilize CI/CD. The point of this is not to turn them into experts, but to expose them to the power of these tools that, should they choose, will allow them to scale their knowledge in future classes. Throughout the rest of the year, they will be returning to these tools again and again, reinforcing their understanding.
Keywords
Types, Terminal, Git, Markdown, CI/CD, Testing
Resources
Unit 02: Introduction to Data Science
In this unit, students get to programming. In particular, they learn to use Python to represent different types of data visually via the matplotlib library. In the process, students use the Monte Carlo method to find the area of a circle experimentally, see how difficult it is to create a truly random series of numbers, and examine old texts to see how language changes over time. In the process, students learn how good data can lead to interesting conclusions while bad data can lead them astray.
Keywords
Matplotlib, Graphing, Randomness, Parsing, Python
Resources
- Slides
- Funny Graphs Worksheet
- Monte Carlo Method Worksheets
- Class Randomness Worksheets
- Plotting the Classics Worksheets (based on inferentialthinking.com course)
Unit 03: Lists, Sets, and Maps
In this unit, students learn about the power of Python’s built-in data structures. In particular, they learn about the properties that the core data structures share and what makes them unique. From this foundation, students start to visualize different ways to link and traverse data. They come to understand how to build graphs and use them to represent FSMs and Markov Chains. The end result is the creation of a simplistic ChatBot that highlights how data and program combine to create an interesting result.
Keywords
Data Structures, JSON, Manufactoria, Finite State Machines, Markov Chains
Resources
- Slides
- Nerd Dice Worksheets
- Text Analysis Worksheets
- Emoji Pics Worksheets
- Markov Models Worksheets
- Ouroboros Worksheet
Unit 04: Learning Machines
In this unit, students are given the basic vocabulary, concepts, and experiences required to understand how ML is used in the “real world”. Then, students will use this ML terminology to accurately discuss and critique their own learning experience. In particular, students will read and discuss various aspects of teaching/learning such as the purpose of grades and how humans learn best. The unit culminates with students creating their own lesson plan for a three class unit on debugging with references to best practices for both machine and human learning.
Keywords
Learning Types, Classifiers, Teaching Methods, Abstraction, Epistemology
Resources
Unit 05: Bayesian Learning
In this unit, students will develop simple “Bayesian Deciders” (not to be confused with Bayesian Classifiers, which are a bit too complex for the median student). They will investigate this by playing the game Skull, creating a simple, text-based Black Jack game, and analyzing cancer data. The overall point of the unit is to have students appreciate how you can make better predictions about the future if you use data that matches your present.
Keywords
Bayes Theorem, NamedTuples, Blackjack, Skull, 3Blue1Brown
Resources
Unit 06: AI in Society
In this unit, students talk about different ways that AI might fit into modern society. Students discuss the importance of originality, what a super- intelligence might look like, and what happens when there’s misalignment between what humans want and what an AI is pursuing. The overall goal will be to decide the roles AI might play in the future and what tradeoffs come with possible role.
Keywords
P-Doom, Utopia, Emotions, AI Safety, Ethics
Resources
Unit 07: App Development 1
In this unit, students are given the opportunity to create a project from scratch. This serves as an opportunity for them to build on all of the learning theory that we have just done and to interact with the ChatBot in a much more open-ended way. Students will be grouped into twos and threes and with the goal of creating a game of escalating complexity. Every class, students will be given tailored goals to accomplish “next”. This iteratively increasing complexity requires them to wrestle and reshape their code, resulting in real-world instances of debugging and problem solving.
Keywords
ChatBots, Git, Python, Independent Study
Resources
Unit 08: Evolutionary Algorithms
Keywords
Resources
Keywords
Fitness, Selection, Variability, Heritability, Emergence
Resources
Unit 09: Cognition and Computing
Keywords
Metaphors, Virtual Machines, Perception, Reality, Rationalism
Resources
Unit 10: Neural Networks
Keywords
Neurons, TensorFlow, Contextualism, Structuralism
Resources
Unit 11: App Development 2
Keywords
ChatBots, Git, Agile, Python, Independent Study