|
3 | 3 | ```{include} description.md
|
4 | 4 | ```
|
5 | 5 |
|
| 6 | +<!-- ```{raw} html |
| 7 | +:file: clslab-light-slideshow.html |
| 8 | +``` --> |
| 9 | + |
| 10 | + |
| 11 | +*Schematic diagram of the "Hello World" demo using LEDs, a light sensor, and a microcontroller.* |
| 12 | + |
| 13 | + |
6 | 14 | ## 🔑 Recommended Prerequisites <!-- alternative: ✅ -->
|
7 | 15 |
|
8 | 16 | For participants to complete this course within the expected timeframe (approx. 20 hours), intermediate proficiency in Python programming is recommended.
|
@@ -33,61 +41,51 @@ For participants to complete this course within the expected timeframe (approx.
|
33 | 41 | * - Module Name
|
34 | 42 | - Topics
|
35 | 43 | - Learning Outcomes
|
36 |
| -* - Intro to Git and GitHub (optional) |
37 |
| - - - The GitHub flow |
38 |
| - - GitHub terminology |
39 |
| - - - Clone a GitHub repository |
40 |
| - - Create a GitHub issue |
41 |
| - - Create a GitHub pull request |
42 |
| -* - Running the self-driving lab demo |
| 44 | +* - Running the SDL demo |
43 | 45 | - - Database management
|
44 | 46 | - Bayesian optimization
|
45 | 47 | - Microcontrollers
|
46 | 48 | - Device communication
|
47 | 49 | - - Describe key terms and principles of self-driving labs
|
48 | 50 | - Preview an end-to-end self-driving lab
|
49 | 51 | - Upload software to a microcontroller
|
50 |
| -* - Blink the LEDs and read sensor data |
| 52 | +* - Blink LEDs and read sensor |
51 | 53 | - - Microcontrollers
|
52 |
| - - Sensors |
53 |
| - - - Familiarize the MicroPython programming language |
54 |
| - - Send commands to a microcontroller |
55 |
| - - Receive sensor data from a microcontroller |
56 |
| -* - Bayesian optimization for color matching |
| 54 | + - MicroPython |
| 55 | + - - Write MicroPython scripts |
| 56 | + - Use a microcontroller |
| 57 | +* - Bayesian optimization |
57 | 58 | - - Design of experiments
|
58 | 59 | - Bayesian optimization
|
59 | 60 | - Data visualization
|
60 | 61 | - - Compare grid and random search vs. Bayesian optimization
|
61 | 62 | - Visualize optimization efficiency
|
62 |
| -* - Hardware/software communication |
| 63 | +* - Device communication |
63 | 64 | - - MQTT
|
64 |
| - - Device communication |
65 |
| - - Host |
66 |
| - - Client |
| 65 | + - Broker/client |
67 | 66 | - - Send commands to a microcontroller
|
68 | 67 | - Receive sensor data from a microcontroller
|
69 | 68 | * - Logging data
|
70 | 69 | - - MongoDB
|
71 | 70 | - Database management
|
72 | 71 | - - Set up a MongoDB account and database
|
73 | 72 | - Upload data directly from microcontroller
|
74 |
| -* - Piecing the modules together |
| 73 | +* - Module integration |
75 | 74 | - - Systems design
|
76 | 75 | - - Connect the pieces to complete the SDL demo
|
77 |
| -* - Convert to a lab sensor system |
78 |
| - - - Microcontrollers |
79 |
| - - Sensors |
80 |
| - - Device communication |
81 |
| - - Database management |
82 |
| - - - Continuously log temperature, humidity, pressure, light, and accelerometer data |
| 76 | +* - Lab sensor system |
| 77 | + - - Environmental sensors |
| 78 | + - - Continuously log temperature, humidity, vibration, etc. |
83 | 79 | ```
|
84 | 80 |
|
| 81 | +<!-- Continuously log temperature, humidity, pressure, light, and accelerometer data --> |
| 82 | + |
85 | 83 | ## ⚖️ Course Assessments and Grading Schema
|
86 | 84 |
|
87 |
| -Each module will contain: |
| 85 | +Each module will contain the following: |
88 | 86 |
|
89 |
| -1. A guided notebook tutorial (ungraded) |
90 |
| -2. A standalone notebook assignment (graded, 5 points) |
91 |
| -3. A mini project (graded, 10 points) |
| 87 | +1. 🧭 A guided notebook tutorial (ungraded) |
| 88 | +2. 📓 A standalone notebook assignment (graded, 5 points) |
| 89 | +3. 🛠️ A mini project (graded, 10 points) |
92 | 90 |
|
93 |
| -The guided notebook tutorial is provided as a Jupyter notebook with embedded instructions and code snippets. The standalone notebook assignment is provided as a Jupyter notebook with instructions and partially filled code snippets. The mini project is an opportunity to directly apply the skills from the notebooks in an isolated environment within an interactive GitHub repository. Autograding of the notebook and mini project is performed via GitHub actions, and grades are automatically reported to GitHub Classroom. To see how that works, watch ["GitHub Classroom: How students complete assignments"](https://www.youtube.com/watch?v=ObaFRGp_Eko). Grades from GitHub Classroom are then periodically synced to Quercus, the University of Toronto's learning management system which is based on Instructure's open-source Canvas platform. A passing grade is considered 50% or greater. |
| 91 | +The guided notebook tutorial is provided as a Jupyter notebook with embedded instructions and code snippets. The standalone notebook assignment is provided as a Jupyter notebook with instructions and partially filled code snippets. The mini project is an opportunity to directly apply the skills from the notebooks in an isolated environment within an interactive GitHub repository. Autograding of the notebook and mini project is performed via GitHub actions, and grades are automatically reported to GitHub Classroom. To see how that works, watch ["GitHub Classroom: How students complete assignments"](https://www.youtube.com/watch?v=ObaFRGp_Eko). Grades from GitHub Classroom are then periodically synced to Quercus, the University of Toronto's learning management system which is based on Instructure's open-source Canvas platform. A passing grade is considered 70% or greater. |
0 commit comments