What's on Exam 1, Spring 2003
Java:
- Basics that are common with C++ will be assumed knowledge (no direct questions on these)
- References to objects; instantiation; garbage collection
- Parameter passing to functions
- Arrays
- How to define classes, including fields, methods. Static methods and fields. Protection levels. Private protection
and reference variables.
- Inheritence. How to do this in Java. (Also UML representation.)
- Interfaces. What they are, why they're useful. How to implement in Java and show in UML.
- Collections and Iterators. Know the basics but not all the methods.
- Interfaces: Collection, List, Iterator, ListIterator
- Concrete collections: ArrayList, LinkedList.
- Also know about AbstractCollection
- Bascis about packages
(It might be helpful to study what you did in your Java program too.)
Design Patterns:
- The basics from the slides and perhaps the Ambler text
- Patterns covered: Singleton and State
Ambler's textbook:
- Chapter 2 section 2.1-2.3 (probably some T/F, mult. choice, short answers on these)
- Chapter 3, all. For section 3.4, you don't need to know the details of the diagramming method.
- Chapter 4
- Chapter 5, all but 5.10, 5.12, 5.13, and 5.16
- see Chapter 6 for some info on class diagrams that we covered in class. Look only in Section 6.3 but not 6.3.6
- The exam won't cover collaboration or sequence diagrams.
Slides and Handouts:
- The slides on the "slides" page will be on the exam, including PARTS example (as done in class),
class modeling, design patterns, use cases, etc.
- Study the handout with the three sample class modeling problems.
- But we won't cover the handouts on Observer or Composite design patterns.
Types of questions:
There will be the kinds of questions you probably expect on class diagrams, use cases, and sequence diagrams.
Some of these will involve interpreting existing diagrams, but you will be asked to draw some diagrams. Also, you
may be give a short textual description of an easy-to-comprehend problem, identify classes and attributes, and
create a conceptual-level class diagram (i.e. requirements level diagram) or a use-case description.