CSE/ECE 474: Introduction to Embedded Systems- Spring 2023

Instructor: Vikram Iyer (vsiyer [at] cs.washington.edu)
Teaching Assistants: Alex Ching, Zachary Englhardt, Deeksha Prabhu

Lectures: 12:30-1:50, Wed/Fri in MOR 230, Recordings (UW Login required)
Lab and Office Hours: EEB 345

Assignment Submission and Grades: Canvas (UW Login required)

Contact Info: Please use Ed Discussion whenever possible. This is the fastest way to get an answer to your question from the course staff or even others who have had the same issue. The answer to your question is likely to be helpful to others in the class. Feel free to use private messages on the discussion board for questions that contain detailed code or should not be shared with the rest of the class. For other questions, including unexpected emergencies or other personal circumstances, email the instructor directly.

Catalog Description

Introduces the specification, design, development, and test of real time embedded system software. Use of a modern embedded microcomputer or microcontroller as a target environment for a series of laboratory projects and a comprehensive final project. Prerequisite: CSE 143. Offered: jointly with ECE 474;

Prerequisites: CSE 143 Credits: 4.0

Topics

A brief non-exhaustive list of some topics that will be covered in the course. Note that much of the course centers around lab assignments that involve running code on a real hardware culminating in a final project.

Grading

CSE/ECE 474 uses a simple flat-points grading scheme. To calculate your grade add up your points, multiply by 0.01 and that is your base grade. The grade may be adjusted by Prof. Iyer to make the class average reflect overall class performance. All students will get the exact same grade adjustment such that the class mean grade correctly reflects overall learning effort and performance, extenuating circumstances, etc. In the example below -0.1 is an example only. It can be positive or negative.
Assignment Points
C prog 1 20
C prog 2 20
Quiz 15
Lab 1 70
Lab 2 70
Lab 3 70
Lab 4 / Project 90
Midterm 45
No Final
TOTAL 400
Example
Student Points 370
Multiplier (x0.01) 3.700
Class adjustment +0.100
Final Grade 3.800
Official Grade 3.8

Late work policy

Each student gets one late day per individual assignments (total 2x) that can be used on C Programming 1 or C Programming 2. Each lab group gets one late day per lab (total 4x). You can use a max of 2 late days per assignment. Any time past the deadline (e.g. 1 hr) still counts as a whole late day. Weekends count as 1 late day (ex: for an assignment due on Thurs at 11:59 + 2 late days is Sun 11:59). After exhausting your late day allowance or after 2 days, any late assignments will be subject to a penalty of 25% per day. For lab 4 which is due during finals week we cannot accept submissions after the last day of the quarter.

AI policy

AI tools such as ChatGPT and Copilot are dramatically changing software development workflows, and their use in embedded systems is an active area of research. You are welcome to explore using these tools to support your learning and complete lab assignments. However, if you choose to use AI, you must acknowledge this and not represent the work solely as your own. You will also be responsible for learning the content that will be on the in-class midterm, where you will not have access to these tools. When employing AI tools, please include an additional page in your lab report with a detailed discussion that addresses the following points:

Example: Utilization of AI Tools: This section of the syllabus was generated using GPT-4. We chose to use this tool both to illustrate its use case and to expedite the update of the syllabus. We used a prompt that described the main points we wanted the students to describe and received a descriptive text in return. We then asked GPT-4 to convert it into LaTeX code, enabling us to integrate it into the syllabus. After reviewing the result, we considered it a bit lengthy and overwhelming, so we condensed it to three main points. After this manual refinement, we submitted the code back to GPT-4 and had it check for typos.

Interpretation of Results: We read the resulting text and revised it before adding it to the syllabus, ensuring it accurately represented what we intended to convey. This meant we needed a few iterations with GPT-4 to get the result we wanted.

Impact on Learning Experience: Using GPT-4 allowed us to iterate more efficiently on the content of the syllabus without having to worry about typos and grammar, enhancing efficiency. We believe it did not detract from the final goal, which was to contemplate deeply on how these tools should be utilized in class.