Course Syllabus
Slides, Recordings and Handouts
WES 237A - Introduction to Embedded System DesignInstructor: Prof. Nadir Weibel, weibel@ucsd.edu TA: Pushkal Mishra, pumishra@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.
- Pushkal Mishra (Teaching Assistant) is a Ph.D. Candidate in the Electrical and Computer Engineering department working at WCSNG Lab. His work is centered on vision-language models for radar sensing and perception, along with advanced multi-modal sensor fusion frameworks that enable LLMs to reason in autonomous driving use cases. He earned his Bachelor's in Electrical Engineering with a minor in Computer Science from IIT Hyderabad, where he specialized in signal processing and machine learning, publishing papers on graph learning and efficient neural network training. He also worked at Texas Instruments on spatial audio algorithms as a Signal Processing Intern.
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/09/2026 (Lecture and Lab in CSE B250)
- Saturday 1/17/2026 (Lecture and Lab in CSE B250)
- Friday 1/30/2026 (Lecture and Lab in CSE B250)
- Saturday 2/14/2026 (Lecture and Lab in CSE B250)
- Friday 2/27/2026 (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/14/2026, 9am - 12.30pm.
Meals
Restaurants: Most of the restaurants on campus support Triton Cash. You can find the list here: https://hdhtcas.ucsd.edu/accounts/triton-cash/discounts.html.
The closest restaurant to CSE is Crafted Café at Franklin Antonio Hall (1st Floor) or at Price Center.
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.
Late Submission Policy
The labs and assignments will be available for submission up to 3 days after the deadline, but with a 10% penalty per day. So if an assignment is 100 points, a one-day late submission will result in the assignment being graded out of 90 points, a two-day late submission will result in the assignment being graded out of 80 points, and so on.
Office Hours
We will hold office hours in person on campus
- Prof. Nadir Weibel will hold office hours on Fridays of the "off week" 12-1pm. Office hours will be online on zoom, please reach out to receive the zoom link.
- Pushkal Mishra will hold office hours after every lab session, i.e. 4:30pm to 5:30pm in CSE B250. He will also host another session on every Tuesday, 12pm to 1pm in CSE B270A and over zoom (https://ucsd.zoom.us/j/9547349345).
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 |
|---|---|---|