General Information
- Time: The exam will be posted on Fri. Nov. 20, 9 AM (morning), and due the same day, Fri. Nov. 20, at 5 PM (afternoon).
- It is designed to be completed in about 1 hour, but I am making it available for 8 hours since people have different schedules.
- You will not have a lecture video to watch on Fri. Nov. 20, so that should free up 1 hour for everyone to work on the exam.
- We will have normal office hours on Fri. Nov. 20, but TAs cannot answer any questions about the exam in OH (They can help you submit if you have submit server issues).
- 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. 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.
- 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 may 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 will be used for grading purposes (you can submit as many times as you want before the deadline)
- There will be a 1-hour late submission period, therefore you need to submit often and before Fri, Nov 20, at 5 PM
(afternoon) for your exam to count on time. If you turn it in between 5 and 6 PM, it will be marked late and there will
be a 15-point deduction. Questions will not be answered on piazza 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 Exam 3.
Topics
The exam will include all the material covered in discussion session (lab),
lecture, quizzes, and projects (#1, #2, #3, #4, #5) with a special focus on Week 6 - Week 9, including the following topics:
- Object-Oriented Programming Principles (Abstraction, Encapsulation,
etc.)
- OO Design
- Testing/Program Correctness
- Code Coverage
- 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
- Program Testing (Writing JUnit tests)
- Iterator
- Memory Maps
- Linear Data Structures (linked lists, stacks, queues, etc.)
- Recursive Linked List Methods
- Hashing- both open addressing and separate chaining
- Sets and Maps - know the 3 types of JCF sets and 3 types of JCF maps
- All CMSC 131 topics
- All Week 1 to Week 5 CMSC 132 topics
The exam will NOT cover the following topics:
- Trees, Heaps, File I/O, Threads, Networking, AVL Trees, Regular Expressions
Practice Material
Here are actual exam 3 from Fall 2018 and Fall 2019: PreviousExamsIII.zip . I am just making this available for extra practice, but remember the coverage/format of your exam in Fall 2020 will be different than what we did in Fall 2018 and Fall 2019.