AC-361: Embedded Programming using C and Rust
Course Description:
This is an introductory course about using the C and Rust Programming Languages on "Bare Metal" embedded systems, such as Microcontrollers. We will start by introducing embedded systems and move on to learn the C++ and Rust programming languages. We'll learn about basic programming concepts using C and Rust, then we will explore key concepts in electronics, microcontrollers, and embedded programming. It is a fast-paced, thorough introduction to programming with C and Rust that will have you writing programs, solving problems, burning your code on microcontrollers, playing with GPIOs, and making things that work in no time.
Specialized Track
Duration
13 Weeks
Course Outline:
Introduction to the Internet of Things and Embedded Systems (Week 1 and 2)
What is the Fourth Industrial Revolution?
What is IoT?
Embedded Systems
Hardware and Software for IoT
Edge and Cloud Computing
The future of IoT is AI
Blockchain in the Internet of Things?
IoT + AI + Blockchain: The Fourth Industrial Revolution has begun
How will Matter change the IoT Infrastructure and address issues
Metaverse and IoT
Mid-Term I: Introduction to the Internet of Things (IoT) Quiz in Week 3
Total Questions: 46, Total Time: 60 minutes
The C Reference Book: The C programming language
Embedded Programming book: Internet of things with ESP8266
Introduction to C Part 1 (Weeks 3B, 4, and 5)
C environment Setup for (Windows, Linux, and Mac OS systems)
Chapters 1-2 of “The C programming language”
Variable names types
Data types and sizes
Constants
Arithmetic operations
Logical and relational operators
Type conversions.
Bitwise operators
Conditional expressions
Programming Assignments will also be given.
C Programming Part 2 (Weeks 6 and 7)
Topics 3 and 4 of “The C programming language”
Control flow statements (else if, loops, switch, break continue)
Function and Program structure(Returning and non-returning, scope rules, Recursion)
Programming Assignments will also be given.
Introduction to Embedded systems Part 1 (Weeks 8)
Basic Electronics and Introduction to microcontrollers
Chapter 1 of “Internet of things with ESP8266”
Arduino IDE installation and env setup for ESP8266
Burning your first code on ESP8266
Project-based Assignments will also be given.
Mid-Term II: C Programming Quiz 1 in Week 9
Total Questions: 62, Total Time: 75 minutes
Introduction to Embedded systems Part 2 (Weeks 9-12)
Chapters 2-5 of “Internet of things with ESP8266”
Reading data from GPIOs. %20you%20are%20referring%20to.
- Controlling LEDs.
- Cloud data logging.
https://tttapa.github.io/ESP8266/Chap16%20-%20Data%20Logging.html
https://iotdesignpro.com/projects/nodemcu-data-logger-to-upload-data-on-webserver
- Controlling a lamp anywhere in the world.
- Interacting with different web services.
Embedded Programming using Rust (Extra Weeks in the Course)
Hardware Requirements:
- Esp8266 (Node MCU)
- Jumper Wires
- Bread Board
- LEDs
- Sensors: (Dht11, ultrasonic sensor, IR sensor)
Program Structure
After completing the first three quarters the participants will select one or more specializations consisting of two courses each.