General Information
- Date: Friday, May 15, 2009
- Time/Location: 4pm to 6pm, BRB
1101
- Duration: 120 minutes
- Closed-book, Closed-notebooks, No Computers/Calculators.
- Use a pencil/mechanical pencil (no pen) to answer the exam.
Exam Structure
- Short answer questions: This includes for example, multiple
choice, True/False and fill-in-the-blank type questions.
- Code analysis questions: We will give a short segment of code
and you may be asked to identify syntax and logical errors, generate code
output, etc.
- Code Writing: Write a program/code snippets to solve a given
problem. You should be prepared to give a complete program, including
full class heading, import, package statement, and main methods, but we
may also ask you to provide just a single method or a code fragment.
Topics
The exam will include all the material covered in discussion session
(lab), lecture, quizzes, and projects including the following topics:
- Object-Oriented Programming Principles (Abstraction, Encapsulation,
etc.)
- Testing/Program Correctness
- Event-Driven Programming
- Generics (be prepared to define generic classes)
- Algorithm Complexity
- Linear Data Structures (linked lists, stacks, queues, etc.)
- Sets, Maps
- Hashing
- Program Testing - JUnit testing
- Recursion
- Trees
- Binary Search Trees
- Heaps
- Priority Queues
- Graphic User Interfaces (GUIs) & MVC model
- Software Development
- Software Life Cycle
- Software Process Models (Waterfall, Iterative...)
- Problem Specification
- Program Design
- Program Testing
- Object-Oriented Design
- UML Diagrams
- Designing UML class diagrams from problem specifications
- Generating UML class diagrams for Java classes
- Multithreading & synchronization in Java
- Graphs
- Graph Representation
- BFS/DFS
- Dijkstra's Algorithm
- Sorting algorithms
- Algorithm strategies
- Design patterns
- Effective Java
- Specific Java Topics
- Definition and use of classes in inheritance relationships
- Definition and use of Java Interfaces
- Instance Variable initialization (both static and non-static)
- Inner Classes
- Initialization blocks
- Comparable Interface
- Comparator classes
- Autoboxing and Unboxing
- Exceptions Fundamentals
- ArrayList
- Enhanced for loop
- Enumerated types
- Method Overloading/Overridding
- Iterators
- Constructors
- References
- "this"
- "super"
- Collection class methods (those used for the projects)
- Program scope
- Visibility Modifiers
- Abstract classes, methods
- Packages
- I/O Streams
- Final classes, fields
The exam will NOT cover the following topics:
- Eclipse
- Networking
- Networking support in Java
Only students in the honor section are responsible for the following
additional topics:
- Advanced Concurrency
- Spanning Trees
- Advanced Tree Structures
Practice Material
Practice Questions
Previous Exams
We have included selected previous exams for the course in the file PreviousExams.zip. Keep in mind that the
material covered by the exams may not be the same material we are covering
this semester. We recommend you complete the exams in the allocated time
specified in the exam. In addition, do not read a problem and assume you know
how to solve it; try to solve it.