1 / 15

Exam Review 2

Explore linked lists, templates, iterators, debugging, testing, recursion, and more in C++ programming for exam preparation. Learn about STL, stacks, queues, and error handling techniques.

larryramsey
Download Presentation

Exam Review 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Exam Review 2 Chapter 5 – 9 CS211 November 05,2007, CS Dept, MHC

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

  3. 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)

  4. 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

  5. All you need to know about Templates • Template Function • a template prefix before the function implementation • template <class Item1, class Item2, ...> • 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

  6. 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

  7. 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

  8. 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

  9. 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

  10. 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)

  11. 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.

  12. 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

  13. 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 …

  14. 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

  15. 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)

More Related