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