Fall 2016, 15-110: Principles of Computing

Course Website

This is a course in fundamental computing principles for students with little to no computing background. It covers the following topics:


Fall 2014, 05410/05610: User-Centered Research & Evaluation (UCRE)

Course Website

This course provides and overview and introduction to the field of human-computer interaction (HCI). It introduces students to tools, techniques, and sources of information about HCI and provides a systematic approach to design. The course increases awareness of good and bad design through observation of existing technology, and teaches the basic skills of task analysis, and analytic and empirical evaluation methods. This is a companion course to courses in visual design (51-422) and software implementation (05-430, 05-431). When registering for this course, undergraduate students are automatically placed the wait list. Students will be then moved into the class, based on if they are in the BHCI second major and year in school e.g. seniors, juniors, etc This course is NOT open to students outside the HCI major. When registering for this course, undergraduate students are automatically placed the wait list. Students will be then moved into the class, based on if they are in the BHCI second major and year in school.


Fall 2013, 05633-B/05433-B: User Interface Lab (Section B - GUI)

Course Website

This course is a lab complement to 05-630 that focuses on practice in the skills needed for prototyping and development of simple graphical user interfaces. In this lab rapid development tools such as graphical user interface layout editors will be combined with simple code to create functioning interfaces for a range of practical applications. This course is for HCII Masters, BHCI dual majors, and others with basic programming skills, rather than necessarily a strong programming or Computer Science background.


Spring 2013, 15-112: Fundamentals of Programming and Computer Science

Course Website

A technical introduction to the fundamentals of programming with an emphasis on producing clear, robust, and reasonably efficient code using top-down design, informal analysis, and effective testing and debugging. Starting from first principles, we will cover a large subset of the Python programming language, including its standard libraries and programming paradigms. We will also target numerous deployment scenarios, including standalone programs, shell scripts, and web-based applications. This course assumes no prior programming experience. Even so, it is a fast-paced and rigorous preparation for 15-122. Students seeking a more gentle introduction to computer science should consider first taking 15-110. NOTE: students must achieve a C or better in order to use this course to satisfy the pre-requisite for any subsequent Computer Science course.