CS3250 (Ada) Review for Exam #3
Okay gang, here we are, the end of the semester! The last test! Ooo, I
just feel tingly all over!
Test Format
- Matching - 20 qs @ 2 pts ea. This section will contain terms
we went over in class but that I don't expect you to be able to pull from
memory.
- 2-Part Questions - 6 qs @ 5 pts ea. These are questions that will
test your knowledge of concepts we went over in class. You will be
expected to explain / compare / contrast 2 related concepts in 2
sentences.
- 3-Part Questions - 3 q @ 10 pts eas. Like the 2-part Qs, these
are also concept / theory questions. You will be expected to explain /
compare / contrast 3 related concepts in 3 sentences.
- Bonus Question - 1 q @ 2 pts. This will test your knowledge of
computer-related trivia beyond the scope of this class.
Things You Should Study
Categorized for your convenience.
Memory / Pointer Items
- Stack vs. Heap storage
- Pointers, dereferencing, aliases
- Shallow vs. Deep copy
- Explicit memory allcation vs. Garbage Collection
Object Concepts
Note: much of the stuff on the test comes from this stuff (week 12).
- The big 3: Encapsulation, Inheritance, and Polymorphism
- Inheritance terms: base class, derived class, inheritance tree,
multiple inheritance.
- Up casting vs. Down casting
- Overloaded vs. Overridden
- Halting inheritance (i.e. final methods)
- Polymorphism: "same interface, different behaviors"
- Polymorphism could refer to: casting, overloading, generics, or
dynamic dispatching. Normally, it referrs to dynamic dispatching.
- How dynamic dispatching works.
- 3 object relationships: is-a, has-a, uses
Recursion
- 3 requirements for recursion: entry condition, recursive sequence,
and exit condition
- Winding vs. Unwinding phase
- Common errors encountered in recursion
- Other recursion types: indirect recursion, tail recursion
- Recursion vs. Iteration
- Problems that can be solved using recursion (notably, many math
functions)
Thread Stuff
- Processes vs. Threads
- Cooperative Task Switching vs. Preemptive Multitasking
- Life cycle of a thread
- Shared resources: definition, examples
- Synchronization: why we need it, different approaches
- Thread problems: race conditions, deadlocks, priority inversion