General Information
- Date: Thursday, Dec. 16, 2021 from 4 to 6 PM
- Time/Location: Your exam will take place in EGR 1202.
- Duration: 120 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, exercises, and projects including the following topics:
- Object-Oriented Programming Principles (Abstraction, Encapsulation,
etc.)
- Generics (be prepared to define generic classes)
- Algorithm Complexity
- Linear Data Structures (linked lists, stacks, queues, etc.)
- Sets, Maps
- Hashing
- Recursion
- Trees
- Binary Search Trees
- Heaps
- Priority Queues
- Multithreading and synchronization in Java
- Graphs
- Graph Representation
- BFS/DFS
- MST (Prim, Kruskal)
- Dijkstra's Algorithm
- Sorting algorithms
- 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)
- Nested 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)
- Visibility Modifiers
- Abstract classes, methods
- Packages
- Final classes, fields
- Lambda Expressions
- Topics covered in exam 1, exam 2, exam 3, and CMSC 131
The exam will NOT cover the following topics:
- Eclipse
- UML
- JavaFX
- File I/O
- Advanced Topics covered in lab only (e.g.Java Streams, Reflections,etc. )
Practice Material
Historically, we have never given out an old recent final exam, and this term will be the same.
There are some mateiral that are available on old CMSC 132 sites, and i am making them available below.
However, i think they will be of limited use due to the format/topics (there are some topics mentioned not even covered in Fall 2021).
In other words, use the material below if it is of benefit, but don't forget to focus on what we did in Fall 2021.