General Information
- Date: Monday, May 14, 2012
- Time: 4pm to 6pm
- Location: ARM 0126 (Students in the Honors Section will take the exam in the room specified
by Dr. Purtilo)
- IMPORTANT: If you look a the final exam table available at
Final Exams look for "Common Finals" in order to find the final exam information. You will get the incorrect date if you use
the time your lecture meets. Remember, the date and time provided in this page is
the official exam date/time.
- 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
- Kruskal's Algorithm
For Students in Honors Section
Additional topics and material you are responsible for will be provided in lecture.
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