Teaching

Internet of Things (IoT)

COEN 243 | Fall 2017
Class meeting time and location: Wednesday & Friday 5:10PM - 7:00PM  Bannan Engineering 325

Instructor: Behnam Dezfouli
Email: bdezfouli [AT] scu [DOT] edu
Office: Bannan Engineering, EC 239

Text Book: There is no required textbook.
 
Supplementary Sources
▪ The Internet of Things (The MIT Press Essential Knowledge series), 2015, by Samuel Greengard
▪ Introduction to Embedded Systems: A Cyber-Physical Systems Approach, Lee and Seshia, Second Edition, MIT Press — 2017
▪ The Internet of Things: Enabling Technologies, Platforms, and Use Cases, 2017, by Anupama C. Raman and Pethuru Raj
▪ Internet of Things: Principles and Paradigms, 2016, by Rajkumar Buyya and Amir Vahid Dastjerdi
▪ Designing the Internet of Things, 2013, by Adrian McEwen and Hakim Cassimally
▪ Industry 4.0: The Industrial Internet of Things, 2016, by Alasdair Gilchrist
▪ Computer Networking: A Top Down Approach, 7th edition Jim Kurose, Keith Ross, Pearson/Addison Wesley, April 2016 
▪ Raspberry Pi with Java: Programming the Internet of Things (IoT) (Oracle Press), 2015, by Stephen Chin and James Weaver

Refer to the references at the end of each slide set.

All the lecture slides are provided by the instructor

GitHub: https://github.com/SIOTLAB/Internet-of-Things-COEN-243


Student Evaluation
    ▪ 30 points: Project (presentations and report [by group])
    ▪ 30 points: Midterm Exam (October 27th, 2017 [during the normal class hours])
    ▪ 40 points: Final Exam
Total: 100 points

Note: The exams may include extra credit questions.

Exams
    • 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.
 
Project
    ▪ Grouping: Each student should be part of a group with 3 or 4 members.
    ▪ Proposal: Each group gives a two-minutes presentation before week 5. The demo must show the importance of the project, as well as the methodology and outcomes.
    ▪ Submission: Each group presents their project (10 minutes) at the end of the quarter. In addition to presentation, each group needs to prepare a report (5 pages, IEEE format) and submit all the source files through Camino.
    ▪ Grading: The grading is based on the importance of the project, successful implementation of the project, the quality of the report, the clarity of the source codes, the quality of presentations.
    ▪ Areas: Your project may be relevant to following areas: mobile health, wireless communication, smart home, smart city, sustainability, energy efficiency, industrial automation, machine learning. You may propose any project topic.

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
    ⎯ Applications
    ⎯ Components
    ⎯ Architecture

2. Hardware: Concepts and Platforms
    ⎯ Embedded Processors
    - Instruction Set Architecture (ISA)
    - Memory
    ⎯ Input and Output
    - Analog and Digital I/O
    - GPIO, PWM, UART, SPI, I2C
    ⎯ 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
    ⎯ Bluetooth
    - 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
    ⎯ 6LoWPAN
    - 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
    ⎯ Importance
    ⎯ 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
    - SSL, TLS, MQTT
    ⎯ 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 www.scu.edu/studentlife/about/osl.cfm 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 bguthrie@scu.edu. Reports may be submitted online through www.scu.edu/osl/report or anonymously through Ethicspoint: www.ethicspoint.com or http://stage-www.scu.edu/hr/quick-links/ethics-point

Disabilities Resources
If you have a disability for which accommodations may be required in this class, please contact Disabilities Resources, Benson 216, http://www.scu.edu/disabilities 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.