icon | cover | coverY |
---|---|---|
lightbulb |
0 |
Programming interfaces are not just for professional programmers and CS majors. With the pervasive spread of computing technology, various programming interfaces have been designed to support different end users (e.g., scientists, artists, journalists) to communicate their intent to computers.
This course introduces students to research topics around the principles and practices of designing user-centered programming interfaces. We will explore and discuss research papers that focus on various design and interaction techniques to support programmers of various backgrounds. We will start by discussing the properties of programming interfaces and understanding programmers from various specialized domains. We will then dive into the topic of usable programming environments, including interactive programming paradigms such as structured editing, programming by demonstration, live programming, and literate programming; collaborative and inclusive programming interfaces that allow programmers to build upon each other's work; interfaces specifically designed for better learning and teaching in computer science. Finally, we discuss how AI is reshaping the future of programming interfaces.