Num Date Class Content

1 Mon, 1/13/ 2020 Course Organization and What is "User Interface Software", Overview of UI Software and Tools Slides for Lecture 1 Required Readings: Brad A. Myers. "Graphical User Interface Programming," chapter 48 of Computer Science Handbook -- Second Edition . Allen B. Tucker, editor in chief. Boca Raton, FL: Chapman & Hall/CRC Press, Inc., 2004. pp. 48-1 - 48-29. pdf (This is a revision of Brad A. Myers. "User Interface Software Tools," ACM Transactions on Computer-Human Interaction . vol. 2, no. 1, March, 1995. pp. 64-103. ACM DL Reference)

. Allen B. Tucker, editor in chief. Boca Raton, FL: Chapman & Hall/CRC Press, Inc., 2004. pp. 48-1 - 48-29. pdf Brad A. Myers, Scott Hudson and Randy Pausch. "Past Present and Future of User Interface Software Tools," ACM Transactions on Computer Human Interaction, (Mar. 2000). Volume 7, Issue 1. pp. 3-28. ACM DL Reference. Start on Homework 1 - Editor

2 Wed, 1/15/ 2020 Why are user interfaces hard to design and implement? Slides for Lecture 2 Required Readings: Brad A. Myers. "Challenges of HCI Design and Implementation," ACM Interactions . vol. 1, no. 1. January, 1994. pp. 73-83. ACM DL

Discusses why user interfaces are important, and why they are hard to design and implement.

. vol. 1, no. 1. January, 1994. pp. 73-83. ACM DL Brad A. Myers. "A Brief History of Human Computer Interaction Technology." ACM interactions. Vol. 5, no. 2, March, 1998. pp. 44-54. ACM DL Amusing Reading: Tyson R. Henry, Scott E. Hudson, Andrey K. Yeatts, Brad A. Myers and Steven Feiner; "A nose gesture interface device: extending virtual realities," Proceedings of the fourth annual ACM symposium on User interface software and technology, UIST'1991, Pages 65 - 68. ACM DL or local copy.

X Mon, 1/20/ 2020 Martin Luther King Day; No Classes

3 Wed, 1/22/ 2020 Basic Computer Graphics Slides for Lecture 3 Required Readings: New Foley & van Dam, pp. 25-40, 52-60

old Foley & van Dam, pp. 132-134 (color maps)

These are combined into one pdf (link only works from CMU or with VPN, but also available on Canvas under Course Content)

4 Mon, 1/27/ 2020 Other Output Models: Structured Graphics; Object-Oriented Techniques; Hints for HW2 Slides for Lecture 4 Required Readings: Brad A. Myers, Richard G. McDaniel, Robert C. Miller, Alan Ferrency, Andrew Faulring, Bruce D. Kyle, Andrew Mickish, Alex Klimovitski, and Patrick Doane. "The Amulet Environment: New Models for Effective User Interface Software Development", IEEE Transactions on Software Engineering , Vol. 23, no. 6. June, 1997. pp. 347-365. local pdf or IEEE Explore Ref.

, Vol. 23, no. 6. June, 1997. pp. 347-365. local pdf or IEEE Explore Ref. David S. Kosbie, Brad Vander Zanden, Brad A. Myers, Dario Giuse. "Automatic Graphical Output Management", in Brad A. Myers, editor. The Garnet Compendium: Collected Papers, 1989-1990. Carnegie Mellon University School of Computer Science Technical Report, no. CMU-CS-90-154, August, 1990. pp. 30-43. pdf. Optional Readings: Brad A. Myers, Dario A. Giuse, and Brad Vander Zanden. "Declarative Programming in a Prototype-Instance System: Object-Oriented Programming Without Writing Methods," Proceedings OOPSLA'92: ACM Conference on Object-Oriented Programming Systems, Languages, and Applications. October 18-22, 1992. Vancouver, BC, Canada. SIGPLAN Notices, vol. 27, no. 10. pp. 184-200. ACM DL Reference.

Turn in Homework 1.

Start on Homework 2 - Output

6 Mon, 2/3/ 2020 Constraints 1 Slides for Lecture 6 Required Readings: Brad Vander Zanden, Brad A. Myers, Dario Giuse and Pedro Szekely. "Integrating Pointer Variables into One-Way Constraint Models," ACM Transactions on Computer-Human Interaction . vol. 1, no. 2, June, 1994. pp. 161-213. ACM DL Reference

. vol. 1, no. 2, June, 1994. pp. 161-213. ACM DL Reference Brad Vander Zanden, "An Incremental Algorithm for Satisfying Hierarchies of Multi-way, Dataflow Constraints", ACM Transactions on Programming Languages and Systems, 18(1), January, 1996. pp. 30-72. ACM DL Reference

7 Wed, 2/5/ 2020 Constraints 2 - Guest Lecture by Scott Hudson Slides for Lecture 7 Required Readings: Scott E. Hudson. "Incremental attribute evaluation: a flexible algorithm for lazy update," ACM Transactions on Programming Languages and Systems, Volume 13 , Issue 3 (1991), Pages 315-341. ACM DL Reference

Volume 13 , Issue 3 (1991), Pages 315-341. ACM DL Reference Bjorn N. Freeman-Benson, John Maloney and Alan Borning. "An incremental constraint solver," Communications of the ACM . Volume 33 , Issue 1 (1990). Pages 54-63. ACM DL Reference Optional Readings: Scott E. Hudson, Ian Smith, "Ultra-lightweight constraints", UIST'1996. pp. 147 - 155. ACM DL Reference

8 Mon, 2/10/ 2020 UI Software Models: Lexical-Syntax-Semantics, Seeheim Model, MVC, Design Patterns Slides for Lecture 8 Required Readings: William Buxton, "Lexical and Pragmatic Considerations of Input Structures," Computer Graphics , January, 1983, (17)1, pp. 31-37. (lexical, syntactic, semantic, etc.). html

, January, 1983, (17)1, pp. 31-37. (lexical, syntactic, semantic, etc.). html Glenn Krasner and Stephen T. Pope, "A Cookbook for Using the Model-View-Controller User Interface Paradigm in Smalltalk-80", Journal of Object-Oriented Programming (JOOP). August-September, 1988. vol. 1, no. 3. pp. 26-49. pdf scan at UCI Optional Readings: Mark Green, "Report on Dialogue Specification Tools," User Interface Management Systems, G. Pfaff, ed. Berlin: Springer-Verlag, 1985. pp. 9-20. (Seeheim model)

(Here is a pdf scan of the book chapter, but it is not generally available on the web)

11 Wed, 2/19/ 2020 Model-based tools: Creating the UI Automatically Slides for Lecture 11 Required Readings: Dan R. Olsen, Jr., "A Programming Language Basis for User Interface Management," Proceedings SIGCHI'89 , Austin, TX, Apr, 1989, pp. 171-176. ACM DL Reference

, Austin, TX, Apr, 1989, pp. 171-176. ACM DL Reference Jeffrey Nichols, Brad A. Myers, Michael Higgins, Joe Hughes, Thomas K. Harris, Roni Rosenfeld, Mathilde Pignol. "Generating Remote Control Interfaces for Complex Appliances." CHI Letters: ACM Symposium on User Interface Software and Technology, UIST'02, 27-30 Oct. 2002, Paris, France. pp. 161-170. pdf Optional Readings: Brad Vander Zanden and Brad A. Myers, "Automatic, Look-and-Feel Independent Dialog Creation for Graphical User Interfaces," Proceedings SIGCHI'90: Human Factors in Computing Systems . Seattle, WA, April 1-5, 1990. pp. 27-34. ACM DL Reference

. Seattle, WA, April 1-5, 1990. pp. 27-34. ACM DL Reference Pedro Szekely, Ping Luo, and Robert Neches, "Beyond Interface Builders: Model-Based Interface Tools, Proceedings INTERCHI'93: Human Factors in Computing Systems . Amsterdam, The Netherlands, April 24-29, 1993. pp. 383-390. ACM DL Reference.

. Amsterdam, The Netherlands, April 24-29, 1993. pp. 383-390. ACM DL Reference. Paterno, F., Mancini, C. & Meniconi, S. (1997), "ConcurTaskTrees: A Diagrammatic Notation for Specifying Task Models," in Proceedings of Interact-97 , Sydney, Australia, pp.362-369. pdf

, Sydney, Australia, pp.362-369. pdf S. R. Ponnekanti, B. Lee, A. Fox, P. Hanrahan and T.Winograd. “ICrafter: A service framework for ubiquitous computing environments,” UBICOMP 2001, Atlanta, Georgia, 2001. pp. 56-75. URL

Atlanta, Georgia, 2001. pp. 56-75. URL K. Gajos, Weld, D. “SUPPLE: Automatically Generating User Interfaces,”

IUI'04: Intelligent User Interfaces, Funchal, Portugal, 2004. pp. 93-100. pdf. See also the video.

IUI'04: Intelligent User Interfaces, Funchal, Portugal, 2004. pp. 93-100. pdf. See also the video. Jeffrey Nichols, Duen Horng Chau, Brad A. Myers, "Demonstrating the Viability of Automatically Generated User Interfaces" Proceedings CHI'2007: Human Factors in Computing Systems. San Jose, CA, April 28 - May 3, 2007. pp. 1283-1292. pdf

12 Mon, 2/24/ 2020 Conventional Input Models for Window Managers and Toolkits Slides for Lecture 12

X Mon, 3/9/ 2020 Spring Break, no classes

X Wed, 3/11/ 2020 Spring Break, no classes

X Mon, 3/16/ 2020 CLASS CANCELLED due to Covid-19

19 Mon, 3/30/ 2020 Guest lecture about Flutter: Hans Muller and Dan Field from Google Hans Muller's bio:

Hans is the manager of the Flutter framework team and has been working on the project since it was just a crazy idea. Before the Flutter project Hans worked on Chrome at Google and Adobe, and before that he was the tech lead for the Java Swing GUI toolkit at Sun. Earlier at Sun, Hans built the LispView GUI toolkit for CommonLisp, which was included in a toolkit survey conducted by one Brad Myers. Hans graduated from CMU in 1982. Dan Field's bio:

I'm a software engineer at Google working on the Flutter team. I've worked on platform specific embedding and tooling, core Flutter framework areas such as scrolling and image rendering, as well as build infrastructure, testing, and continuous integration. Before working on Flutter, I worked on mobile and desktop application development, web/front-end development, as well as healthcare data integration (OLTP and OLAP). Slides for Lecture 19 (Google Slides): part 1 and part 2, and local copy (pdf) Video of the presentation Required Readings: https://flutter.dev/docs/resources/technical-overview

https://flutter.dev/docs/resources/inside-flutter Optional Readings: https://flutter.dev/docs/resources/faq

https://www.youtube.com/watch?v=UUfXWzp0-DU - An excellent overview of Flutter's rendering pipeline by Adam Barth, former Technical Lead on the Flutter team

https://www.youtube.com/watch?v=dkyY9WCGMi0 - An excellent overview of Flutter's architecture by Ian Hickson, current Technical Lead of the Flutter team

25 Fri, 4/17/ 2020 Survey of Web Toolkits - guest lecture by Joseph Chang and Nathan Hahn Slides for Lecture 25 (pdf)

Link for video of lecture (on Canvas — class use only) Short bio of Joseph Chang:

I am a PhD student in the HCII and LTI at CMU advised by Niki Kittur. I will talk about a brief history of how programming for the web has changed throughout the years, how these changes enabled us to build different types of interfaces, and factors that triggered these paradigm shifts. My current research focuses on building interactive systems that help people explore, structure, and make sense of online information in complex decision-making scenarios. Short bio of Nathan Hahn:

Nathan is a current PhD student in the HCII also advised by Niki Kittur. His current research revolves around building tools and interface to help individuals manage large collections of web information when they are learning about new topics, leveraging computational techniques to support them along the way. In the past decade, he's built UIs in everything from jQuery to Java to React to iOS and will be focusing on how modern toolkits build upon past lessons to provide a better development experience.

26 Mon, 4/20/ 2020 Tools for Creating Conversational Agents and ChatBots - guest lecture by Toby Jia-Jun Li Slides for Lecture 26 (pdf)

Link for video of lecture (on Canvas — class use only) Short bio of Toby Li:

Toby is a 5th year Ph.D. student at the Human-Computer Interaction Institute, Carnegie Mellon University. He is also a Yahoo! InMind Fellow. His research focuses on designing, implementing, and studying new interaction techniques, multi-modal interfaces, dialog systems, and the underlying AI techniques to empower intelligent agents to interactively learn new tasks and concepts from end users. Toby has published in premier academic venues on interface technologies, groupware, natural language processing, mobile systems, and developer tools (e.g., CHI, UIST, CSCW, ACL, MobiSys, VL/HCC), including two award-winning papers. His work has been supported by NSF, Verizon, and JP Morgan. Examples: DialogFlow, Microsoft Bot Network, Voiceflow, ... Required Readings: Dan Jurafsky and James Martin. Dialog Systems and Chatbots. Chapter of Speech and Language Processing (3rd ed.) https://web.stanford.edu/~jurafsky/slp3/24.pdf

Google: DialogFlow Quickstart Video https://www.youtube.com/watch?v=9aHusGxntPw&list=TLPQMTMwNDIwMjAF_Z9_ZwIbEA&index=1 Optional Readings: Daniel G. Bobrow, Ronald M. Kaplan, Martin Kay, Donald A. Norman, Henry Thompson, and Terry Winograd. 1977. GUS, a Frame-driven Dialog System. Artif. Intell. 8, 2 (April 1977), 155–173. https://nlp.stanford.edu/acvogel/gus.pdf

Toby Jia-Jun Li and Oriana Riva. KITE: Building conversational bots from mobile apps. Proceedings of the 16th ACM International Conference on Mobile Systems, Applications, and Services (MobiSys 2018). http://toby.li/wp-content/uploads/2018/06/TobyLi-MobiSys18-KITE.pdf

27 Wed, 4/22/ 2020 Toolkits for SmartPhones & Other Mobile Devices - guest lecture by Mayank Goel Slides for Lecture 27 (pdf)

Link for video of lecture (on Canvas — class use only) Short bio of Mayank Goel:

I am an Assistant Professor in ISR and HCII at CMU. I lead the Smash Lab (Smart Sensing for Humans Lab) at CMU. Our group focuses on designing, implementing, and testing new sensing systems for immediate, high-impact problems in various domains, including health sensing, technologies for developing world, activity recognition, and novel interactions. Many times solutions in these domains need to be used and evaluated by the end user in their daily lives. Therefore, we collaborate closely with medical professionals, bio-engineers, and designers to develop end-to-end solutions that can be immediately used and evaluated outside the lab environment. We often rely on adding new capabilities to existing sensors and devices. This approach allows us to add various functionalities to our daily-use devices without making any hardware modifications. This work requires expertise in mobile computing, sensing, signal processing, and machine learning. We actively publish in conference venues of three computer science disciplines: Topics: what are some important mobile and cross-platform toolkits to cover? Swift, Xcode, Android Studio, React-Native, ...