Previous Lecture | Lecture 17 |
Lecture 17, Thu 06/07
Final Review
Final Review
Note: Extra office hours in HFH 1151 @ 3 - 4pm Fri 6/8
Logistics
- Bring Student ID and writing utensil
- Preferable ink or dark led
- Please write LEGIBLY
- No electronic devices
- No book, No notes
- 30% of your final grade
Room
- Similar to midterms, will take place in CHEM 1171
and Phelps 2510
- Sent an email, if you didn't get it, let me know
- Seating chart will be posted for CHEM 1171
- PLEASE SIT IN YOUR ASSIGNED SEAT
Format of the exam
- Similar to midterms, but designed to take two hours
to complete
- Be prepared for...
- True / False
- Short answer questions
- Write a class / function / method that does ...
- Fill in the blank
- Exam is cummulative (more content to cover than
previous midterms)
Topics
- Will cover everything from the start of the quarter
up to Tuesday 6/5 lecture (heaps)
- Covers lecture, labs, homework, and reading
- Makefiles
- STL (vector, map, unordered_map, string, iostream,...)
- Class Design
- Abstract Data Types
- Build process
- .cpp, .h (linking)
- Big Three (copy constructor, destructor,
assignment operator)
- Scope Resolution Operators
- Templates
- Structs and Classes
- Differences
- Memory storage
- Syntax
- Namespaces
- Naming collusions (and how to avoid them)
- Global namespace
- Binary Search
- Algorithm
- Running time
- Quadratic Sorting
- bubblesort, selectionsort, insertionsort
- Optimizations
- Running times
- Hash Tables
- Performance and functionality
- open-address, double-hashing, chained-hashing
(pros / cons)
- std::map, std::unordered_map
- Mergesort and Quicksort
- Algorithm itself
- Running times
- Pros / cons
- Inheritance
- Understand concepts and behavior
- Understand memory allocation of base / sub class
types
- Hierarchy
- Polymorphism
- Understand concepts and behavior
- virtual vs. non-virtual
- abstract classes and pure virtual functions
- virtual destructors
- Exceptions
- Try / catch / throw mechanisms and flow control
- Inherited types and how they're caught
- Testing
- understand main ideas and terminology
- Do not need to know googletest specific framework
- Should understand functions in tddFuncs.h
(used in the labs)
- Operating System Concepts
- Role of the OS
- OS kernel
- Relationship to software / hardware
- Processes
- Threads
- Basic UNIX commands
- ps, top, jobs, ^C, ^Z, kill, ...
- foreground vs. background processes
- how it relates to the terminal application
- fork / exec
- Examples with command line instructions and
unistd.h functions in an application.
- Heaps
- MinHeap and MaxHeap
- "complete" tree structure is
- priority queues and heap implementation
- array representation and index of children /
parent of a node
- Insertion and maintenance
- Deletion (of root) and maintenance
- heapify
- Simple class implementation for it
- Running time