Exam Review 2 Chapter 5 9 CS 211

  • Slides: 15
Download presentation
Exam Review 2 Chapter 5 – 9 CS 211 November 05, 2007, CS Dept,

Exam Review 2 Chapter 5 – 9 CS 211 November 05, 2007, CS Dept, MHC

In-class Exam 2 • • Wednesday 11: 00 am – 12: 15 pm Open

In-class Exam 2 • • Wednesday 11: 00 am – 12: 15 pm Open books, open notes, but not open neighbors Coverage: chapter 5 – chapter 9 Questions: – Short-answer questions – Multiple-choice questions

Chapter 5: Linked Lists • • Node Class (Ex 1 -12) Linked List Toolkit

Chapter 5: Linked Lists • • Node Class (Ex 1 -12) Linked List Toolkit (Ex 13 -25 ) The bag Class with a Linked List (Ex 26 -35) The sequence class with a Linked List (Ex 36 -40: please refer to assignment 4) • Comparison of dynamic arrays, linked lists and doubly linked lists (Ex 41 -46)

Chapter 6: Templates, Iterators and STL • Template Functions and Template Classes – for

Chapter 6: Templates, Iterators and STL • Template Functions and Template Classes – for code that is meant be reused in a variety of settings in a single program – Sections 6. 1 -6. 2 • Iterators – step through all items of a container in a standard manner – Sec. 6. 3, 6. 5, 6. 6 • Standard Template Library – the ANSI/ISO C++ Standard provides a variety of container classes in the STL – Section 6. 3

All you need to know about Templates • Template Function – a template prefix

All you need to know about Templates • Template Function – a template prefix before the function implementation – template <class Item 1, class Item 2, . . . > • Function Prototype – a template prefix before the function prototypes • Template Class – a template prefix right before the class definition • Instantiation – template functions/classes are instantiated when used Better Understanding of classes and functions

Iterators (Sec. 6. 3, 6. 5, 6. 6) • We discussed how to build

Iterators (Sec. 6. 3, 6. 5, 6. 6) • We discussed how to build an iterator for the linked list • so that each of the containers can build its own iterator(s) easily • A node iterator is an object of the node_iterator class, and can step through the nodes of the linked list

Linked List Version the bag Template Class with an Iterator • Most of the

Linked List Version the bag Template Class with an Iterator • Most of the implementation of this new bag is a straightforward translation of the bag in Chapter 5 that used an ordinary linked list • Two new features – Template class with a underlying type Item – iterator and const_iterator – defined from node_iterator and const_node_iterator, but use the C++ standard [. . . ) left inclusive pattern

Standard Template Library (STL) • The ANSI/ISO C++ Standard provides a variety of container

Standard Template Library (STL) • The ANSI/ISO C++ Standard provides a variety of container classes in the STL – set, multiset, stack, queue, string, vector • Featured templates and iterators • For example, the multiset template class is similar to our bag template class • More classes summarized in Appendix H

Chapters 7/8 Stacks and Queues • Stacks and LIFO(Read Chapter 7, esp. 7. 1

Chapters 7/8 Stacks and Queues • Stacks and LIFO(Read Chapter 7, esp. 7. 1 and 7. 3) – Self-Test: 1 -5, 13 -18 • Queues and FIFO (Read Chapter 8, esp. 8. 1 and 8. 3) – Self-Test: 1 -5, 10, 18 -21 • Priority Queues (Read Section 8. 4) – Self-Test: 25 -27 • References Return Values (Read Section 8. 5 and p. 314 in Chapter 6) – Self-Test: class note of Lecture 12

Chapter 9 Recursive Thinking • Recursive Functions (Section 9. 1) – Recursive Calls and

Chapter 9 Recursive Thinking • Recursive Functions (Section 9. 1) – Recursive Calls and Stopping Cases – Activation Record and Run-Time Stack – Self-Test: Exercises 1 -8 • Reasoning about Recursion (Section 9. 3) – Infinite Recursion and One Level Recursion – Ensure no Infinite and Correctness • Applications of Recursion(Optional : Section 9. 2)

Testing and Debugging • Testing: – The goal of testing is to find errors.

Testing and Debugging • Testing: – The goal of testing is to find errors. – Black-box testing • Test cases are developed without regard to the internal workings • Test cases equivalent categories • Check boundary values: “Off by 1” errors – White-box testing • Exercises the internal structure and implementation of a method. • Ensure every path through a program is executed at least once. Note: expected output for each test should be established prior to running the test.

More on Testing • Unit testing – Create a test case for each module

More on Testing • Unit testing – Create a test case for each module of your code (method) • Integration testing – Previously tested modules are now tested as a collection. • System testing – Test the entire system – Alpha and beta tests. . Usually prior the formal release of a software product

Debugging • Debugging – Locating and correcting run-time and logic errors from your programs.

Debugging • Debugging – Locating and correcting run-time and logic errors from your programs. • Debugger – A software program that permits developers to observe the execution of a program. – Obtain detailed info: values of variables, states of objects …

More on Debugging • Simple debugging with print statements – Periodically print variables’ value

More on Debugging • Simple debugging with print statements – Periodically print variables’ value of objects’ string representation. – Print other types of useful info • How far my code got before it died? – Keep tracking of parameter values, esp. recursive functions • Debugging Concepts

More on Debugging • Simple debugging with print statements • Debugging Concepts – –

More on Debugging • Simple debugging with print statements • Debugging Concepts – – – Set one or break points Print the value of a variable or a object Step into or over a method Execute the next single statement Continue execution Other additional features • Debuggers: jdb (JDK), gdb(GNU)