Introduction to Computer Science(CSCI-UA-0101.001/002)
Spring 2014 -- Section 1 (Honors) and Section 2
Professor: Andrew Case

Final Study Guide

Updates: None

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.

Final List of Topics

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.

Material covered before Midterm1 and Midterm2

New readings:

New suggested programming exercises

New lecture material:

Object Oriented Programming (OOP)

  - 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

Graphical User Interfaces (GUIs)

  - Passing a PApplet object to access processing functions
  - Processing data mentioned on Midterm2 study guide

Strings

  - 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

Primitive Wrapper Classes

  - Integer/Long, Character, Float/Double, Boolean
  - parse____() methods
    - is this a static or an instance method... what's the difference?

Exception Handling

  - When to use with user input?
  - When to use otherwise?
  - keywords: try, catch, finally, throw, throws
  - When to 'catch' vs. 'throw'

Basic File I/O

- 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

Recursion

- 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

© 2010-2014 Andrew I. Case