Creating Accessible, Open Educational Resources

In a previous post I detailed some ways for creating open, accessible curriculum and my specific goals / requirements. I have now implemented a system for a new class so I wanted to do describe my approach. I don’t presume this is the best approach, but it (mostly) fits my requirements.

Course website:
GitHub repository:

Continue reading “Creating Accessible, Open Educational Resources”

Course Content for ITP 348 (Introduction to Physical Computing)

ITP 348 (Introduction to Physical Computing) is an introductory electronics and IoT (Internet of Things) class. It serves as the core electronics course of ITP’s Connected Devices and Making minor, which teaching applied electronics skill to create “smart devices.”

In designing this course, I found it challenging to select the content and develop the appropriate depth. Our minor serves students with all majors and the only prerequisite is an introductory programming class (typically in Python). There are many excellent resources available, but much of it is geared for K-12 (too simple) or electrical engineering (too advanced).

I have received help from a great network of other faculty so I wanted to share the material I am developing in case it is helpful to anyone else. Also, the content is accessible for all users. I will be adding material through Dec 2019, and then it will remain available and updated in on-going semesters.

Course website:

GitHub repository:


Learning Python is great!

Python is a wonderful language to learn. When I first had to teach Python, I found programming to be fun in a way it hadn’t been before.
Since the syntax is more friendly and understandable, it makes it easier to learn core programming concepts.
Quick note: There seem to be two different approaches to learning / using Python
      1. Using the Python language in a classical programming manner. This is my approach since my goal is to teach introductory students programming concepts.
      2. Using a Pythonic approach where really cool features of the language are utilized to achieve some elegant feats in a few short lines. This approach is great as well but I am less familiar with.

Resources to learn Python

Some of the tutorials have interactive places where you can write python code which is great. Eventually, though, you’ll probably want to code locally on your computer. I recommend using an IDE (visual) program for beginners and avoiding the “command” line approach. For instructions on how to set that up, I included a PDF I created for my class.
Feel free to comment with any other recommendations.Python and Pycharm Installation

Exploring How to Develop Accessible, Open-Source Curriculum

I’m teaching a new course in electronics / internet of things (IoT), and I would like to share the content publicly. In addition, I would like the content to be accessible for all users. As such, I’m looking to migrate from PowerPoint (which I really enjoy using). This post serves as a memory stone for myself of the options (circa Aug 2019).

Special thanks to Ryan Straight for all his suggestions!

My desired features are

    • accessible output (lecture notes and slides)
    • limit extra work (single file for publishable lecture notes and in-class slide presentations)
    • easy to edit (when editing lecture notes, I want to focus on the content not the formatting or markup)
    • a reliable tool that has community support and will exist in the future
    • easy to convert notes to slides (ideally an add-on for the editor I’m using, but at least it should be a quick conversion that can be run)
    • drag and drop support for images (a bonus)
    • compatible with GitHub readable markdown (since I want to make the content open-source. Ideally I would like it to automatically create GitHub HTML pages. For now, GitHub readable markdown is fine)
    • able to make illustrations / flowcharts / line drawings

Here are my preliminary findings. Note this is based on a couple of weeks of experimenting and subject revision.

Continue reading “Exploring How to Develop Accessible, Open-Source Curriculum”

New Class – ITP 348 Introduction to Physical Computing

Learn how to create physical, internet-enabled devices

ITP 348 is a brand-new, hands-on course this Fall that introduces the concepts of physical computing systems, which are the basis for smart devices, wearables like smart watches, e-textiles / fashion, IoT (Internet of Things) devices, and hardware start-ups.

What to expect

This course is designed specifically for a general audience and all majors. You will learn to design electronic devices that interact with the physical world. Assignments will use motion detectors, robotic arms, and electronic music generation.


ITP 109, ITP 115, ITP 165, ITP 168, or equivalent introductory programming class


Tues / Thurs @ 4-5:50pm


Email Professor Rob Parke (parke AT usc DOT edu) with any questions

Class link

*copyright held by other on above images