General Information
- Date: Wednesday, Nov 20, 2019
- 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.
- Please take a look at the general exam rules available at
Exam Rules.
- We may curve in this course. After you taken the exam, do not discuss
anything associated with the exam with other students that have
not taken the exam yet.
- 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.
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 in discussion session (lab),
lecture, quizzes, exercises, and projects (#1 thru #7) 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()
- Conditional Statements
- Blocks and Scoping
- Constants
- Loops (whiles, do whiles, for loops)
- Static methods
- String Class
- Memory Maps/Diagrams - An example of the memory map format can be found at
Sample Memory Map
- Constructors
- Using "this" for classes
- Instance variables
- Static variables
- static and non-static methods
- get/set methods
- toString()
- How to write an equals method for a class
- switch statement
- StringBuffer
- One-Dimensional Arrays (or primitives and references)
- Ternary Operator
- Exceptions
- Privacy Leaks
- Copying Objects: Shallow, Reference, Deep Copying
- Recursion (as presented by lecture examples)
- Abstraction
- Encapsulation
- Model View Controller
The exam will NOT cover the following topics:
- Eclipse Debugger, Pseudocode, JUnit Testing, Two-Dimensional Arrays, ArrayList, Javadoc,
Interfaces, Polymorphism, Inheritance, Iterators,
JOptionPane Class (methods used for input and output),
Computer Organization, Packages
Practice Material
Previous semesters' exams can be found at PreviousExams.zip.
A worksheet can be found at Exam2Worksheet.pdf. Notice
that some of the material covered by previous exams and the worksheet might not be part
of this exam.
The best way to prepare is to practice problems (e.g., previous exams) and problems you can
come up as you study. The more you practice, the better you will do in the exam. If you just
practice one or two exams, that is probably not enough.