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.