Previous Lecture | Lecture 17 |
Lecture 17, Wed 03/11
Final Review
Logistics:
- Bring studentID and writing utensil
- ink or dark led
- Please write LEGIBLY
- No electronic devices
- No book, no notes
- Tuesday 03/17 @ 12 - 2pm (CHEM 1171)
Format:
- Similar to midterms, but designed to take two hours
(~ twice as long as the midterm)
- short answer
- Briefly decribe / define / state ...
- Write code
- Fill in the blank / complete the table / ...
- T / F, if False explain why
- Given code, what is the output
Topics
- Will cover everything from the start of the quarter
up to today
- Covers lecture, labs, homework, and reading
- use lecture notes as breadth of topics, and all
other course material (lecture, hw, labs, etc.)
as depth
- Makefiles
- STL (vector, map, unordered_map, string, iostream, ...)
- Know the libraries and methods discussed in
lecture.
- Class design
- Abstract Data Types
- Build Process
- Big Three (copy constructor, destructor, assignment
operator)
- Scope Resolution Operator (::)
- Template
- Structs and Classes
- Differences
- Memory storage (hex notation / padding)
- Syntax
- Memory padding
- Namepsaces
- Naming collisions (and how to avoid them)
- Global namesspace
- Quadratic Sorting
- Bubble/selection/insertion Sort
- Optimizations
- Running Times
- Hash Tables
- Performance and Functionality
- Open-address, double-hashing, chained-hashing
- STL implementation (unordered_map)
- Also know std::map and implementation
- Mergesort / Quicksort
- Know the algorithm / running times / pros / cons
- Inheritance
- Concepts and behavior
- memory allocation of base / sub class Types
- Class hierarchies and Types
- Polymorphism
- Understand concepts and behavior in various
scenarios
- virtual vs. non-virtual
- Abstract classes and pure virtual functions
- Virtual Destructors
- Exceptions
- Try / catch /throw mechanisms and flow control
- Inherited types and how catches work with various
types
- Function Pointers
- Syntax of function Pointers
- How to declare, assign, and call functions
via function Pointers
- Using function pointers with threads
- Write code utilizing function pointers
- Testing
- Understand main ideas and terminology
- tddFuncs way of testing
- OS Concepts
- Role of the OS
- kernel
- Relationship to software and hardware
- Processes
- threads
- Basic Unix commands
- Know the commands covered in lecture
- foreground vs. background Processes
- How they relate to the terminal Processes
- Fork / Exc
- Heaps
- MinHeap and MaxHeap
- Conceptual tree structure
- implementation
- Array representation and indices between children
and parent
- Performance / Runtime analysis
- Threads
- Concurrency
- .detach vs. .join (what they do)
- Race conditions
- Atomic operations
- In general the <thread> library syntax for creating /
running threads