Behnam Dezfouli’s Home Page

Santa Clara University

COEN 243 | Fall 2017

Internet of Things (IoT) 

Class meeting time and location: Wednesday & Friday 5:10PM - 7:00PM  Bannan Engineering 325



Behnam Dezfouli

Email: bdezfouli [AT] scu [DOT] edu

Office: Bannan Engineering, EC 239 


Text Book: There is no required textbook.


Supplementary Sources 

Refer to the references at the end of each slide set 


All the lecture slides are provided by the instructor 





Student Evaluation 

Total: 100 points 


Note: The exams may include extra credit questions. 



•    Midterm: The midterm will be a closed-book exam covering all material up to that point in the course. 

•    Final: The final exam will be a closed-book exam, covering material from the whole quarter, with emphasis on the second half of the course. 




Make-up exams: Make-up exams will be offered only if you submit valid documentation. Not knowing the correct date, time or location of an exam are not valid reasons for missing an exam. You will get a zero if you miss the exam and fail to submit valid documentation. Make-up exams are harder as the student has extra time to prepare. 

Grades will be based on absolute scores, and there will be no curving applied. 

If the highest achieved final grade is less than ‘A’, then the final grades will be shifted so that the highest grade will be ‘A’. 

Cheating during an exam results in final grade “F”. 



The outline of this course is as follows


1.    Demystifying the Internet of Things

    Definition and Market




2.    Hardware: Concepts and Platforms

    Embedded Processors

- Instruction Set Architecture (ISA)

- Memory

    Input and Output

- Analog and Digital I/O


    Sequential Software in Concurrent World

- Revisiting Interrupts

- Re-entrance and Thread Safety

    ARM Processors

- Cortex M/R/A

    IoT Devices

3.    Operating Systems

    Motivation and Requirements

    Concepts and Design

- Kernel Design

- Multitasking

- Memory Allocation

    Open-Source Operating Systems

- Contiki: Design, Threads, Power Saving

- FreeRTOS: Architecture, Scheduling, Memory Allocation

    Commercial Operating Systems

4.    Hands-On: Hardware and Operating Systems using Cypress WICED SDK

    Hardware Platforms

    Introduction to Cypress WICED SDK

    GPIO, Interrupts, UART, I2C, PWM

    Threads, Semaphore, Mutex, Queue, Timer

    Appendix: Software Development using Contiki

5.    Wireless Networks

    802.11 (WiFi)

- Physical Layer, MAC, Power Saving, QoS, 802.11n/ac


- Architecture, Radio Link, Power Saving

    Bluetooth Low Energy (BLE)

    IEEE 802.15.4

- Physical Layer, MAC, Power Saving, Frame Format

    IEEE 802.15.4e

6.    Hands-On: Wireless Networks

    Connection to WiFi AP

    IP Address and MAC Configuration

7.    IP Networking and Routing

    Principles of IP Networking

- Routing and Forwarding, Subnet, NAT

    IPv4 Packets

    IPv6: Addressing and Packets


- Architecture, Stack, Compression, Fragmentation

    Routing Protocol for Low-Power and Lossy Networks (RPL)

- Routing, Messages, Metrics

    Transport Layer and Protocols

- Process and Sockets, TCP, UDP

8.    Application Layer Protocols

    Hypertext Transfer Protocol (HTTP)

- Client-Server Model, REST, Message Format

    Constrained Application Protocol (CoAP)

- Observer, Discovery, Message Encoding

    Message Queue Telemetry Transport (MQTT)

- Topics, Connection, Subscribe and Publish Process, QoS

9.    Hands-On: Application Layer Protocols

    Raspberry Pi: Socket Programming

- Sockets, Threads, Timers

    Implementing an Application Layer Protocol using Cypress WICED SDK and Raspberry Pi

- Developing Software for Edge Devices (RTOS) and Server (Linux/JAVA)

- Stream and Packet-Based Communication

    MQTT Project

- Server Setup

- Client Code Development

10.    Security


    Principles of Cryptography

- Symmetric-Key Cryptography, Public-Key Encryption

    Message Integrity and Digital Signatures

- Message Authentication Code, Digital Signature, Public Key Certification

    End-Point Authentication

    Application Layer Security

    Transport-Layer Security


    Network Layer Security

- IPsec and Virtual Private Networks (VPNs)

    Securing Wireless Networks

- 802.11, 802.15.4

11.     Hands-On: Security

    Secure Communication with MQTT Server using TLS







Sexual Harassment and Discrimination  

Santa Clara University upholds a zero tolerance policy for discrimination, harassment and sexual misconduct. If you (or someone you know) have experienced discrimination or harassment, including sexual assault, domestic and dating violence or stalking, I encourage you to tell someone promptly. For more information, please go to and click on the link for the University’s Gender-Based Discrimination and Sexual Misconduct Policy or contact the University's EEO and Title IX Coordinator, Belinda Guthrie, at 408-554-3043 or by email at  Reports may be submitted online through or anonymously through Ethicspoint: or


Disabilities Resources 

If you have a disability for which accommodations may be required in this class, please contact Disabilities Resources, Benson 216, as soon as possible to discuss your needs and register for accommodations with the University. If you have already arranged accommodations through Disabilities Resources, please discuss them with me during my office hours. Students who have medical needs related to pregnancy or parenting may also be eligible for accommodations.  


While I am happy to assist you, I am unable to provide accommodations until I have received verification from Disabilities Resources. The Disabilities Resources office will work with students and faculty to arrange proctored exams for students whose accommodations include double time for exams and/or assisted technology.  (Students with approved accommodations of time-and-a-half should talk with me as soon as possible).  Disabilities Resources must be contacted in advance to schedule proctored examinations or to arrange other accommodations. The Disabilities Resources office would be grateful for advance notice of at least two weeks. For more information you may contact Disabilities Resources at 408-554-4109.


Academic Integrity Pledge 

Santa Clara University is implementing an Academic Integrity pledge designed to deepen the understanding of and commitment to honesty and academic integrity.


The Academic Integrity Pledge states:

"I am committed to being a person of integrity. I pledge, as a member of the Santa Clara University community, to abide by and uphold the standards of academic integrity contained in the Student Conduct Code."


I ask that you affirm this pledge and apply these principles to your work in this class.

Copyright 2017 - Behnam Dezfouli