Comprehension Flashcards

1
Q

program comprehension

A

reading code.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

how do experts answer questions?

A

experts use prior knowledge that they have about architecture, design patterns, and the problem domain a program is built for to know what questions to ask and how to answer them.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

how do novices answer questions?

A

novices use surface features of code, which leads them to spend considerable time reading code that is irrelevant to a question.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

data dependencies

A

where a variable is used to compute something, what modifies a data structure, how data flows through a program, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

control dependencies

A

which components call which functions, which events can trigger a function to be called, how a function is reached, etc.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cognitive Dimensions of Notations framework

A

lays out some of the tradeoffs in programming language design that result in these differences in comprehensibility.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

consistency (dimension of the cognitive…. framework)

A

refers to how much of a notation can be guessed based on an initial understanding of a language.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

low-consistency language

A

JavaScript, because of operators like ==, which behave differently depending on what the type of the left and right operands are.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

high-consistency language

A

Java, == is only ever valid when both operands are of the same type.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Encapsulation through

A

data structures leads to better comprehension that monolithic or purely functional languages

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Declarative programming paradigms (like the JavaScript view framework React) have

A

greater comprehensibility than imperative languages

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

In general, languages that are statically typed result in

A

fewer defects, better comprehensibility because of the ability to construct better documentation, and result in easier debugging.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

dynamic languages like JavaScript and Smalltalk show that

A

the dynamic features of these languages aren’t really used all that much anyway.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly