CS 10, Fall 1997
Review Sheet
Outline
General remarks about taking CS10 tests: Your goal is to show me
how much you learned in this course.
Vague answers rarely get much credit.
Be as specific as you can in the time allotted.
Backup assertions with evidence, arguments, and/or examples.
If you cannot answer a question, try to figure out the 'spirit'
of the question and state and answer a similar question.
Keep in mind that partial answers will earn partial credit.
Some Important Ideas
Be able to explain key terms such as (this list is not
exhaustive):
- software, hardware
- algorithm, program
- Turing Machine (TM)
- logic gate, circuit
- assemblers, compilers, interpreters
- CPU, memory, ALU
- Machine language, Assembly language, high-level language
- Function handler, command handler
- Local and Global variables, parameters
- Binary strings, binary numbers, binary codes, ASCII codes
Discussion Topics
- How have computers changed the world we live in?
- What are some reasons to be concerned about the information
revolution?
- What are some reasons to be glad about the information
revolution?
Module 1: History of Computing
Be familiar with major events in the history of computing, including:
- Babbage and the Analytical Engine
- Alan Turing's role
- Eckert, Mauchly & the ENIAC
- The major steps in the evolution of computer hardware & software
(From the ENIAC to the present)
- What historical events led to, or encouraged, advancements in
computing technology?
Module 2: Applications
- Be prepared to identify and describe common computer applications,
such as spreadsheet programs.
- How have computer applications moved beyond the technologies they
were designed to replace?
- How have applications changed the way we think about certain
tasks? For example, how has the development of the word processor
changed the way we think about writing?
Module 3: System Design and User Interfaces
- What is a user-interface?
- What characteristics make a user-interface more user-friendly?
Module 4: Scripting
- Understand and be able to explain how all the scripts in No
Account work.
- Be able to modify scripts to perform some function.
- Be able to write scripts to perform some basic functions.
- What is a message handler?
- What is the difference between a function handler and a command
handler?
- What is the Hypercard object hierarchy? Why is it important?
- What is a parameter? What are parameters used for?
- What is an algorithm? Given a problem, you should be able to write an
algorithm to solve the problem.
Module 5: Programming Languages and Translation
- Know the relationship between binary and decimal numbers,
specifically, how to convert from binary to decimal and from
decimal to binary.
- The PIPPIN Assembly Language: If I give you a copy of the PIPPIN User's
Guide on page 188, you should be able to write and explain small
PIPPIN assembly
language programs.
Specifically, you should know how the control structures (if-then
and looping) can be implemented in such a language.
- Be prepared to give sample instructions in machine language,
assembly language, and a "high-level" language, and to explain
important differences between these types of computer languages.
- What are some examples of high level programming languages?
Module 6: Computer Hardware
- Be able to design a simple circuit using logic gates if given
a logical expression for that circuit.
- Be able to design a circuit of the complexity of a 1 bit half
adder.
- Be able to construct a logical expression corresponding to a given
circuit.
- Given a truth table, be able to construct a logical circuit which
behaves as specified by the truth table.
- Be able to read circuits of the complexity of a latch.
- What is a MUX? What is it used for?
- Be able to construct a truth table for a logical expression.
- What is Von Neumann architecture?
- What is the Program Counter? Instruction register? ALU? CPU? Accumulator?
- What is the fetch-execute cycle?
- What do we mean by an internally stored program?
Module 7: Theory of Computation
- What is a Turing Machine?
- Why are TM's important?
- What is the Church-Turing thesis?
- Discuss the proof that the halting problem is uncomputable.
- Be able to (1) construct simple Turing machines;
(2) provide a high level
description of what a TM does given a set of inputs and outputs
(as in Lab13); (3) determine what a given TM does when given a
set of rules, a start state and an input tape format (the key
here would be to generate sample input-output strings and then
to interpret the transformation they represent).
- What are some uncomputable problems? (your book mentions several
in addition to the halting problem)
Module 8
- What is Artificial Intelligence?
(There are many possible right answers and even more wrong answers).
- List and briefly describe some areas of AI.
- Discuss one way to represent knowledge in a computer.
- Discuss one way that you could make a computer simulate learning.
- What is the Turing Test?
- Be prepared to describe easy and difficult AI problems based
on the discussion in Module 8.
- What is the difference between the embodied approach to AI and
the classical approach to AI? What kinds of problems does each
approach address?
- Are there aspects of intelligence that it would be impossible
for a computer to instantiate? Why or why not?