CS 100 Review sheet for final exam
Note: These are things you should make sure you know and understand. Be aware that this is not necessarily a complete list; it is just to get you started. Study hard. Alan has offered (out of the goodness of his heart) to run a review session Sunday night. The time and place will be announced tomorrow in class.
Know all of the material on the prelim
Know all of the material on the quizzes
Understand control structures
- if
- while
- for
- blocks of statements
Understand classes, subclasses and class hierarchies
- How to define a class
- How to define a subclass of a class
- What's a class hierarchy?
- Public vs. private fields and methods
- Inheritance (what does it mean? How do you use it?
- What are constructors? Know how to use super appropriately.
- What does it mean to override a method? Know how/when to override methods in a meaningful way.
- What does it mean to overload a method? Know how/when to overload methods in a meaningful way.
Scope of variables
- What's scope?
- Variables as fields of class
- Variables as parameters
- Variables as local variables in a method
Static
- Static variables
- Static methods
- Give examples/Use examples
- Why use static variables and methods?
Method headings and calls
- What are the four steps that occur upon a method invocation?
- What's a frame? How/when is a frame created?
- Be able to see a method call and know how to draw the frame, etc. for that call
- Understand "call-by-value"
- Understand the difference between passing a primitive type (such as int) in as a parameter, and passing an object reference
- Understand what happens in C with pointers passed as parameters.
- Understand the return statement.
Various operators
- The ternary operator
- ++, --, +=, -=, etc.
- break;
- continue;
Arrays
- How to declare and initialize?
- Arrays as parameters in Java
- Arrays as parameters in C
- Arrays of objects
Search algorithms
- Know the differences between linear search and binary search
- Be able to write linear search and be able to clearly sketch binary search.
Sorting algorithms
- Be able to describe in words all the search algorithms we discussed, including bubble sort (from P4)
- Be able to read and debug search algorithms if presented to you.
- What does the partition algorithm do?
Efficiency
- How is the efficiency of an algorithm measured?
- What does it mean if something is linear/O(n), logarithm/O(log n), etc. What's the n referring to here?
(see next page for more)
Matlab
- What is the fundamental data structure in Matlab?
- What's the function linspace do in Matlab?
- Know the colon and semicolon notation wrt arrays in Matlab:
0:10:2
d = c(2:4)
a = [1 2 3; 4 5 6]
b = a(2:7, 1:5)
- How to access a column of a matrix? A row of a matrix?
- What's the transpose of a matrix? What's its notation in Matlab?
- What does f(x) do in Matlab if x is an array?
- What do the if, while, and for statements look like in Matlab?
- Be able to read Matlab code
Recursion
- What is recursion?
- Be able to write a small recursive method (such as factorial, for example, or something similar)
Advanced Topics
- What are threads? What does the synchronize modifier do?
- What is the abstract modifier all about? Think about and understand abstract in combination with other modifiers.
- What are exceptions? What does one use exceptions for?
C
- What are the advantages and disadvantages of C vs. Java?
- What are pointers?
- Be able to read a C program and understand it.