Introduction to Computer Science(CSCI-UA-0101.001/002)
Spring 2014 -- Section 1 (Honors) and Section 2
Professor: Andrew Case
No outside materials are allowed on the exam. You will be provided with some Java API documentation (subject to updates) for use during the exam.
This is NOT an exhaustive list. Please refer to the class reading assignments.
The topics covered on the exam will be cummulative from lessons throughout the entire semester with an emphasis on material covered in the 2nd half of the semester.
- Inheritance - superclass / parent class - subclass / child class - keywords: super, extends - super keyword vs. super() - overriding vs. overloading - Polymorphism - dynamic binding - casting - instanceof - keyword: instanceof - Abstract classes - keywords: abstract, extends - abstract methods - concrete methods - constructors - Interfaces - keywords: interface, implements - purpose? - how many interfaces can a class implement (compare to abstract)? - differences between interfaces and abstract classes
- Passing a PApplet object to access processing functions - Processing data mentioned on Midterm2 study guide
- Basics - immutability - primitives vs. objects - composition (char array) - Memory storage (stack/heap/references) - Methods understanding - particularly: charAt(), length(), replace(), split(), toCharArray() toString(), indexOf(), toLowerCase(), toUpperCase(), substring() - .equals(), vs. == - Command Line Arguments
- Integer/Long, Character, Float/Double, Boolean - parse____() methods - is this a static or an instance method... what's the difference?
- When to use with user input? - When to use otherwise? - keywords: try, catch, finally, throw, throws - When to 'catch' vs. 'throw'
- File class - Opening a file - Checking a file status (exists(), isFile(), canRead()) - Scanner class - Reading from the user - Reading from a file - Reading a line - Reading an entire file - PrintWriter class - Writing to a file
- advantages/disadvantages vs. iteration - When to use it - what is the limiting factor - Comparisons - factorial - fibonacci - fractals - Algorithm design - Define algorithm using itself - Base case - Recursive case - Must get closer to the base case - Infinite recursion - cause/avoidance - repercussions