# Cognitive Dimensions of Notations I stumbled across this after asking [[GPT-4]] if [[Cognitive Linguitics]] also studied [[Programming languages]] as I am about to embark on [[2023-03-29 - PROJ - LLM DSL Design Paper]]. I want to study (or rather, read up on what other people have already studied) about how end-users (and programmers) think about programming languages. I used [[Kagi Summarizer]] to summarize the wikipedia entry about: - [Cognitive dimensions of notations - Wikipedia](https://en.wikipedia.org/wiki/Cognitive_dimensions_of_notations) I was skeptical about all this LLM search and summarization, but I think the value is in providing some meat to think about up front, and saving a lot of effort when creating good notes (although we know that friction is what makes people forget). Maybe one interesting approach to this would be to come up with one's snippets and takeaways first, and then juxtaposing them to the output of the LLM. --- - Cognitive dimensions are design principles for notations, user interfaces, and programming languages. - They were originally defined by Thomas R.G. Green and further researched with Marian Petre. - Cognitive dimensions can be used to evaluate the usability of an existing information artifact or guide the design of a new one. - They provide a common vocabulary for discussing many factors in notation, UI, or programming language design. - Cognitive dimensions help in exploring the space of possible designs through design maneuvers. - Thomas Green originally defined 14 cognitive dimensions, including Abstraction gradient, Closeness of mapping, Consistency, Diffuseness / terseness, Error-proneness, Hard mental operations, Hidden dependencies, Juxtaposability, Premature commitment, Progressive evaluation, Role-expressiveness, Secondary notation and escape from formalism, Viscosity, and Visibility. - New dimensions are sometimes proposed in the HCI research field, with different levels of adoption and refinement. - There are four main user activities with interactive artifacts: incrementation [creation], transcription, modification, and exploratory design. - Each activity is best served by a different trade-off in the usability on each dimension. - A design maneuver is a change made by the designer in the notation design, to alter its position within a particular dimension. --- The summarization is a bit poor, it misses the more important points that stick out to me. For example, the fact that design maneuvers is something specific to the topic, and consists of "changes intended to improve the design along one dimension." This seems to be a key technique, while the other summarized points are basically just copying the sentences verbatim out of the article.