Human-Centered Programming Topic of Spring Special Course
A spring ’20 special topic course taught by Peter-Michael Osera is the intersection of his main research area — programming language theory — and a research area in which he has recently discovered an interest — human-computing interaction (HCI).
Traditionally, the study of programming languages lies at the intersection of systems and logic. When we study programming languages, we’re interested in proving mathematical properties of programs, such as correctness and complexity guarantees. But because of their generality, a programming language is the ultimate interface to a computer. However, comparatively little has been done to understand languages as an interface and to rigorously design and assess languages and development tools with usability in mind.
CSC 395 Human-Computing Interaction and Programming begins to address these issues by studying programming languages under the lens of HCI. In particular, the basic tenants of HCI will be introduced: cognitive theories that inform effective design principles as well as the needfinding, prototyping, and evaluation loop that constitutes rigorous, effective design. The course is designed around a semester-long project where students will apply these concepts, and it will equip students with the tools to begin answering questions such as:
- What kinds of tools, tutorials, and other kinds of support would help a beginner learn how to program?
- Do some programming languages help developers write better programs?
- Is Racket a superior learning language to Java?
- Is my favorite programming language the best programming language out there?
Prerequisite for this course is CSC 207 Object-Oriented Problem Solving, Data Structure, and Algorithms.