General Information
- Date: Friday, Oct 22, 2021
- 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 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
- Wildcards and bounded wildcards with extends and super keywords
- 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 and questions on your exam in Fall 2021 will be different than what we did in Fall 2018 and Fall 2019.