- Date: Oct 4
- Time/Location: Your exam will take place in lecture.
- Duration: 50 minutes
- Closed-book, Closed-notebooks, No Computers/Calculators.
- Use a pencil/mechanical pencil (no pen) to answer the exam.
- Please take a look at the general exam rules available at
- The best way to prepare for the exam is to practice old exams. Complete several
of them in the allocated time specified in the exam.
- We curve in this course. After you taken the exam, do not discuss
anything associated with the exam with other students that have
not taken the exam yet.
- Posting any information in Piazza about the exam after taking it
is considered an academic integrity violation.
- Please bring a stapler if you tend to separate the pages of the exam.
- 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
- 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.
The exam will include all the material covered in discussion session (lab),
lecture, quizzes, and projects (#1 and #2) including the following topics:
- Object-Oriented Programming Principles (Abstraction, Encapsulation,
- Testing/Program Correctness
- Object-Oriented Design
- Code Coverage
- Specific Java Topics
- Definition and use of classes in inheritance relationships
- Definition and use of Java Interfaces
- Abstract Classes
- StringBuffer (be familiar with the append method that takes a string
as a parameter and
the constructor that takes a String as parameter)
- Comparable Interface
- Comparator classes
- Iterable Interface
- Collections class methods (those used for the projects)
- Enhanced for loop
- Enumerated types
- Autoboxing and Unboxing
- Visibility Modifiers
- Method Overloading/Overriding
- Inner Classes (including anonymous inner classes)
- clone method
- Reference, shallow, deep copying
- Initialization blocks (static and non-static)
- Program Testing (Writing JUnit tests)
The exam will NOT cover the following topics:
- Eclipse, UML, Event-Driven Programming,
GUI material, Linked lists, Defining Generic Classes.
Below we have included selected previous exams for the course. Keep in
mind that the material covered by the exams may not be the same material we are
covering this semester or in this midterm. We recommend you complete the following midterms 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.
- MidtermI132Fall17Soln.pdf Current Semester
- MidtermFall08.doc, MidtermFall08Key.doc
- Midterm1Summer08.doc, Midterm1Summer08Key.doc
- Midterm1Spring08.doc, Midterm1Spring08Key.doc