95-733 Internet of Things

[ Home | Course Info | Schedule | Course description]


Course Syllabus


Michael J. McCarthy

Office: Hamburg Hall 3015
Phone: (412) - 268-4657
Officer Hours TH 4:30 - 6:30 HBH 3015

Teaching Assistant:

Qingyang Liu
Email: qingyan2@andrew.cmu.edu
Office Hours: Please see Canvas and look under "Pages".



The ability to program is the main prerequisite. 95-712 Object-Oriented Programming in Java would certainly be sufficient. If unsure about your ability, speak with your instructor.

Grading Scale:

97.5 - 100 A+
92.5 - 97.4 A
90.0 - 92.4 A-
87.5 - 89.9 B+
82.5 - 87.4 B
80.0 - 82.4 B-
77.5 - 79.9 C+
72.5 - 77.4 C
70.0 - 72.4 C-


Four programming projects equally weighted (60%).

One of the projects (Project 4) will be chosen and demonstrated by a student team. On Project 4, the number of students in a student team is between 1 and 3. This project requires a demonstration presented to the class. The demonstration will be divided equally among the team members. 

Quiz on readings at start of lecture with low score dropped (10%).

Closed Book Final Exam based on readings, lectures, and programming (30%).


Late Assignment Policy:

You have 7 grace days to spend. This policy is meant

to cover such issues as job interviews, travel and so on. After the seven days are spent

there is a penalty of 10% per day late.

Policy on collaboration:

Unless otherwise noted, collaboration is not permitted. While it is fine to discuss projects with others it is a cheating violation when code is copied or shared. If a student is caught sharing his or her work with another, a failing grade may be assigned for the course. Likewise, if a student uses another's work when completing his or her own, a failing grade may be assigned for the course. In either case, the Dean will be notified. Github submissions and past student solutions are checked. In addition, the exams are designed to test your knowledge and coding skills.

Policy on grading complaints:

Grading mistakes may occur. Please contact the TA who graded your assignment about grading mistakes. It will be up to the TA to handle the complaint. If you are still not satisfied with the TA's grade please contact me immediately. My initial reaction will be to support the TA's grade. In some cases, however, I might agree with the student and ask for the grade to be adjusted. Please make any grading concerns known to the TA immediately. Set up an appointment with the TA and get the matter resolved.

Use of Canvas:

There will be a Canvas site for the course. Grades will be posted there and assignments will be submitted there. We will also make good use of the discussion board. It is far better to post a question to the discussion board than it is to send your instructor or TA an email. Answers posted there are available for all to see. The main site for the course (syllabus, course description and schedule) is this page.

Software Requirements:

The student needs to download and install the most recent IntelliJ Ultimate IDE. Available here.

For server side coding use TomEE PlusAvailable here.

Installation instructions are available here.

Time and place:

Tuesday and Thursday 1:30-2:50 PM HBH 1004

Recommended Text:

Building the Web of Things

By Guinard and Trifa

Available here

Optional Text:

Programming the World Wide Web, Eighth Edition

Robert W. Sebesta, University of Colorado, Colorado Springs

ISBN: 978-0-13-377598-3

Publisher: Addison-Wesley

Learning Objectives:

1. Understand the architectural principles that were used to design the World Wide Web.

2. Design IoT systems using RESTful principles.

3. Describe the differences and similarities between two important meta-languages - JSON and XML.

4. Explore several technologies and standards that play a significant role in the Internet of Things. We will study MQTT, XMPP, CoAP, HTTP, and webhooks

5. Build firmware applications for a microcontroller.

6. Build firmware applications that interact with digital twins on the cloud.

7. Develop web applications that are usable in real time IoT environments.

8. Appreciate the privacy and security issues associated with the IoT.

Good health:

Take care of yourself.  Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress.

All of us benefit from support during times of struggle. You are not alone. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is often helpful.

If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Counseling and Psychological Services (CaPS) is here to help: call 412-268-2922 and visit their website here. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.

If you or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night:

CaPS: 412-268-2922

Re:solve Crisis Network: 888-796-8226

If the situation is life threatening, call the police:

On campus: CMU Police: 412-268-2323

Off campus: 911

Last Update: January 2020. Maintained by mm6@andrew.cmu.edu