General Information
- Time: The exam will be posted on Fri. Oct. 23, 9 AM (morning), and due the same day, Fri. Oct. 23, 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. Oct 23, so that should free up 1 hour for everyone to work on the exam.
- We will have normal office hours on Fri. Oct 23, 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 is no late submission period, therefore you need to submit often and before Fri, Oct 23, at 5 PM (afternoon). Don’t wait till the last minute to submit. If you wait till the last minute and there is a network delay, it will be a zero. I would recommend you finish and submit no later than 4:30 PM.
- 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
- Short answer questions: This includes for example, multiple
choice, true/false, and fill-in-the-blank type questions. You will be given directions on how to do this in eclipse/submit server.
- Code Writing: Write code to solve a given
problem. You should be prepared to write a complete program made up of several classes.
Topics
The exam will include all the material covered during Week 4 to Week 6 in discussion session (lab),
lecture, and projects including the following topics:
- Object-Oriented Programming Principles (Abstraction, Encapsulation,
etc.)
- OO Design
- Testing/Program Correctness
- Code Coverage
- Algorithmic Complexity
- 3 Levels of Copying
- Garbage Collection
- New Java features post version 8
- 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 (Be able to write code to make one)
- 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
- The 4 types of nested types
- Lambda Expressions
- clone method
- Initialization blocks (both non-static and static)
- Basics of JCF
- Defining Generic Classes and methods
- All CMSC 131 topics
- All Week 1 to Week 3 CMSC 132 topics
- Singleton and Decorator Design Patterns
- State Design Pattern/Dynamic Systems
The exam will NOT cover the following topics:
Practice Material
Here are actual exam 2 from Fall 2018 and Fall 2019: PreviousExamsII.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.