This course will cover the research and implementation of user interface software. The students will get a comprehensive understanding of all the approaches that have been investigated by researchers and commercial systems for user interface software. This will be of value to people planning to be user interface researchers or implementers, or people interested in learning how to provide user interface frameworks for others. After a quick overview of tools to help with the design of user interfaces, we will concentrate on how to implement the chosen design. Particular emphasis will be placed on user interface software tools, such as frameworks, SDKs, toolkits, windowing systems, interface builders, prototypers, and advanced user interface development environments. In particular, the course will cover toolkits for building phone/tablet/ubiquitous/novel user interfaces, Internet UI frameworks, Service-Oriented Architecture (SOA) and other component frameworks, APIs for UI development such as Xcode for Apple products, Micrsosoft’s Windows SDKs, Swing and Android toolkits for Java, interactive tools such as Visual Basic .Net and Adobe Flash, 2-D and 3-D graphics models for UIs, and various research systems like Amulet, subArctic, Context Toolkit, ConstraintJS, and Papier Mache. Lectures will discuss the fundamental principles behind all of these systems, while showing the historical progression of the ideas from research prototypes to commercial systems. Other topics will include designing an API so it is usable by the target programmers, and how to evaluate user interface tools and frameworks. Today's research topics and open issues in user interface software will be emphasized throughout. See also the list of topics.
This is primarily a MS and PhD level course but advanced undergrads may be admitted with permission of the instructor. Prerequisites are 15-212 or equivalent and considerable programming experience. Experience with object-oriented programming and/or software engineering is desirable. Prior experience with user interface design is not required. Homeworks will involve extensive programming, probably in Java. By the end of the course, you will have built your own modern UI framework for building applications on desktops, smartphones, tablets, embedded devices (e.g., for Arduino) and/or the web, which you might find useful for future projects.
The purpose of this course to develop an understanding of how basic cognitive science becomes an application—or tries to. It is an excellent complement to Human Factors. The course will sample applications stemming from basic research in perception, learning, memory, and cognitive neuroscience, in collaboration with other disciplines. Examples are virtual reality environments, computer-generated navigation systems, cognitive tutors, decision aids, guidelines for eyewitness interrogation, neuro-marketing, and speech recognition and synthesis. No background in psychology is required, as the general topics will be covered along with the applications. The goals are for students to acquire fundamental knowledge of cognitive science and to learn how basic research is applied. As the course progresses, the class arrives at a shared understanding of how promising and relevant research becomes an application, as well as what stands in the way.
This course will consider how new fabrication techniques such as 3D printing, laser cutting, CNC machining and related computer controlled technologies can be applied to problems in Human-Computer Interaction. Each offering will concentrate on a particular application domain for its projects. This year the course will consider assistive technology. This course will be very hands-on and skills-oriented, with the goal of teaching students the skills necessary to apply these technologies to HCI problems such as rapid prototyping of new device concepts. To this end…
Every student in this course will build and take home a 3D printer.
(There will be $400-$500 cost associated with this course to make that possible. Details on this are still to be determined.)
Enrollment is limited and will be by permission of the instructor only. If you are interested, contact the instructor: scott [dot] hudson [at] cs [dot] cmu [dot] edu (scott [dot] hudson [at] cs [dot] cmu [dot] edu).
Applied Gadgets, Sensors and Activity Recognition in HCI
Intermittent: 12 units
This course will cover new techniques and technologies for creating high quality user interfaces. It will consider current work in this area, emphasizing readings from the research literature as well as practical projects involving the implementation of new concepts in user interface software or other technology. Typical topics to be covered might include: advanced interaction techniques, ubiquitous computing, tangible interfaces, mobile and wearable computing, web-based interaction, information visualization, virtual and augmented reality, new input devices, audio, speech, and other new interaction modalities. Specific topics for each year will be chosen from the current research literature.
Machine Learning is concerned with computer programs that enable the behavior of a computer to be learned from examples or experience rather than dictated through rules written by hand. It has practical value in many application areas of computer science such as on-line communities and digital libraries. This class is meant to teach the practical side of machine learning for applications, such as mining newsgroup data or building adaptive user interfaces. The emphasis will be on learning the process of applying machine learning effectively to a variety of problems rather than emphasizing an understanding of the theory behind what makes machine learning work. This course does not assume any prior exposure to machine learning theory or practice. In the first 2/3 of the course, we will cover a wide range of learning algorithms that can be applied to a variety of problems. In particular, we will cover topics such as decision trees, rule based classification, support vector machines, Bayesian networks, and clustering. In the final third of the class, we will go into more depth on one application area, namely the application of machine learning to problems involving text processing, such as information retrieval or text categorization.
This course is for graduate students who will carry out research in domains such as social effects of the Internet, evaluation of interactive robots and agents, and the use of sensors for predicting user behavior in information systems. The course will be run as a lab and seminar involving hands-on practice of skills such as experimentation, web survey design, ethnographic observation, and content analysis. Students will complete a research project in the course. (Formerly 05-899A)
Applied Research Methods — Qualitative
First Mini: 6 units
This mini (6-week) course is for Ph.D. students who are conducting empirical qualitative research. The course is especially but not exclusively designed for those interested in any aspect of technology in groups and organizations (social aspects, design, impact, etc.). The mini will be taught as a workshop with discussion and hands-on exercises and homework each week. Topics in the course will include: interviewing and field observation (including online), ethnographic research and analysis (with emphasis on grounded theory), interview and observational coding using software, descriptive statistics often used in conjunction with qualitative analysis or mixed methods (correlation, Chi Square, Kappa), and writing qualitative papers. In the past, student projects included such topics as how people use social media, responses to interactive robots and agents, collaboration in teams, and use of sensors to understand or change health practices. Students will write a research proposal or a short paper. The intent of the course is not to compete with students’ regular research; often, topics are chosen in conjunction with students’ advisors.
This course does not teach HCI professional methods such as contextual inquiry and design that are covered in Introduction to HCI Methods and in various design courses. This course also does not cover advanced statistical and computational analyses such as text mining. The statistics introduced will help students learn appropriate descriptive numerical data used in qualitative research, show how to organize and prepare data for simple statistical analysis, show how to apply the methods using the JMP graphical statistical package, and instruct on how to describe categorical data in qualitative papers.
This mini (6-week) course is for Ph.D. students who are conducting empirical quantitative research. The course is especially but not exclusively designed for those interested in any aspect of technology (social aspects, design, impact, evaluation, etc). The mini will be taught as a workshop with discussion and hands-on exercises and homework each week. Topics in the course will include: experimental design, questionnaires and surveys, social network analysis, inferential statistics often used in conjunction with quantitative analysis or mixed methods (ANOVA, regression, factor analysis) using JMP, and writing quantitative papers. In the past, student projects have included studies of online communities, lab studies of attention and distraction, and studies using archival data from organizations. Students will write a research proposal or a short paper. The intent of the course is not to compete with students’ regular research; often, topics are chosen in conjunction with students’ advisors.
This course does not teach HCI professional methods such as contextual inquiry and design that are covered in Introduction to HCI Methods and in various design courses. This course also does not cover advanced statistical and computational analyses such as text mining. The statistics introduced will help students learn how to explore quantitative data, how to organize and prepare data for statistical analysis and modeling, how to apply the methods using the JMP graphical statistical package, and instruct on how to describe statistical tests and use graphs.