Course Outline

This course teaches you to learn programming and build solutions with code and physical devices such as sensors and actuators.

I offer this course for students at the University of Applied Sciences under the title Impacts of Digitalization (will soon be renamed). All materials for the course are on this website, you can basically self-study the material and solve the exercises all by yourself. The important thing that will be missing are the fruitful discussions we have during the live-sessions.

Topics

This course is divided into the following parts:

  • Part 1: Getting Started

    • Set up your development environment with Visual Studio Code, Git, and Python.

    • We introduce a set of hardware devices including a temperature sensor, a button, and a display.

    • We write our first program to connect to the devices and repeat some Python basics.

    • Finally, we learn how to output information on a small OLED display and write some programs that integrate the display.

  • Part 2: Sensors

    • We introduce sensors as essential components in IoT applications.

    • We learn how to integrate the temperature and humidity sensor into our program and how to read the sensor values continuously and make use of them.

    • We introduce asynchronous code and callback functions as a means to deal with sensors.

  • Part 3: Input Devices

    • We add the LED button to our set of devices and learn how to use it in our application.

  • Part 4: Wireless Data Transfer

    • We introduce devices that utilize wireless technology like Bluetooth and NFC to communicate.

  • Part 5: Human Input Devices

    • Touch display

  • Part 6: Software Prototype (Examination)

Learning Objectives

  • Know, understand, and apply essential concepts of programming, especially with focus on programming with physical devices such a sensors and actuators.

  • Write programs with Python that integrate different hardware devices.

  • Know the basics of Internet of Things (IoT) and what applications exist for it.

Code in Action

You can click through all live examples from this course by opening the following website:

Concept

Inverted classroom

This course is designed to be self-taught. You should be able to work through the lessons, read the articles, watch the videos, and most importantly: do the exercises. At the end of all lessons, you should be able to successfully pass the final app project.

Students at the University of Applied Sciences in Osnabrück, for whom this course was created, are invited to join the weekly 180-minute sessions during the summer term (March - June). The sessions will not be in a classic lecture style, but rather follow an inverted (or flipped) classroom approach. This means we won't introduce new concepts during these sessions - the material on the course's website should cover about everything we need. Instead, the topics of the sessions are brought forward by the students through self-studying of provided material. The time during the sessions is reserved for questions, discussions, and the presentation of solutions for the exercises. To prepare for the sessions, the topics to discuss are collected up front, transparent to everyone.

Learn programming by doing

Although learning to program and create digital solutions is the main goal of this course, we won't do a formal introduction of programming with theoretical input upfront. Instead, we'll quickly dive into the application of building something useful with small electronic hardware devices that we can program. Along the way, we introduce the concepts of programming step by step. We see programming as a means to build something useful with a computer, and not as an end in itself.

Prerequisites

It is helpful to have a basic understanding of the Python programming and how to build simple programs with it. If you successfully passed the mandatory module Building Solutions with Digital Technology, you should have the required background. If not, you can find all material for self-studying here [TODO: Insert link].

Last updated

Was this helpful?