General Information
- Time: The exam will be posted on Thurs. Dec. 17, 9 AM (morning), and due the same day, Thurs. Dec. 17, at 9 PM (evening).
- It is designed to be completed in 2 hours, but I am making it available for 12 hours since people have different schedules. Everyone should be free from 4 to 6 PM (that is our reserved time for CMSC 132 Final Exam)
- We will NOT have normal office hours on Thurs. Dec. 17. If you have submit server issues post a private note in piazza BEFORE 6PM and a TA will help you.
- Did you install the correct version of Eclipse, Java 13, and course management software on your computer at the start of the semester? Link for Eclipse
- If you don’t have this exact Eclipse setup and you are not able to submit the exam, that will not be a valid reason for an extension.
- The exam will be posted similar to a class project. You will write code in an Eclipse project and submit as usual.
- You can only post clarification questions in Piazza on the exam day and a CMSC 132 staff member will reply ONLY from 10AM to 6PM. We will not answer any questions after 6PM. As a student, you should not reply to questions posted by other students about the exam. Debugging questions, why code is not compiling, why is code not passing a test, are invalid questions to post in Piazza. If your question is implementaion specific, post as a private note
- Posting of any kind of code in Piazza (or any other public platform), during the exam period, represents an academic integrity violation and will be reported as such.
- The exam will be graded based on submit server tests (release and secret) and code inspection (e.g.style, following rules, etc.). The exact rubric will not be available before the exam. Just follow all the rules to avoid point deductions
- You must work by yourself. Sharing of exam solutions represents an academic integrity violation and will be reported as such. Submissions can be checked with cheating detection software.
- You can use class resources (lecture notes, lecture/lab examples, videos, etc.), but no other resources (e.g., code from the web).
- All submissions must be done via the submit server (no e-mail). The highest scoring submission on the submit server will be used for grading purposes (you can submit as many times as you want before the deadline). Do not make any submissions with a rule violation as it might be the highest scroing on the submit server and then you will lose points when we hand grade it.
- There will be a 1-hour late submission period, therefore you need to submit often and before Thurs, Dec 17, at 9 PM
(evening) for your exam to count on time. If you turn it in between 9 and 10 PM, it will be marked late and there will
be a 15% deduction(not 15 points, but 15%). Questions will not be answered on piazza after 6PM, so for sure they will also not be answered during the late period.
- If you are student with an extended time accommodation from ADS, the time frame provided takes into consideration your time allocation. If you need any other assistance or still have concerns to finish the exam, contact me via email before the exam.
- It is in your best interest to complete this work by yourself, and following the guidelines provided above. You need to identify which topics you understand and which ones you don’t, so you can be successful in CMSC216 and future CS courses.
Exam Structure
- Code Writing: Write code to solve a given
problem. You should be prepared to write a complete program made up of several classes. There will be no MC on the final exam.
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
- 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 2020).
In other words, use the material below if it is of benefit, but don't forget to focus on what we did in Fall 2020.