General Information
- Date: Wed, July 2, 2025
- Time/Location: Your exam will take place in ESJ 0224 from 6 PM to 7:20 PM
- Duration: 1 hour 20 minutes
- Closed-book, Closed-notebooks, No Computers/Calculators.
- Use a pencil/mechanical pencil (no pen) to answer the exam.
- Bring a good eraser
- Posting any information in Piazza about the exam after taking it
is considered an academic integrity violation.
- Do not separate the pages of the exam (e.g., remove the staple).This
will interfere with the scanning process.
-
You need to bring your student id to the exam.
-
We provide space in the exam to be used as scratch area (you cannot
bring your own scratch paper).
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/class, 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 during Week 1 to Week 4 in discussion session (lab),
lecture, quiz 2, and projects (#1, #2, #3, and #4) including the following topics:
- Object-Oriented Programming Principles (Abstraction, Encapsulation,
etc.)
- ADT, List ADT, Stack ADT, Queue ADT, Deque ADT, Implementation ideas (e.g.Adapter Pattern)
- Algorithmic complexity and working with Big O notation
- Linear and Binary Search, Selection and Bubble Sort
- Be able to write both iterative and recursive code
- Specific Java Topics
- Definition and use of classes in inheritance relationships
- has-A vs is-A relationship
- Definition and use of Java Interfaces
- Abstract Classes
- Arrays
- JCF: ArrayList, Vectors, Stack, Queue, Deque
- StringBuffer (be familiar with the append method that takes a string
as a parameter and
the constructor that takes a String as parameter)
- Iterators
- Comparable Interface
- Comparator Interface
- instanceof opertator and .getClass method
- Iterable Interface
- "this"
- "super"
- final keyword
- early and late binding, polymorphism
- Collections class methods (Any methods used on exam will be told ahead of time)
- Enhanced for loop
- Exceptions: Checked vs. Unchecked
- Visibility Modifiers
- Method Overloading/Overriding
- Packages
- equals method - both versions
- Enumerated Types
- The 4 types of nested types: inner, local, anonymous, and static nested
- Defining Generic Classes and methods with unbounded and bounded types (e.g. using extends)
- Wildcards and bounded wildcards with extends and super keywords
- Autoboxing and Unboxing
- All CMSC 131 topics
- Program Testing (Writing JUnit tests)
Practice Material
Here are actual exams from previous terms: PreviousExams.zip. I am just making this available for extra practice, but remember to review everything above not just what showed up on the exams in the past. Also, please note that the old exams have a 50 minute time limit, since you have more time, your exam will be longer than the sample exams. Some old exams may have material that is outside the scope of what is covered on our exam 1