sdmay24-33 • Interactive Embedded Systems Learning Using the Prairie Learn Framework
Project Overview
The objective of this project is to use the Prairie Learn framework (https://www.prairielearn.org/) to develop an interactive learning environment for use in CPR E 288 (Embedded Systems), which can be found here https://cpre288-pl-f2023.ece.iastate.edu/pl/login. This will primarily involve:
- Using Python, JavaScript, and C to develop interactive questions/activities that can be randomized, and auto-graded, and
- Integrating third party tools such as microcontroller emulators to create an interactive environment in which students can learn and practice Embedded Systems concepts introduced in CPR E 288.
A stretch goal would be to have an emulated (and perhaps actual) Cybot robot interface with the framework. A significant portion of the team will need to be very comfortable with the material covered in CPR E 288.
Interactive questions/activities developed will cover topics such as:
- Converting numbers between bases
- Writing simple C programs
- General Purpose I/O
- Bitwise operations
- UART communication
- Analog to Digital Conversion
- Timers
- Pulse wave generation
- Assembly Programming
A larger vision for this project is to act as an example that other courses in the department can use to develop interactive learning environments. Depending on the progress of the team, there is an opportunity to experiment with developing interactive educational material for courses beyond CPR E 288.
Expected Deliverables:
- Refinement of existing interactive questions for initial student feedback by mid Fall 2023,
- A larger set of more advanced interactive questions/activities to be completed by the end of Fall 2023 so that they can be deployed to CPR E 288 in the Spring of 2024,
- A final large set of interactive questions/activities that will be used by CPR E 288 students in the Summer of 2024, and
- Developer documentation, and tutorial videos to help others quickly get up to speed with setting up a PrairieLearn server, and developing interactive questions/activities for courses in the department
Team Members
Tyler Weberski
Project ManagerSoftware Engineering
Matt Graham
ConsultantSoftware Engineering
Chris Costa
Quality AssuranceSoftware Engineering
Andrew Winters
ConstructionElectrical Engineering
Carter Murawski
Scrum MasterElectrical Engineering
Mitch Hudson
Technical LeadCyber Security Engineering
Design Documents
Final Design Document
Previous Design Documents
- Design Document
- Team Contract
- Preamble
- Requirements, Constraints, and Engineering Standards
- Project Plan
- Engineering Design
- Testing Design
Weekly Reports
Status Reports
- 491
- 492
Advisor Reports
- Sep 25 - Oct 29
- Oct 2 - Oct 6
- Oct 9 - Oct 13
- Oct 16 - Oct 21
- Oct 22 - Nov 2
- Nov 3 - Nov 9
- Nov 10 - Nov 16
- Nov 17 - Dec 1
- Dec 2 - Dec 7
- Jan 26 - Feb 2
- Feb 2 - Feb 9
- Feb 9 - Feb 16
- Feb 16 - Feb 23
- Feb 23 - Mar 1
- Mar 1 - Mar 8
- Mar 8 - Mar 22
- Mar 22 - Mar 29
- Mar 29 - Apr 5
- Apr 5 - Apr 12
- Apr 12 - Apr 19
- Apr 19 - Apr 26
Lightning Talks
Video Presentations
- Requirements and Engineering Standards Lightning Talk
- Project Plan Lightning Talk
- Engineering Design Lightning Talk
- Testing Lightning Talk
- News Report
Slideshows
- Requirements and Engineering Standards Lightning Talk Slides
- Project Plan Lightning Talk Slides
- Engineering Design Lightning Talk Slides
- Testing Lightning Talk Slides
Project Documentation
- Documentation Repository
- YouTube Channel
- PrairieLearn Set-Up Guide
- PrairieLearn Auto-Drawing Writeup
- PrairieLearn Element Extension Writeup
- PrairieLearn Pi Pico TM4C123GH6PM Emulator Writeup
- PrairieLearn Okta Integration Writeup
- PrairieLearn Production Server Writeup
- PrairieLearn QEMU ARM Autograder Writeup
- PrairieLearn QEMU ARM Bare-Metal Autograder Server Writeup
- PrairieLearn QEMU TM4C123GH6PM Emulator Writeup