There are no official course prerequisites. But the assignments and the final project will require building web-based user interfaces, so some fluency in programming is needed. Web programming skills are a plus, but not required. The first 2-3 weeks of the course will include tutorials on HTML, CSS, and JavaScript.


Here's a breakdown of how the grading will work:
  • Design Project: 50%
  • Assignments: 20%
  • In-class activities and participation: 20%
  • Studio participation: 10%
Rubric-based grading: Most assignments and project milestones will be graded based on a set of rubrics, which are designed by course staff to best capture the learning objectives of an assignment. But please keep in mind that design work is inherently subjective.

Self and peer assessment: Metacognition is an extremely powerful way to learn, and self- and peer-assessment offer great opportunities for metacognition. You'll be asked to assess yourself, as well as your teammates after some project milestones.

Class attendance: As you come to each class, course staff will hand out a unique code to be used for the day. You need to insert that code in your nanoquiz submission, which will verify that you came to class that day in person.

Studio attendance: It's mandatory. Your TA mentor will keep track of your attendance and reflect it on your participation grade.

Nanoquiz and in-class activities: You'll get to see your attendance and nanoquiz grades after class. 5 lowest grades will be removed in your final grade. This covers all lateness and absence cases, so use them sparingly. If you have a special situation (e.g., medical, family) regarding your attendance, please talk to course staff.

Late policy: No late submissions are allowed for the project. For individual assignments, you'll lose 10% for each late day. Submissions will be accepted until three days after the deadline. No submission automatically gets a 0.

Academic Integrity and Collaboration

You may discuss assignments with others, but you should always give credit and be intellectually honest.

For all individual assignments, you should write the solution entirely on your own. Sharing or seeing other students' solutions (written material or code) is not allowed. If you discussed the assignment with anyone, you should explicitly list them in your report.

For programming assignments, you may use third-party libraries, but you should give proper attribution. If the assignment asks you to implement a particular feature, you should create your own version.

For teamwork, you should try your best to contribute to your team's success and actively collaborate with your teammates. Making no or minimal contribution for any given milestone is problematic and can cause significant damage to your team. If that is the case, please report to the course staff and we will make appropriate adjustments to the team and grading, which might sometimes involve re-assignment of teams and individual grading.

Failure to adhere to these policies may lead to serious penalties, including an F in the course and reference to the departmental and university committee.

Design Project

A major part of the course is for you to design an interactive prototype that is carefully catered to your target users. This will be done in a team of 3-4 students.

How can I form a team?
While we want to give total freedom to students in team formation, (1) students tend to work with friends who are similar to them in terms of preferences and skillsets, and (2) students with no existing ties might find it difficult to find teammates. We will give you some freedom, but there might be some requirements enforced. More details will be announced once we have a final class roster, because we need to know the class size and composition for a smooth team formation process.
I'm worried my course grade will depend on my team members.
To some extent, yes. You'll be doing fewer and fewer things alone in your career, and working in teams and managing team dynamics is something you'll hopefully learn in this course.
Some members of my team are not contributing.
Whlie we won't be tracking detailed levels of contribution of each member, we will certainly penalize cases where some members made no or signficantly less contributions than the other teammates. See "Academic Integrity and Collaboration" for details.


There is no official textbook. We will mix various resources that best explain the core concepts in human-computer interaction.

This doesn't mean that there aren't great books. Here's a short selection of books we recommend:


Do I have to come to studios?
Yes, studio attendance is mandatory. Please do not take the class if you cannot come to evening studios.
Will there be an attendance check?
Each class will start with a quick nanoquiz, which asks simple questions about what you read or watched before coming to class. These questions will be extremely simple and easy -- more like an attendance check rather than problem solving.
I'm not a CS student. Can I take the course?
Yes, as long as you meet the prerequisites.
I'm a gradudate student. Can I take the course?
Unfortunately, no. Please check out grad-level HCI courses.
Can I audit the course?
Please talk to Prof. Kim in person during the first week of class.
What's the course load like?
This will be a course that will have reading / video materials for every class, weekly milestones for your projects, and a few assignments throughout the semester. Please expect a continuous workload. On the positive side, since there are no big deadlines or exams, you're not likely to pull an all-nighter. Overall, we expect the total workload to be equivalent to other 3-unit courses.
The course seems to require active participation during class, but my English isn't quite good. Maybe I shouldn't take it?
We recognize that a vast majority of students won't be comfortable with speakinng English. But active participation isn't really about how good your English is. It's more about your engagement with the class material. We will also try to lower the partipation barrier for students with low English fluency.
How do I learn more about HCI research happening on campus?
We have a wonderful on-campus community of HCI researchers called HCI@KAIST. It features 20+ labs across multiple departments. Please check out the website for more information.