ECE CK801 Advanced Programming Techniques - S25-26

Logistics

Lecture

See schedule here

Lab

See schedule here

Instructor

Georgios Bouloukakis

  • Office Hours: Tue 15:00 - 16:00, Wed 11:00-12:00

Course Description

The aim of the course is to introduce programming embedded device drivers to interface directly with hardware, sensor deployment and programming using Raspberry Pi. It also covers software overlay architectures, middleware-layer protocols such as MQTT and CoAP, and the design of APIs (RESTful) for data exchange. The course emphasizes techniques for data processing, the implementation and deployment of virtual sensors, and context-aware data modeling to adapt system behavior. Additionally, students will learn to build real-time interactive data visualization dashboards and deploy containerized applications on Raspberry Pi or edge/cloud nodes using Docker. The course concludes with a comprehensive project involving the design and implementation of an end-to-end IoT system.

This year, students will implement a real-life Smart Mailbox.

After this course, you should be able to:

  • Program device drivers to interface with hardware.
  • Deploy and program sensors on Raspberry Pi for data acquisition.
  • Implement IoT middleware systems and clients using MQTT and CoAP on Raspberry Pi.
  • Design APIs (e.g., RESTful) to expose and exchange sensor data.
  • Apply data processing techniques such as filtering and event detection on sensor data.
  • Develop and deploy virtual sensors using sensor data fusion on Raspberry Pi or Edge/Cloud platforms.
  • Model and program context-aware behavior for adaptive IoT systems.
  • Build interactive dashboards for real-time sensor data visualization.
  • Deploy containerized IoT applications on Raspberry Pi and Edge/Cloud nodes using Docker.
  • Design and implement an end-to-end IoT application combining sensor programming, middleware, data processing, visualization, and containerized deployment.

Deliverables and Grading

What Grade % When
Lab Assignements 15% Every week
Project 55% TBD
Final Exam 30% TBD
Lecture and Lab Participation up to 10% Every week

Course Policies

  • Collaboration: You are encouraged to do your project in groups of two.

  • Project Submission: Project slides and code will be submitted on eclass. More details here.

  • Q & A: I encourage you to send your questions by email.