EECS 493: User Interface Development
The University of Michigan, Winter 2026
For students to gain practical experience with the design, implementation, and testing of user interfaces. This course will present design methods, UI abstractions, and practical examples of tools and languages commonly used in UI development. The course and project will be focused on user-centered research, design, and development process. Significant experience with object-oriented programming is assumed, and experience with web technologies is beneficial. The course will cover core concepts and methods in web programming.
Instructors: Xu Wang <xwanghci@umich.edu>, Vera Liao <veraliao@umich.edu>
FAQ
Q: Can I attend any lecture, and any discussion section?
A: Yes.
Q: Is in-person attendance required?
A: We strongly encourage attending the lectures and discussions in person. However, in principle, we allow attending lectures and discussions asynchronously, which means you will need to fill out the in-lecture/discussion questionnaires within 24 hours of the lecture. We strongly discourage students from taking classes in a remote location or register classes with overlapping schedules. Please note that we will have lectures that REQUIRE in person attendance, such as project showcase. Check out the Participation section for more details.
Q: I am currently enrolled in the "remote" section of this course, how does the attendance policy apply?
The "remote" section is for us to allow more enrollment than the room size. In practice, they are both in-person sections of the same time.
Q: I'm currently on the waitlist. What can I do?
A: The undergraduate advising office manages overrides and enrollment. Please email the staff mailing list, with EECS493 in the email title to be added to Canvas.
Instruction
Lectures will be held in-person and recorded.
Discussions will be held in-person and recorded.
Quizzes will be administered and completed individually on Canvas.
Assignments will be completed individually and turned in on Canvas.
A Final Project will be completed in groups.
Exams will be in-person.
Office hours will be both in-person and online.
Communication
eecs493.org links to all course resources.
Piazza is the course discussion forum, best for technical questions. Please only expect prompt replies between 10am and 6pm ET - IAs/GSIs have lives too, so please leave yourself time to get help if it's needed.
eecs493-w26-staff@umich.edu reaches the course staff, best for questions not appropriate for Piazza.
Individual professor email addresses are best for confidential matters. Please use the email title prefix: “EECS493-Term: " or your email will most likely get lost.
Office hours see course calendar.
Overview
Objectives
For students to gain practical experience with the design, implementation, and testing of user interfaces. This course will present design methods, UI abstractions, and practical examples of tools and languages commonly used in UI development. The course and project will be focused on user-centered research, design, and development process. The course will cover core concepts and methods in web programming.
Prerequisites
The prerequisite is EECS 281.
Substantial experience with object-oriented programming is assumed, and experience with web technologies is beneficial.
Participation
This course consists of 23 lectures, 10 discussions, 4 project showcase / presentation days, a midterm, and a final.
We use in-class surveys to track both lecture and discussion attendance.
Participation: To earn in-person lecture and discussion credit, you must complete the survey 24 hours after the scheduled lecture/discussion time.
Quizzes
Most quizzes will focus on the materials in the last two weeks. The lowest quiz grade will be dropped.
We give everyone two attempts on all the quizzes. After each attempt, you'll see which questions you got wrong, but you won't see the correct answer. You have a second chance to attempt the quiz and get a higher score. The highest score of the two will be kept.
Quizzes will be available on Friday by 5 pm and due by Tuesday at 11:59 pm. Plan to take 20-40 minutes.
Students are not to discuss the quiz with anyone during the time when the quiz is available. This includes clarification questions in Discussion, and certainly not discussing answers or reasoning in Piazza.
We encourage discussion about the quiz after it is finished - that's a great opportunity to learn. While we review the quizzes before posting, we do make mistakes. If we have made a mistake in a question, we can and will correct the grading. But discussing questions should wait until after the quiz period.
Assignments
This course contains 5 assignments. The first assignment is an online training for conducting HCI research, and the remaining four assignments are web programming.
We improve the assignments each semester, so they may change any time before the assignment release date.
Final Project
Follow this link to access the Final Project Spec.
The scale of the project will be what 4 people working for a semester can accomplish. Check out Exemplary Final Projects from past semesters.
You will choose your own team members. You will choose your own projects, but they will be based in a small set of themes (e.g., help people go outside, explore the world, and social with friends) that we pick.
We will have a forum for matchmaking teams, if you don't know people in the class already. The forum will also serve to find team members if you have a project idea you'd like to do.
The project will consist of 5 milestones and a final presentation.
Readings
No textbook is required for this class, though some readings will be assigned for each major section. These will help you get a better sense of the space, and understand more deeply some of the concepts from class.
Grades
Here is the grading breakdown.
| Task | Percentage of Grade | Remarks |
|---|---|---|
| Lecture Participation | 10% |
10% if you complete 80% of class surveys on time
8% if 70%
6% if 60%
0% if less than 60%
|
| Discussion Participation | 5% |
10% if you complete 80% of class surveys on time
8% if 70%
6% if 60%
0% if less than 60%
|
| Quizzes | 5% | Drop the lowest, 2 attempts per quiz |
| Assignments | 25% |
Assignment 1 (2%)
Assignment 2 (5%)
Assignment 3 (6%)
Assignment 4 (6%)
Assignment 5 (6%)
|
| Final Project | 25% |
Milestone 0 (complete/incomplete)
Milestone 1 (5%)
Milestone 2 (5%)
Milestone 3 (5%)
Milestone 4 (7%)
Final Presentation (3%)
|
| Midterm Exam | 15% | |
| Final Exam | 15% |
Lateness
There is no leniency on late quizzes or exams due to scheduling constraints and quiz reviews. Quizzes turned in after the due time and date receive zero credit.
You will have a total of 4 free late days across the 5 individual assignments. These 4 late days will be applied as soon as they happen (cannot be retrospectively used in a different assignment); then 10 points off the assignments each additional day. E.g., if a student's A1 is late for 6 days and got 100, and A2 is late for 1 day and got 95, then this student gets 80 for A1 while using up the late days, and 85 for A2. The rationale is if a student is already late, to encourage them to submit the best work they can do rather than giving up.
For the project, your team will have a total of 3 free late days that do not require in-class project showcases or presentations.
We will only grade the last submission of an assignment or project checkpoint without exception. Re-submissions of an assignment after grades have been released is not allowed, please see the policy below on regrade requests.
Exceptions to this policy (allowed for reasons such as medical or a family emergency) can be arranged by contacting the staff.
Exceptions
Please contact the staff via email to arrange for any exceptions (e.g., medical reasons, family emergencies) to the posted policies. We will discuss and decide each individual exception on a per-case basis.
Regrades
Please check Piazza for individual regrade request forms for the assignments, quizzes, participation, and exams.
The problem will be reviewed by the grader of that problem or quiz first. If you are dissatisfied with the response, you can email the staff, indicating that you are challenging the regrade, and an instructor will review. That's the court of last resort.
You may request a regrade only within one week after the grade is posted in Canvas.
Academic Integrity
We want you to get all the help you need to complete the individual assignments, including working with other students.
You are going to learn the most by writing your own code, and making sure that you understand any code that you work on with others. We may use automatic plagiarism detection software, comparing your code to others in the class, past terms, and examples we can find on-line. If it indicates that you might have copied code from someone else, we will contact you so that we can all understand what went wrong. We'll work with you to get you back on track.
Please do not work with others on quizzes or exams. There's plenty of ways to get help in this course, so let's find a legitimate way to get you the knowledge + grade you want.
We prohibit students from using AI to write large sections of code from scratch. You are allowed to use AI to assist with debugging, check the causes of errors, and learn about syntax. That said, we encourage using the Chrome Dev Tools to debug and inspect code/console output, before using ChatGPT/Claude etc. Ultimately, all work should be your own, and you should be able to explain every line of your code / work fully.
Honor Code [Official]
All students (including LS&A and Engineering) are required to observe the Engineering Honor Code in all assignments and exams. A copy of the honor code can be found at this link. Please make sure that you clearly understand what constitutes cheating. If you are not sure in any specific case, you should ask the teaching staff. The University takes honor code violations seriously, and penalties can be severe.
You are not allowed to share your code with anyone other than your partner.
You are not allowed to make use of project or homework solutions by others, including solutions from previous semesters.
Do not post code on piazza or any other discussion forum. Make sure that you do not upload your code on GitHub public repositories or anywhere else on the Internet.
Any suspected violations of the honor code will be reported.
Accommodations for Students with Disabilities
Students with disabilities that are documented with the Services for Students with Disabilities Office should contact the professor during the first three weeks of class to make appropriate arrangements.