CPSC 233 Final Exam Topics
James Tam
Section I: Java / Object-Oriented concepts (~80% - 90% of the final exam)
Except for Part 5, I will be solely responsible making up the questions for
this section of the exam. For Part 5, both myself and Don Bidulock will be
involved in creation of exam questions.
1) Basics of a Java program
- The basic structure of a Java program
- Compiling, interpreting / running programs
- Variables and constants
- Simple output
- Decision making and loops
- Java operators
- Arrays
2) Java classes
- Levels of access: private, public, protected
- Data vs. methods
- Instance fields vs. static fields, instance variables vs. static/class
variables
- Scope
- Constructors
3) Other Java concepts
- Automatic garbage collection
- References
- Parameter passing and method return types
- Data structures in Java
- Simple file input and output in Java
- Event driven vs. traditional software
- Exceptions: Checked vs. unchecked exceptions
- Exceptions: Handling exceptions with a try-catch and try-catch-finally blocks
- Exceptions: Creating your own exceptions
- Shadowing instance fields
4) Object-Oriented concepts
- The Object-oriented approach to design vs. the procedural approach to
design
- Encapsulation
- Information hiding
- Implementation hiding
- Overloading methods
- Composition relationships between classes (has-a)
- Association relationships between classes (knows-a)
- Inheritance relationships between classes (is-a)
- Inheritance: overriding methods
- Inheritance: Polymorphism
- Inheritance: Shadowing
- Inheritance: The final modifier
- Inheritance: Abstract classes
- Multiple inheritance vs. multiple implementation
- Interfaces
5) BNF and Syntax diagram
- Being able to read and understand these notations
- Being able to specify a set of rules with these notations
- Converting between notations
- Given a syntax specified by one of the above notations you should be able
to determine if a phrase is grammatically correct
Section II: C / Low-level procedural concepts (~10% - 20% of the final exam)
For this section both myself and Don Bidulock will be involved in creation of
exam questions.
- The process of compilation
- Variables and constants
- Input and output
- Decisions and loops
- C operators
- Pointers and dynamic memory allocation
- Arrays
- Command line arguments
- Functions and parameter passing
- Scope
- File IO
- The preprocessor (rudimentary knowledge such as code and other
substitutions)
- Type casting