General Information
- The exam will be posted on Friday, May 15, 9 AM (morning), and due the same day,
Friday, May 15, at 5:00 PM (afternoon).
- The exam will be posted similar to a class project. You will write code in an
Eclipse project and submit as usual, except there is no late period submission.
-
We will pick the highest scoring submission for grading purposes. You can submit
as many times as you want before the deadline, but keep in mind you have 8
release tokens. You can release test your code anytime.
- All submissions must be done via the submit server (no e-mail).
- The exam will be graded based on submit server tests (release and secret)
and code inspection (style and requirements).
- About Piazza use during the exam:
- You can only post clarification questions in Piazza. Debugging questions,
why code is not passing a test, are invalid questions to post in Piazza.
-
Use the folder finalExamQuestions to post questions.
-
We will use the folder finalExamClarifications to post any clarifications.
Please don't use this folder :)
-
Posting of any kind of code in Piazza, during the exam period, represents
an academic integrity violation and will be reported as such.
-
You cannot answer students' questions; only TAs and instructors can do so.
- You must work by yourself.
- You can use class resources (lecture notes, lecture/lab examples, videos, etc.), but no other resources
(e.g., code from the web).
- Sharing of exams solutions represents an academic integrity violation and will be reported as such.
- Submissions will be checked with cheating detection software.
- Do not wait until close to the deadline to submit your work. Network problems or submit server
overloading are not valid excuses for missing submitting your work.
- ADS students: The provided timeframe takes into consideration your time allocation.
If you need any other assistance, contact your instructor. Ignore this entry if you don't know
what an ADS is.
- Dear Students: it is in your best interest to complete this work by yourself, and
following the guidelines described above. You need to identify which topics you understand
and which ones you don't, so you can be successful in CMSC132.
Exam Structure
- Short answer questions: This includes multiple choice and true/false.
- 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 Terminology
- Java Variables and Types
- Expressions and Side Effects
- Java Numeric/String/Logical Operators
- Assignment Operators
- Short Circuiting
- Scanner Class
- System.out.println() / System.out.print()
- Conditional Statements
- Blocks and Scoping
- Constants
- Loops (whiles, do whiles, for loops, for-each (enhanced) loops)
- String Class
- String Class Methods: toLowerCase, toUpperCase, length, charAt, substring, isEmpty
- Static and Non-Static Methods
- Constructors
- Using "this" for classes
- Instance variables
- Static variables
- Get/Set methods
- How to override the toString() method
- How to override the equals(Object obj) method
- switch statement
- StringBuffer
- One and Two Dimensional Arrays (of primitives and references)
- Ternary Operator
- Exceptions
- Privacy Leaks
- Copying Objects: Shallow, Reference, Deep Copying
- Abstraction
- Encapsulation
- Model View Controller
- Pseudocode
- Interfaces
- Method Overloading / Overriding
- break and continue
- Wrappers
- ArrayList
- ArrayList Class Methods: add, get, isEmpty, indexOf, remove, size
- Comparable Interface (compareTo method)
- Sorting Data Using Collections.sort()
- Polymorphism
- Method Overloading/Overriding
- Iterators
- getClass(), instanceof
- Recursion
- Integer.parseInt(), Double.parseDouble()
- Terms You Need to Know
- Current Object
- Index and Indices
- Instance of a Class
- Instance Variables
- Auxiliary / Helper Method
The exam will NOT cover the following topics:
- Computer Organization
- Memory Maps - Although you are not responsible for drawing memory maps, understanding
the java use of memory is important. See the information available at
Memory Map Information
- Inheritance (extending other classes using "extends") and Multiple-Inheritance
- Javadoc
- Eclipse
- Eclipse Debugger
- Java Packages
- Dynamic Systems, State Transition Diagrams
Practice Material
- Fall 2019 Lectures Notes
- Practice material we posted for semester exams #1, #2, and #3
- Lab Material that you should review. Import as Eclipse projects.
-
PracticeQuestions.pdf -
We don't have answers, but you are welcome to post and discuss answers in Piazza. Ignore questions that
cover material you are not responsible for the final.
-
PracticeFinalOther131Sections.pdf -
This practice material corresponds to another cmsc131 section.
From this material you should practice problems: 1. Arrays, 2. ArrayLists,
5. Interfaces & Classes, 7. Recursion.
-
PracticeFinalOther131SectionsII.pdf -
This practice material corresponds to another cmsc131 section.
From this material you should practice problems: Q1, Q2, Q3, Q6,
Q7 (Don't worry about the TreeSet part), Q8