Course Description

User interface design, implementation, and evaluation: user-centered design methodologies, windowing systems, I/O devices and techniques, event-loop programming, user studies. Programming projects.

Teaching Staff


Debaleena Chattopadhyay   |   debchatt   |   |

Teaching Assistant

Ja Eun Yu   |   jyu86
Hasti Sharifi   |   hshari3

Course Information

Credit Hours 3 (undergraduate hours); 4 (graduate hours)
Class Time Asynchronous
Class Location Online
Instructor's Office Hours By appointment (send a note on Piazza)
Ja Eun's Office Hours Mon 2 — 3 pm online via Zoom   |   Tue 2 — 3 pm at SEL-W 1032   |   Wed 1:30 — 2:30 pm at SEL-W 1032
Hasti's Office Hours Tue 2:30 — 3:30 pm at SEL-W 1032   |   Thus 2:30 — 3:30 pm online via Zoom
Link to Piazza


CS 342, Software Design, or equivalent software engineering experience, specifically:

  • programming experience in Java, C#, C++, or a similar language (i.e., not only Python and JavaScript);
  • building at least one graphical user interface

General Guidelines to Use the Syllabus

Students are responsible for familiarizing themselves with the syllabus. The instructor is responsible for being responsive to the diverse needs of the enrolled students and making necessary modifications to this syllabus, which is to be treated as a living document.

The course webpage will contain links to readings, videos, general instructions, and the class schedule.

Blackboard will be used to post course grades and assignments. In case of any discrepancies between the course webpage and Blackboard, consider the course page information latest.

Piazza will be used to post announcements, FAQs, general discussion, course-related general queries, and detailed instructions when deemed necessary.

No email policy: Post general doubts publicly on Piazza and private matters anonymously (to classmates). Teaching staff will respond on Piazza. Except for extenuating circumstances and emergencies, students should strictly avoid emailing teaching staff with class-related doubts/inquiries/information.

Students are responsible for keeping themselves updated with class announcements.

Frequently Asked Questions

What programming languages do I need to use for this class?

Programming in this class will be web-oriented and include frontend UI implementation. A complete backend is beyond the scope of this class. For assignements, students will need to use, at the least, HTML, CSS, JavaScript, and Jquery. We will provide learning materials, links to tutorials, and handouts, but not spend class time covering these technologies.

What is the difference between 422U, 422M, and 422D?

This class consists of three versions that meet together and share many assignments:

  • 422U for undergraduate students
  • 422M for masters students
  • 422D for doctoral students

In general, the two graduate versions are supersets of the undergraduate version, but different supersets:

Course content. All three versions cover the same material on UI design, implementation, and evaluation. Students in 422D have additional material on research methods and human-computer interaction (HCI) literature.

Assignments. There are three types of assignments, one-week problem sets (PS1-3), analytics assignments (AS1-3), and research assignmtns (RS1-3).

  • Students in 422U must submit the problem sets (PS1-3).
  • Students in 422M must submit the problem sets (PS1-3) and the analytics assignments (AS1-3).
  • Students in 422D must submit the problem sets (PS1-3) and the research assignments (RS1-3).

Analytics assignments (AS1-3) are a problem set sequence about A/B testing. AS1 will be implementing a B version of a user interface, given an A version. AS2 will be running the A/B test against other users and collecting data. AS3 will be analyzing and writing up the results. Each assignment is designed as a one-week problem set, but AS1 involves implementation which may be challenging depending on each student's background.

Research assignments (RS1-3) are a problem set sequence about replicating a user study from a published conference paper. RS1 will be implementing the user interface technique and the infrastructure to run the test. RS2 will be running the experiment with users and collecting data. RS3 will be running statistical tests on the data and writing up the results. Each assignment is designed as a one-week problem set, but RS1 may involve challenging implementation depending on each student's background.

Group Projects. Students from 422U, 422M, and 422D may work together in the same group for the group project. Each group will consist of four or more members.

Why take this class?

apple introduce macintosh

With computing reaching ubiquity, along with an applications' utility and safety, what has come to foretell widespread technology adoption and user satisfaction is a good user experience. But what is a good user experience? How do we design for usability without dumbing down utility? Why are some systems easier to use, easy to learn, and easy to remember? All computing tools requiring user interaction needs a user interface (UI). The UI is essential in providing good usability and in turn, a stellar user experience. In this class, we will learn how to design and prototype user interfaces from a user-centered approach.

Upon successful completion of this course, students will be able to:

  • Employ usability engineering principles and concepts when building computing tools.
  • Design user interfaces from a user-centered approach.
  • Prototype user interfaces from a user-centered approach.
  • Ideate, sketch, elaborate, and communicate user experiences and interface designs.
  • Use techniques to improve a UI's efficiency, learnability, and accessibility.
  • Understand the basic principles of human error to design UI safety.
  • Evaluate user interfaces using human-computer interaction principles.
  • Conduct heuristic evaluation of user interfaces.
  • Conduct user testing of computing applications.

Course Texts

There is no required textbook. Recommended books:

Class Schedule

Each week will contain assigned readings on a topic. Videos and slides will be posted on that topic. Occasionally synchronous discussion meetings/labs may be scheduled during Mondays and Wednesdays 3:00 pm — 4:15 pm. Students are not required to attend these synchronous meetings —but strongly recommended. All synchronous meetings will be recorded and shared with the class.

All synchronous class meetings will use the following Zoom meeting. (Note this is not for office hours.)

Week Lecture
Class topic
(with linked readings)
Week 1
8/23 —

Welcome and introduction;   slides

Syllabus walkthrough

Intro to usability;   slides

Optional: Norman DOT book chapters

Optional: w3schools

Course Overview

Intro to Usability

Week 2
8/30 —

Class meeting;   slides

Learnability;   slides

Efficiency;   slides

Optional: For Beginners
(Sign in with your UIC NetID and password)

Optional: For Intermediate/Advanced learners



Week 3
9/6 —

Class meeting;   slides

User-centered design;   slides

How to write a good project proposal?;   slides

Optional: For Beginners
(Sign in with your UIC NetID and password)

Optional: For Intermediate/Advanced learners

Recommended: For 422D students

User-centered design

How to write a good project proposal?

For 422D:
Experiment Design
Experiment Analysis

9/8: Group signup due

example 1;  example 2

Week 4
9/13 —

Class meeting;   slides

Prototyping;   slides

Safety;   slides

By popular demand

User Interview do's and don'ts;   slides



9/15: PS1 due

Week 5
9/20 —

Class meeting;   slides

Accessibility;   slides

UI software architecture;   slides

Optional: For Beginners
(Sign in with your UIC NetID and password)

Optional: For Intermediate learners


UI software architecture

9/22: GR1 due

Week 6
9/27 —

Class meeting;   slides

Input;   slides;   files (zip)

Additional example files (zip)

Optional: For Beginners
(Sign in with your UIC NetID and password)

Optional: For Intermediate/Advanced learners

Web apps lab


Week 7
10/4 —

Class meeting;   slides

Intro to user testing;   slides

Optional: The anatomy of sketching

Optional: More sketching examples

JavaScript Lab

Intro to user testing

10/6   10/8: GR2 due
Week 8
10/11 —

Class meeting;   slides

jQuery Lab

Review for mid-term exam

Week 9
10/18 —

Mid-term exam

How to give a good presentation?

10/22: GR3 due
Week 10
10/25 —

Class meeting

Output;   slides

Graphic design and layout;   slides


Graphic Design


10/2710/29: Project videos due (PR1)
Week 11
11/1 —

Class meeting

Heuristic evaluation (Part 1) (Part 2);   slides

Optional: A scenario-based HE example

Optional: Cognitive walkthrough examples

No videos on color and typography
Review readings and use them in GR4 and GR5

Heuristic evaluation



11/1: PS2 due

11/5: AS1 due; RS1 due

Week 12
11/8 —

Class meeting

More on efficiency;   slides

More on learnability;   slides

More on efficiency

More on learnability

11/12: GR4 due
Week 13
11/15 —

More on safety;   slides

Optional: KLM-type analysis

Optional: Advcanced GOMS-type method

More on safety

HCI project showcases from prior classes

11/19: PS3 due
Week 14
11/22 —

Intro to React (part 1);   slides

Review for finals

Intro to React (part 1)

11/24: AS2 due; RS2 due
Week 15
11/29 —

Intro to React (part 2);   slides

Intro to React (part 2)

2021 class project showcase

12/1: GR5 due

12/3: Project videos due (PR2)

12/3: GR6 due; AS3 due; RS3 due

Monday, December 6th Final exam


Before attempting any assignment, students are required to review and understand this course's collaboration policy.

Course Collaboration Policy

Problem sets. Short one-week homeworks including programming or problem-solving. All students (422U, 422M, and 422D) must submit 3 problem sets (PS1—3).

Group project. One semester-long group project with six-part deliverables (GR1-6) and two presentations (PR1-2). Deliverables will include project presentations, demos, or write ups.

Mid-term exam. One mid-term exam containing problem-solving and multiple-choice questions (open notes).

Final exam. One comprehensive final exam containing problem-solving questions (open notes).

Additional problems sets for 422M and 422D students. All 422M students must complete AS1-3 in addition to other assignments. All 422D students must complete RS1-3 in addition to other assignments.

Reading quizzes. Each week's reading material will include some quizzes. They will be graded for effort, not accuracy, and constitute class participation.

Piazza discussions on class topics. Discussion on class topics on Piazza (weekly threads are available) will count towards class participation. You may comment on a peer's post or make a new comment relevant to the week's assigned material. Only meaningful discussion comments will be counted.

Peer evaluation form

When in doubt, always ask the instructor or TA.

Assessment & Evaluation

Problem sets 33%
422U: PS 1-3  |  PS1: 10%;   PS2: 13%;   PS3: 10%
422M: PS 1-3, AS1, & AS3  |  6% each;  AS2: 3%
422D: PS 1-3, RS1, & RS3  |  6% each;  RS2: 3%
Group project 40%
GR 1-6: 5% each  |  PR 1-2: 5% each
Mid-term exam (open notes) 10%
Final exam (open notes) 10%
Class participation 7%
Total 100%


89.5—100 A
79.5—89.4 B
69.5—79.4 C
49.5—69.4 D
0—49.4 F

Letter grades are determined at the end of the semester. The default cutoffs are provided above. These boundaries may be adjusted downwards if necessary because of the difficulty of the assignments, but the boundaries will never be adjusted upwards, so a final average of 90 is guaranteed to be an A. The boundary adjustment is done heuristically, and there are no grade quotas, no grade targets, and no centering of the class on a particular grade boundary.

Assignment deadlines will be posted (and maybe updated) on the course page.

Lateness and Extensions

To give you some flexibility for periods of heavy workload, minor illness, absence from campus, job interviews, and other occasional (but often predictable) circumstances, you may use limited extensions on problem set deadlines, called slack days. Each slack day is a 24-hour extension on the deadline. You have a budget of 10 slack days for the entire semester, which you may apply to any combination of individual assignments (PS1-3, AS1-3, or RS1-3). You can use at most 4 slack days for a given assignment. Assignments more than four days late will not be accepted. Slack days apply only to individual problem sets, not to group work (GR1-GR6 or PR1-PR2). For group assignments, we will grade whatever you have at handin time.

To use a slack day, just submit the assignment late. You DO NOT need to notify the staff. When we grade your assignment, we will see that you submitted late, and dock you the appropriate number of slack days in our records. You are responsible for keeping track of the slack days you’ve used. If you have used up your slack days, or exceeded the 4-day limit for a single assignment, you will need an instructor’s permission for more extension.

We expect that almost all your needs for extensions will be handled by slack. Only truly exceptional, extreme emergency cases will be considered for extensions after your slack days are exhausted. In particular, to receive said extension you will need to convince the staff that all ten of your slack days were used for reasons that would have justified an extension. So use your slack budget wisely. Finally, we want to emphasize that slack days are for emergencies. Plan to submit every assignment on the real due date, and only use a slack day or two if something unexpected comes up last-minute. Do not treat slack days as pre-planned due date extensions. In particular, if you are already using four slack days for an assignment and email us at the end of your fourth day requesting an extension for a fifth day, we will probably turn you down.

Supplementary Materials

This course aims at assisting students to achieve an introductory level of mastery in user interface design and development skills. The course requires a variety of skills, including designing user interfaces, conceptualizing ideas, building computing prototypes, user evaluation, data collection, analysis, and interpretation. Because enrolled students may have different exposure to these different skills, this section lists additional materials that can be helpful to be successful in this course.

This is a fast-paced course, with multi-disciplinary reading materials, and students are strongly encouraged to pro-actively use the supplementary materials (freely available online) as deemed necessary.

Website Available support
Stack Overflow
Your one-stop shop for common coding problems.

Following courses are related to this course:

  • Design Thinking for Innovation
  • Human-Computer Interaction
  • Bayesian Statistics: From Concept to Data Analysis
  • Social Computing
  • Designing, Running, and Analyzing Experiments
  • Interactivity with JavaScript
Helpful courses:
  • Introduction to Video Editing
  • Premiere Pro CC Essential Training (2015)

Guidelines & Policies

Attendance Policy. Class attendance is not always mandatory; however, research indicates that students who attend class are more likely to be successful. You are strongly encouraged to attend every class. Lectures may not recorded and there may not be slides. If you are unable to attend class, you should consider asking a classmate to take notes for you.

Academic Misconduct. All students should aspire to the highest standards of academic integrity. Using another student’s work on an assignment, cheating on a test, not quoting or citing references correctly, or any other form of dishonesty, unauthorized collaboration, or plagiarism shall result in a grade of zero on the item and possibly an F in the course. Incidences of academic misconduct shall be referred to the Department Head and pertinent University officials and repeated violations shall result in dismissal from the program.

All students are responsible for reading, understanding, and applying the Code of Student Rights, Responsibilities and Conduct and in particular the section on academic misconduct. Refer to UIC student affairs.

All students are strongly encouraged to read what constitutes plagiarism here and complete this short tutorial here. You must document the difference between your writing and that of others. Use quotation marks in addition to a citation, page number, and reference whenever writing someone else’s words (e.g., following the Publication Manual of the American Psychological Association).

Cheating. Cheating is an attempt to use or provide unauthorized assistance, materials, information, or study aids in any form and in any academic exercise or environment. A student must not use external assistance on any “in-class” or “take-home” examination, unless the instructor specifically has authorized external assistance. This prohibition includes, but is not limited to, the use of tutors, books, notes, calculators, computers, and wireless communication devices. A student must not use another person as a substitute in the taking of an examination or quiz, nor allow other persons to conduct research or to prepare work, without advanced authorization from the instructor to whom the work is being submitted. A student must not use materials from a commercial term paper company, files of papers prepared by other persons, or submit documents found on the Internet. A student must not collaborate with other persons on a particular project and submit a copy of a written report that is represented explicitly or implicitly as the student’s individual work. A student must not use any unauthorized assistance in a laboratory, at a computer terminal, or on fieldwork. A student must not steal examinations or other course materials, including but not limited to, physical copies and photographic or electronic images. A student must not submit substantial portions of the same academic work for credit or honors more than once without permission of the instructor or program to whom the work is being submitted. A student must not, without authorization, alter a grade or score in any way, nor alter answers on a returned exam or assignment for credit.

Fabrication. A student must not falsify or invent any information or data in an academic exercise including, but not limited to, records or reports, laboratory results, and citation to the sources of information.

Plagiarism. Plagiarism is defined as presenting someone else’s work, including the work of other students, as one’s own. Any ideas or materials taken from another source for either written or oral use must be fully acknowledged, unless the information is common knowledge. What is considered “common knowledge” may differ from course to course. A student must not adopt or reproduce ideas, opinions, theories, formulas, graphics, or pictures of another person without acknowledgment. A student must give credit to the originality of others and acknowledge indebtedness whenever: directly quoting another person’s actual words, whether oral or written; using another person’s ideas, opinions, or theories; paraphrasing the words, ideas, opinions, or theories of others, whether oral or written; borrowing facts, statistics, or illustrative material; or offering materials assembled or collected by others in the form of projects or collections without acknowledgment

Interference. A student must not steal, change, destroy, or impede another student’s work, nor should the student unjustly attempt, through a bribe, a promise of favors or threats, to affect any student’s grade or the evaluation of academic performance. Impeding another student’s work includes, but is not limited to, the theft, defacement, or mutilation of resources so as to deprive others of the information they contain.

Violation of Course Rules. A student must not violate course rules established by a department, the course syllabus, verbal or written instructions, or the course materials that are rationally related to the content of the course or to the enhancement of the learning process in the course.

Facilitating Academic Dishonesty. A student must not intentionally or knowingly help or attempt to help another student to commit an act of academic misconduct, nor allow another student to use his or her work or resources to commit an act of misconduct.

Right to revise. The instructor reserves the right to make changes to this syllabus as necessary and, in such an event, will notify students of the changes immediately.

Grievance Procedures. UIC is committed to the most fundamental principles of academic freedom, equality of opportunity, and human dignity involving students and employees. Freedom from discrimination is a foundation for all decision making at UIC. Students are encouraged to study the University’s Nondiscrimination Statement. Students are also urged to read the document Public Formal Grievance Procedures. Information on these policies and procedures is available on the University web pages of the Office of Access and Equality.

Recording and Copyrights. Audio/Video Recording: To ensure the free and open discussion of ideas, students may NOT record or share classrom lectures, discussion and/or activities without the advance written permission of the instructor, and any such recording properly approved in advance can ONLY be used solely for the student's own private use.

Copyrighted Material: All material provided through this web site is subject to Copyright and Fair Use laws. This applies, but is not limited, to class/recitation notes, slides, assignments, solutions, project descriptions, etc. You are allowed (and expected!) to use all the provided material for PERSONAL use. However, you are strictly prohibited from sharing the material with others in general and from posting the material on the Web or other file sharing venues in particular.

Course Evaluations. Because student ratings of instructors and courses provide very important feedback to instructors and are also used by administrators in evaluating instructors, it is extremely important for students to complete confidential course evaluations online known as the Campus Program for Student Evaluation of Teaching evaluation. You will receive an email from the Office of Faculty Affairs inviting you to complete your course evaluations and will receive an email confirmation when you have completed each one.

For more information, please refer to the UIC Course Evaluation Handbook.

Results for the “six core questions” will be published on the UIC course evaluation website.

Acknowledgement and Share/Reuse Information

Adpated from Prof. Rob Miller's (and collaborators) User Interface Design & Implementation course at MIT. Prof. Debaleena Chattopadhyay is responsible for all the modifications made. This work is licensed under CC BY-SA 4.0.