Previous Lecture Lecture 14 Next Lecture

Lecture 14, Tue 05/21

Midterm 2 Review

Midterm 2 Review

Logistics
    - Bring 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 the table
    - True / False, if false explain why
    - Given code, what is the output ...
    - Similar to midterm 1, expect it to take no more than ~ one hour (maybe sooner).
        - Will cover a broad range of topics, but probably not everything

Topics
    - Will cover everything up to last Thursday's lecture 5/16)
    - Midterm 2 will be cummulative, but with a heavy emphasis on post-midterm 1 material.

Hash Table Topics
    - Know basics of hash functions and performance
        - open-address hashing / double-hashing / chained-hashing
        - map vs unordered_map
        - 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 / average / worst cases) and space requirements.

Testing
    - Understand main ideas
        - The tddFuncs way of testing
        - Unit testing
        - Test Driven Development (TDD)
        - Various cases of tests
            Normal / Error / Boundary

Inheritance
    - Understand concepts and how to implement them
    - How constructors / destructors of base / sub classes work
    - Understand memory concepts of base and sub class attributes / functions on the stack and the heap
        - Memory / Object slicing
    - Understand inheritance hierarchies and valid / accessible types

Polymorphism
    - What is polymorphism and when you may want to use it
    - How to enable polymorphism
    - Pure virtual functions and abstract classes
    - How it works in memory

Exceptions
    - Try / catch mechanisms
    - Throwing exceptions
    - Exceptions using inheritance

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

OS Concepts
    - Role of the OS
    - OS kernel
    - Relationship to software / hardware
    - Processes
    - Threads
    - Basic UNIX commands from lecture notes
        - ps, ps –e, top, jobs, ^C, ^Z, kill, ...
    - Foreground vs. background processes
        - How they relate to the terminal application