CSCI 3907/6907 - Internet of Things - Systems and Security

Posted on January 1, 2020 by Gabriel Parmer

This class focuses on the aspects of system design and security in the Internet of Things (IoT). IoT centers around the tight collaboration between the physical environment, The workload for this class centers around a semester-long project that is programming intensive.

Course Info

Instructors Contact info:

Class Time/Location:

Office Hours:


  1. Register for the class on Piazza.
  2. On Piazza, you will find a link to the course’s github page. You have a lot of reading to do there.
  3. Once the class starts, on Piazza you’ll find a link to the course survey. You must fill this out ASAP. You will receive no grades till you do.

Course Overview

Learning Outcomes

Objectives - In completing this class, students will…

Structure - This class is broken into five main activities: lectures, reading, presentations, project, and peer-review.

  1. Lectures will investigate the core concepts and concerns in the IoT.
  2. You’ll learn how to read research papers, and will provide critiques for them.
  3. Students will perform presentations of these research papers to investigate the cutting edge of IoT research. They are a core component of the class, and require student commitment to successfully present the work.
  4. Projects are conducted in groups of 3 or 4, and focus on the “full-stack” of IoT systems, from the IoT device, to the cloud.
  5. Some classes will be devoted to peer feedback for each project. Your job is to pitch your project, and, more importantly, your technical approach, and to provide feedback for other’s projects.

Direct Instruction and Independent Learning

Each semester, you’re expected to spend at least:

Course Prerequisites and Student Responsibilities


Responsibilities - Students must

Professor and Instructional Staff Responsibilities

You should depend on Gabe for the class to

These can be remembered as “I’m here to make it clear what you should do, what you should know, and what to do if you don’t feel like you know what you’re supposed to do or know”. If at any point, you have concerns about any of these, of if I’m dropping the ball on any of them, please let us know and we’ll do better.

Above all, it is important that this class provides an environment for learning and self improvement. Gabe takes this very seriously, so if it is not adequately serving that purpose, don’t hesitate to let him know why.

Class Experiment

Part of keeping a course “fresh” and successful is trying new things, and keeping the things that work. Given this, the experiment I’m running this year:

Collaborative class policies and material. IoT is immensely diverse, and requires collaboration between developers working in varying fields, and an adaptability to handle unforeseen challenges. This class is structured to mimic that environment:

Thus, the course’s webpage is split between this page, and the course’s github page. The course’s webpage is open for pull requests (PRs). You can propose to change the schedule, the grading policies, and the course material. I’ll decide if a PR should be applied or not, but everyone for the class can chime in on the PR’s discussion on github.

Course Schedule, Grading, and Projects

Syllabus: The schedule and syllabus can be found on the course’s github page.

Grading and deadlines: Most policies are on the course’s github account (thus can be modified via PRs), but the one immutable policy: project, presentation, and reading deadlines are hard. You cannot get any credit for late work.

Projects: The projects will live in the course’s github organization. You must use the github issues and project facilities there. We can discuss exceptions if they are well-motivated.

Course Material

The class’ material is spread across four resources, each of which services a specific purpose:

There are no required books for the class. There is a list of documentation in collaboration/resources on the course’s github page (that you should augment with PRs). However, the project requires equipment. The class will provide some of this equipment, but you might need to augment that if you need parts quickly.

Academic Honesty

Academic honesty centers around

  1. ensuring that you receive credit for the course commensurate with the effort you put in, and the results of your work, and
  2. guaranteeing that if you use resources external to your group, they are clearly attributed.

Academic honesty for paper critiques:

Academic honesty for your project:

I encourage you to share any resources and knowledge you believe might be useful to others in the shared collaboration/resources/ repository. In this way, we will all learn together, and build a strong corpus of IoT knowledge. If you use some of these resources, please attribute them appropriately.

Academic honesty for this class is summarized as: