This is my favorite of all the different courses that I ever taught! Only one year, from 2022 to 2023. Yet I had the chance to visit our previous teacher, Evan, who taught this 2021-2022. So much fun! Machine learning is one of the 6 topics, and we were training our own models! When ChatGPT came around in November 2022, we started integrating it. Some parts of coding had AI support for my students. We embraced it very early!
Documentation
I documented the whole course with each lesson in a Google Docs document and submitted it for the school internal curriculum office at SSIS. Good that I have some copies, and slowly I copied the instructions to Github, without giving too much of the code to develop away.
Here are a few repositories:
Unit 1: Functions and Modular Code
In our first unit we learn the basics of defining and calling functions, providing input parameters and return output values. And we define and describe the algorithms to solve our problems. Rearranging program code to become modular makes it easier to reuse code and reduce errors.
1. Welcome to Advanced Automation
2. Introduction to Functions
3. Shock Detector Case Study
4. Mastery Check - Sketch of Functions
5. Making Code Modular
6. Module Maker - Creating modular code yourself!
7. Drink Machine Part I
8. Drink Machine Part II
9. Drink Machine Testing Software
Unit 2: Managing State
1. Convert a binary string into a readable ASCII text to learn more about abstraction and decomposition.
2. Binary Secret Code - Introduction to Abstraction
3. Three Boards, Three Flavors
4. Introduction to State Machine Programming - Escape to Summer Case Study
5. Drink Dispenser State Machine
6. Building a Physical Drink Dispenser State Machine
7. Iterative Design
8. Choosing your system
9. Students State Program - Description
10. Inputs, Outputs, Hardware
11. Levels of Abstraction
12. The Crane Game - Example for Abstraction
Unit 3: Collaborative code
1. Create some generative art!
2. Generative Art and the Circle K Project
3. Design Project
4. Branches, Forks, and Pull Requests
5. Circular Art
6. Idea Sharing for the Generative Art Project
7. Project Check-In
8. Design Project Submission
9. Singular Collaborative Art Project
Unit 4: Control Algorithms and APIs
1. Introduction Control Systems Board
2. Carrier board rp2040 - physical and electrical connection
3. The I2C Bus
4. Activate the OLED display
5. Control Algorithms
6. Digital states and Pulldown Resistors
7. Feedback Control Systems
8. The PID controller
9. VEX VR Control Systems Task
10. Water Flow Controller and Landing a Rocket
11. APIs and Libraries
12. Sphero RVR API - see more at [rvr2023](https://github.com/ssis-aa/rvr2023)
13. Control Challenge 2022-2023
14. Documentation on Design Decisions
15. On the Field: Control Systems and API Challenge
Unit 5: Machine Learning
- Sketch Classifier
- Improving the Classifier
- Self Driving Car Activity
- Iterative Design
- Evaluating Algorithms and Standards
- Machine Learning Project - Objective and Dataset
- Machine Learning Project - Algorithm and Training Data
- Machine Learning Project - Training the Model
- Documenting Iterations
- Saving the Dataset and Model
- JSON data exchange
- Presentation of final version as a website
Unit 6: Measurement and Data Processing
- Interpreting graphs and analyze csv files
- Processing large csv files
- Determining Pulse Width
- Morse code challenge
- Sensor Calibration, Smoothing, Rate of Change
Used Languages, Websites and Projects
- Unit 1: JavaScript for Makecode of the microbit, example code and on makecode
- Unit 2: Python on replit, starter code and on replit
- Unit 3: JavaScript on p5js.org for collaborative code and generative art
- Unit 4: Circuitpython and JavaScript on rp2040
- Unit 5: JavaScript on p5js with machine learning, training and inference
- Unit 6: Python, Circuitpython, CSV files on replit and rp2040 or CircuitPlayground from Adafruit
