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

Midterm2 Study Guide

Updates:

The topics covered on the exam will include topics discussed in class and reading assignments made up through class #19, but primarily topics covered since the last midterm.

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.

It may be wise to peruse some midterm2 sample questions to get an idea of the test format and some sample problems. Once you've worked you problems, check your answers.

Midterm List of Topics

This is NOT an exhaustive list. Please refer to the class reading assignments.

Material covered before Midterm1

New readings

Introduction to Java Programming: Chapters 6, 7, 8, 10, 11
Sample quizes for this material are available on LiveLab.

New suggested programming exercises

New Material

Arrays

    - Memory storage
        - Stack (references)
        - Heap
    - Creating
    - Modifying/Adding
    - Java.uilts.Arrays
    - Copying
        - Copying a reference (shallow copy) vs. copying data (deep copy)
        - Manual copy
        - java.utils.Arrays
    - Sorting
        - Bubble sort
        - Insertion sort
        - Selection sort
    - Searching
        - Linear search
        - Binary search

Multi-dimensional Arrays

    - Utilizing multi-dimensional arrays
    - Memory storage (stack/heap/references)
    - Creating
    - Accessing
    - Modifying
    - Copying
        - Manual copy deep copy
        - java.utils.Arrays

Processing

    - coordinate system
    - Understanding basic processing code (argument memorization not needed)
        - setup() and  draw()
        - Setting functions (http://www.processing.org/reference/)
        - 2D primitives (http://www.processing.org/reference/)
        - Keyboard input (http://www.processing.org/reference/)
        - Mouse input (http://www.processing.org/reference/)

Objects and Classes

    - Classes vs. Objects
    - Creating new objects ('new' keyword)
        - Constructors
            - No argument constructor
            - Copy constructor
            - Argument constructors
        - Memory storage (stack/references and heap/data)
    - Visibility modifiers
        - Public
        - Default
        - Private
    - Static vs. Instance
        - Fields/variables
        - Methods
        - 'this' reference
    - Data storage and Methods
        - Data encapsulation/hiding implementation
        - Getters/Setters
        - variable scope
            - local method variables vs. object member variables
            - static vs. instance
        - toString()
        - equals() vs. ==
    - Inheritance
        - superclass / parent class
        - subclass / child class
        - keywords: super, extends, protected
        - super keyword vs. super()
        - overriding vs. overloading


© 2010-2014 Andrew I. Case