Previous Lecture | Lecture 15 | Next Lecture |
Lecture 15, Tue 11/19
Midterm 2 Review
Midterm 2 Review
Logistics
- Bring your studentID and writing utensil
- Preferably ink or dark led
- PLEASE WRITE LEGIBLY
- No electronic devices
- No books
- No notes
Format
- Mix of questions
- Short answer
- Briefly describe / define / state /...
- Write code
- Fill in the blank / complete a table
- T / F, if False explain why
- Given some code, what is the output
- Similar to midterm 1 in terms of time (~ one
hour to complete), but you have the entire lecture
Topics
- Will cover everything up to last Tuesday (11/12)
material
- Midterm 2 will be cumulative, but with a heavy emphasis
on post-midterm 1 material.
Hash table
- Know the basics of this data structure
- but also know the implementation details
Mergesort / Quicksort
- Know the algorithm and how to implement it
- Understand main ideas and how the array is manipulated as the
algorithm executes
- Know the runtime analysis (best / avg / worst) and space
requirements
Testing
- Understand main ideas and relevance of Testing
- The tddFuncs way of Testing
- Unit Testing
- Test Driven Development (TDD)
- Various test cases
- Normal / Error / Boundary
Inheritance
- Understand concepts and how it works in various scenarios
- How constructors / destructors of base / sub classes work
- Understand memory concept of base and sub class attributes
/ functions on the stack and heap
Polymorphism
- What is polymorphism and when you may want to use it
- How to enable polymorphism
- Pure virtual functions and abstract classes
- General behavior in various scenarios
Exceptions
- Try / catch mechanisms
- Throwing Exceptions
- Exceptions using inheritance
Fucntion Pointers
- Syntax of function Pointers
- How to declare, assign, and call functions via function
Pointers
- Write code utilizing function pointers
- std::transform() utilizing function pointers
OS Concepts
- Role of the OS
- OS Kernel
- Relationship between software / hardware
- Process definition
- Thread definition
- Basic UNIX commands from lecture notes
- ps, ps -e, ps -A, top, jobs, ^Z, ^C, etc
- Foreground vs. background processes
- How they relate to the terminal application