General Information
- Date: Friday, Dec 16, 2011
- Time: 4pm to 6pm
- Location: CSIC 1115 (Sit together at the front of the room as
students from another course will be in this room as well.)
- 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
- 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
- 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
- UML
- Advanced Concurrency
- Markov Text Generation
For Students in Honor Section
Students in the honor section are responsible for the following additional topics:
- Advanced Tree Structures
- Huffman Encoding
- Spanning Trees
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.
Web Accessibility