CS10051 Knowledge Summary- Chapter 1 - Paul Durand
Sections 001/002/005/006 - Spring 2007
1. What is the definition of Computer Science? (p.
4)
2. What is the 4-part definition of an algorithm ? Explain each part.
(p. 10-15)
3. What are the three types of primitive operations
we can use to express an algorithm? (p. 5,6)
4. Why it is important to develop
formal algorithms in Computer Science? (p. 8)
5. What is a Computing
Agent? (p. 8)
6. Why is algorithmic problem solving important in Computer
Science? (p. 15)
7. Understand how the Algorithm for Adding Two
m-Digit Numbers works. (p. 7, Fig 1.2)
CS10051 Knowledge Summary- Chapter 2 - Paul Durand
1. What is Natural Language ? Why is it not
suitable for expressing algorithms? (p. 42-43)
2. Why is it not a good idea
to design and write algorithms in formal programming languages, e.g. C, Pascal
and Java? (p. 43-44)
3. What is pseudocode? Why is it a good choice
for designing and writing algorithms? (p. 44)
4. What do we
mean by Sequential Statement? ( in reference to algorithms ). (p. 45)
5.
What are the three basic types of sequential statements used to express algorithms?
Give examples in pseudocode. (p. 45-47)
6. What is the function of
a Conditional Statement in an algorithm? (p. 48)
7. What is the syntax
of the IF...THEN
Conditional Statement? In other words, how is it written in general in pseudocode?(p.
48)
8. What are the semantics of the IF...THEN
statement? In other words, What is the flow diagram? (Algor. Notes 1)
9. Give an example of an IF...THEN
statement.
10. What are the two basic
iterative or 'looping' statements used in writing algorithms?
Describe their syntax and semantics using pseudocode and flow diagrams. What
is the most important difference between these two types of statements? Cite
an example to illustrate this difference.(p. 48-52, Algor. notes 1)
11.What is the Sequential
Search problem? What is the basic idea of the algorithm given in the book
to solve this problem? (p. 54-58) Hint: Telephone number list
12. If we sort
the telephone list alphabetically, we can design a more efficient search algorithm
called a binary search. Discuss in general how the binary search works
and why it is more efficient than the sequential search.
13.
What is the Find The Largest (Smallest) problem? What example does the
book use?(p. 58-63)
14. Explain in general how the algorithmic solution to
the Find The Largest (Smallest) problem proposed in the book works.(p.
63)
15. What is the Pattern Matching problem? What is one of
the examples the book cites? Explain in general how the algorithmic solution
listed on p. 64-69 works.
16. What are three applications of the Pattern Matching
algorithm mentioned in the book or in class?
17. Why is the pattern matching
algorithm in the book considered simple or 'naive' ?
18. What are the 'rules
of thumb' presented in class for designing algorithmic solutions to simple problems?
19. Explain the terms Abstraction
and Top-Down Design. How do these techniques or concepts help us design
algorithms to solve complex problems? Give examples.(p.67)
NOTE: This is a summary of the topics covered in class. Although it is presented as a list of questions, it is not meant to be representative of questions asked on exams in this course. The page numbers refer to the area of the book or supplementary notes in which these topics are discussed.