# About

### Seminar on User-Centered Programming Interfaces

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.​


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://peachlab.gitbook.io/seminar-on-user-centered-programming-interfaces-2024/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
