Software Engineering Projects—IoT (CIS-2730) Home Page
This is the home page for Peter Chapin's Software Engineering Projects (IoT) course notes for
the Spring 2025 semester. Here you will find electronic versions of class handouts, homework
assignments, lecture slides, and links to other references. If you are a student taking Software
Engineering Projects, you should bookmark this page.
- The course syllabus gives an overview of the course and
its content, lists course resources, and describes the grading policy and related issues.
- The homework submission area and grade book are on Canvas, but all other course resources
are here.
- I've prepared some general information on submitting
assignments.
- Everyone in class will be working with their own BeaglePlay single board computer
(SBC).
- You can use Microsoft Copilot through the
school's subscription. Log in using your VSC credentials.
- My home page contains other resources of potential interest.
Topic Summary
The lectures for this course are on Zoom. The labs for this course are face-to-face+ (meaning
there is a face-to-face lab in Williston with Zoom access during the same scheduled time.
- 2025-01-21.
Course introduction and discussion about Lab #1.
- 2025-01-23.
Reviewed the Python sample program (blinkLED.py) in detail.
- 2025-01-28.
Discussed Lab #2. Discussed how to approach using Copilot.
- 2025-01-30.
Tour of the BeaglePlay, and of the /proc and /sys filesystems.
- 2025-02-04.
Introduced Lab #3. Described how to install PostgreSQL onto the
BeaglePlay. Also demonstrated some of Python's time handling functions.
- 2025-02-06.
Demonstrated a Python program that connects to and inserts data into the PostgreSQL database
on the BeaglePlay.
- 2025-02-11. No class.
- 2025-02-13. No class.
- 2025-02-18.
Discussed Lab #4.
- 2025-02-20.
Discussed a revised version of the database access sample program,
with additional comments about Lab #4.
- 2025-02-25. No class (Vacation).
- 2025-02-27. No class (Vacation).
- 2025-03-04.
Discussed Python type hints. Introduced the Therm-30 click board from Mikroe.
- 2025-03-06.
Introduced Lab #5.
- 2025-03-11.
Discussed Lab #5 in detail.
- 2025-03-13.
Introduced the ML model we'll use to predict temperatures based on our collected data.
- 2025-03-18.
Introduced how we can integrate the observer and archivist programs into the BeaglePlay using
cron and systemd. Introduced Anaconda.
- 2025-03-20. No class.
- 2025-03-25.
Discussed Lab #6 on system integration.
- 2025-03-27.
Demonstrating Jupyter notebooks using a curve fitting sample.
- 2025-04-01.
Started discussing a Jupyter notebook containing temperature model
building code.
- 2025-04-03.
More discussion about building a model for predicting temperatures in the Winooski Valley.
- 2025-04-08. No class (Vacation).
- 2025-04-10. No class (Vacation).
- 2025-04-15.
Discussed Lab #8 on modifying the module used by the temperature
data analysis program.
- 2025-04-17.
High-level introduction to Contiki-NG and what the next lab will be about.
- 2025-04-22.
Discussed Lab #9 on Contiki-NG.
- 2025-04-24. ???
- 2025-04-29. In class help session.
- 2025-05-01.
Discussed processors used in IoT applications: ARM, RISC-V.
- 2025-05-06. In class help session.
- 2025-05-08.
Discussed operating systems used in IoT applications: Linux, FreeRTOS, Zephyr, Contiki-NG.
Slides
- The Project
- ML Model Training
Labs
The lab set is summarized in the lab summary document, along with links
to specific lab handouts and supporting code samples.
Samples
- The blinkLED.py sample program is a simple Python
program that blinks an LED on the BeaglePlay.
- A program that connects to and inserts data into the PostgreSQL
database on the BeaglePlay.
- This Jupyter notebook demonstrates machine learning as a
curve-fitting problem.
- This Jupyter notebook shows how we can build a model that
predicts temperatures in the Winooski valley.
Resources/Articles
Linux
- There are many Linux command cheat sheets online. This one seems good,
although it is a bit too long.
- I wrote an Overview of Unix that
includes a section on basic commands (Chapter 2).
- There are several books in the O'Reilly eBook Collection that describe how to use the
command line. The
Linux Command Line by William E. Shotts looks like a good starting point.
BeaglePlay
Python
- The main Python website has links to tutorials and a
lot of other information.
- Anaconda is a Python distribution with many data
science packages.
Contiki-NG
- The main page for Contiki-NG, an OS specialized
for IoT devices.
Last Revised: 2025-05-20
© Copyright 2025 by Peter Chapin <peter.chapin@vermontstate.edu>