WES 237A - Intro to Embed Sys Des - Weibel [WI25]
Slides, Recordings and Handouts
WES 237A - Introduction to Embedded System DesignInstructor: Prof. Nadir Weibel, weibel@ucsd.edu TA: Chen Chen, chenchen@ucsd.edu Classroom and Lab: CSE B250 |
|
Fun Fact: This background course image is generated by recent text-to-image generative AI with prompt: "a background image for introduction to embedded system design class". If you want to learn more about how it works, feel free to refer to this paper. |
Course Description:
WES 237A - Introduction to Embedded System Design - is a Masters of Advanced Study course in the Wireless and Embedded Systems (WES) program.
The course provides an introduction to embedded systems that stresses practical, hands-on experience
with wirelessly connected embedded systems. Students utilize state-of-the-art tools to create novel
embedded systems utilizing the PYNQ Z-2 board, and a range of Internet of Things (IoT) sensors and wireless devices.
The course teaches aspects of hardware and software architectures, peripherals and on-board
communication protocols, hardware and software input/output interfaces, and real-time constraints, combining these concepts with a close coupling with the ARM architecture and various synthesized hardware blocks.
Students build their knowledge and experience through five labs that culminate in a final IoT project that will allow them to build a working system based on a variety of sensors and I/O components.
Learning Objectives
After successfully completing this course, a student will have:
- Knowledge of embedded systems, peripherals, and communication protocols.
- Expertise in C-based coding of ARM architectures utilizing a variety of soft-IP cores and interfaces.
- Familiarity with the Xilinx Zynq SoC architecture and tools necessary for the development of its
embedded core, including the Python-based Jupyter interface - Experience working with, and coding for, wirelessly connected embedded systems
- An understanding of the real-time tradeoffs of implementing functionality in software vs hardware.
Instructional Team
- Prof. Nadir Weibel (Instructor) is a Professor in the Computer Science and Engineering Department, the Associate Faculty Director of the UCSD Design Lab, and the head of the Human-centered eXtended Intelligence Lab. His expertise is mostly in Ubiquitous Computing and Software Engineering and in the application of Human-Centered Design to the creation and development of novel physical-digital systems that can be deployed to solve current societal problems.
- Chen Chen (Teaching Assistant) is a Ph.D. Candidate in Computer Science advised by Prof. Nadir Weibel. He is affiliated with the Department of Computer Science and Engineering, The Design Lab, as well as Human-Centered eXtended Intelligence Lab. He was a former researcher at Adobe Research, Microsoft Research and Carnegie Mellon University. His research focus on Human-Computer Interactions, Accessibility, AI-powered Creativity Support Tools, and Mobile Sensing Systems. His dissertation focuses on enhancing future document interaction experience by leveraging eXtended Reality, Conversational Voice Assistant and Generative AI. His past works have been recognized by the ACM Best Poster Award, Qualcomm Innovation Fellowship (Finalist), and Adobe Research Fellowship (Finalist). He received a M.S. in Electrical and Computer Engineering from Carnegie Mellon University, and a B.Eng. in Electrical and Electronic Engineering from The University of Nottingham in the UK.
Class Schedule
The course is held in-person during the Winter Quarter and is offered every other week on alternating Fridays and Saturdays from 9am –12.15pm and 1.30pm-4.30pm.
- Friday 1/10/2025 (Lecture and Lab in CSE B250)
- Saturday 1/25/2025 (Lecture and Lab in CSE B230)
- Friday 2/7/2025 (Lecture and Lab in CSE B250)
- Saturday 2/22/2025 (Lecture and Lab in CSE B270)
- Friday 3/7/2025 (Lecture and Lab in CSE B250)
Lectures will be in the morning 9 am - 12.15 pm with a 15min break.
A lunch break is scheduled from 12.15 pm - 1.30 pm.
Labs will be held in the afternoon 1.30 pm - 4.30pm.
The Final Exam consists of presenting a final project and will be scheduled on Saturday 3/15/2025, 9am - 12.30pm.
Meals
Readings and Resources
We will complement the content presented in the class with several readings and external resources.
- Lee, Edward Ashford, and Sanjit A. Seshia. Introduction to embedded systems: A cyber-physical systems approach. MIT Press, Second Edition, 2017
- PYNQ_Workshop for v2.6
- Python Productivity for Zynq (PYNQ) - Documentation
- Commonly Used Linux Command
For our thread and process lab (lab 2), we recommend on reading following book chapters borrowed from UCSD's CSE 120 class (undergrad operating system) class
For our networking lecture, we will use materials from these resources
- Computer Networking _ A Top Down Approach, 7th.pdf.
- Hsien Wei, A Primer to Computer Networking Mar 13, 2020, Medium
Details on assigned chapters and pages from these readings can be found on the schedule at a glance below
Grading, Assignments, Lab Reports and Reflections
We expect students to work in pairs for the duration of the quarter. While teamwork is required, we expect every single student to produce their own code, reports, and reflection.
In order to evaluate students, the course is based on three elements:
- Weekly Assignments (60%): for every course week (for a total of 5 weeks) students will be expected to submit the assignments that are published below and in the Assignment section of Canvas. For each assignment, students need to submit
- a link to their code in their GitHub repository
- a description of their step-by-step process in resolving their assignment
- a video demonstrating the working system
- Lab Report and Reflection (15%): after every lab (for a total of 5 weeks) students will be asked to submit a report of their work during the Lab as well as answers to a Lab Reflection "Quiz" that will gauge their personal engagement and growth.
- Final Project (25%): after Lab 5, students will be asked to work on a personal project that they will have to present during the final exam day. The final project will be evaluated by the instructor team based on the provided rubric.
Office Hours
We will hold office hours in person on campus
- Prof. Nadir Weibel will hold office hours on Fridays of the "off week". Office hours will be in his office, CSE 3224, noon - 1pm.
- Chen Chen will hold office hours every Saturday from 11am to noon at DIB 306 (if there is no lab).
If you cannot make it in-person, please send us an email/Canvas DM. We will open a Zoom channel during office hours.
You are also encouraged to post your questions on the Discussion channel of the Canvas. The discussions thread could also be helpful for other fellow students. For private discussion, please send us direct message using the Canvas DM features. Each direct message will be forwarded to our email, while keeping a copy in Canvas for better tracking in the future.
Transportation and Parking
There are plenty of ways for transportation and commuting to CSE building (classroom/lab), Jacobs Hall (collecting materials), as well as the Design and Innovation Building (office hours):
- Bus Stop: the closest bus stop is Gilman Dr/Mayer Dr and Gilman Dr/Mandeville Ln.
- Trolley: the closest trolley stop is UCSD Central Campus station.
- Parking: please refer to this page for the details regarding parking.
Slides, Recording and Handouts
Lecture and Labs slides, recordings of the lectures, and handouts are available on this dedicated page.
Schedule at a Glance
Course Summary:
| Date | Details | Due |
|---|---|---|