General Information
- Date: Friday, April 25, 2025
- 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.
- 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 in discussion session (lab),
lecture, quizzes, and projects (#1, #2, #3, #4, #5, #6, #7) with a special focus on Week 7 - Week 11, including the following topics:
- Object-Oriented Programming Principles (Abstraction, Encapsulation,
etc.)
- Algorithmic Complexity
- Levels of Copying
- Specific Java Topics
- Definition and use of classes in inheritance relationships
- Definition and use of Java Interfaces
- Abstract Classes
- Arrays
- ArrayList
- 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
- Iterable Interface
- "this"
- "super"
- Collections class methods (those used for the projects)
- Enhanced for loop
- Enumerated types
- Autoboxing and Unboxing
- Exceptions
- Visibility Modifiers
- Method Overloading/Overriding
- equals method
- Packages
- Inner Classes
- Lambda Expressions
- clone method
- Initialization blocks
- Definining Generic Classes
- Recursion
- Iterator
- Linear Data Structures (linked lists, stacks, queues, deque, etc.)
- Recursive Linked List Methods
- Hashing- both open addressing and separate chaining
- Java HashCode Contract
- Sets and Maps - know the 3 types of JCF sets and 3 types of JCF maps
- Power of 2 up to 2^16 and log rules (from lab) - no calculators
- Insertion Sort (from lab)
- Quicksort (from lab)
- Merge Sort (from lab)
- Terms and concepts associated with graphs, free trees, rooted trees, and binary trees
- Binary Search Trees - both recurisve and iterative methods
- All CMSC 131 topics
- All Week 1 to Week 6 CMSC 132 topics
The exam will NOT cover the following topics:
- Binary Heaps(Priority Queues), Text and Binary File I/O, Threads
Practice Material
Here are some old exam 3s: PreviousExamsIII.zip . I am just making this available for extra practice, but remember the coverage of your exam in Spring 2025 will be different than what we did in the past.