What are the five deep questions in computing identified by Jeannette Wing?
What are measures of goodness in computational thinking?
What defines a computational problem?
A problem is computational if it can be expressed sufficiently precisely that it is possible to attempt to build an algorithm to solve it.
What defines a computational thinker?
A computational thinker has the skills to:
What are the drivers of computing?
What would be the result of typing the following into a Python interactive shell?
>>> a = [1, 2, 3, 4, 5]
>>> b = [‘a’, ‘b’, ‘c’, ‘d’, ‘e’, ‘f’]
>>> x = a[:3]
>>> y = b[4:]
>>> z = b[::2]
x references [1, 2, 3]
y references [‘e’, ‘f’]
z references [‘a’, ‘c’, ‘e’]
True or False:
A trade-off between resources such as memory and execution time is often necessary when deciding which algorithm is best for a given task.
True
What are important factors when designing algorithms?
Complete this computational thinking diagram:


Complete this computational thinking diagram:


What is an algorithm?
An algorithm consists of a precisely stated, step-by-step list of instructions.
A problem is computable if it is possible to build an algorithm which solves any instance of the problem in a finite number of steps.
What is an effective procedure?
An effective procedure must terminate and must also solve every instance of that problem.
What is encapsulation?
Encapsulation is about hiding details of an implementation from users to manage complexity.
In computing, will a hierarchy of layers always eventually bottom out at a layer consisting of electronic components?
No.
Electronic components are not the only physical substrate from which computers can be built.
What are the two kinds of abstraction, and how are they different?
Abstraction as modelling is the relationship between a part of reality and a model which represents the interest of this reality.
Abstraction as encapsulation is the relationship between a layer that implements the model (the implementation) and a layer through which users interact with the model (the interface).
Rules of Blackjack:
Complete the following algorithm template for dealing out and playing a hand of Blackjack:
Use the following phrases to fill in the blanks:
When is a problem computable?
What is a computational problem?
A problem is computable if it is possible to build an algorithm that solves every instance of the problem that might arise in a finite number of steps.
A computational problem is one that is expressed sufficiently precisely that it is possible to attempt to build an algorithm to solve it.
What is a computational problem?
When is a problem computable?
A computational problem is one that is expressed sufficiently precisely that it is possible to attempt to build an algorithm to solve it.
A problem is computable if it is possible to build an algorithm that solves every instance of the problem that might arise in a finite number of steps.
What is an abstract data type (ADT)?
An abstract data type (ADT) is a logical description of the data used to solve a problem.
The ADT provides an encapsulation of the data by providing an interface with which the user interacts.
The ADT allows us to develop an algorithm without being concerned with the particular implementation of the underlying data structure.
What is a data structure?
A data structure provides the physical description of the data being used (a list, a table, etc.).
The data structure is encapsulated by an ADT, which defines a set of operations which can be carried out on the data.
What is a decision problem?
A decision problem is a problem stated in a formal language (usually logic or mathematics) for which the answer is yes or no.
What is a decidable problem?
A decidable problem is a decision problem that is computable.
What is an algorithm?
An algorithm is a finite process consisting of a step-by-step list of instructions that should solve any instance of the problem that might arise.
What is computational thinking?
Computational thinking is the skill of understanding and reasoning about algorithms and data structures.