Lecture Notes 26: Final Video, Review and Study.
Objectives
During this module, we'll clarify the final project and revisit any concepts that you want to review.
The following are some popular "review" materials:
- Compiling and running programs through the terminal.
- Method construction.
- Using primitives variables, casting, ASCII conversions
- String operations
- While and For Loops
- Nested For loops
- Conditionals
- 1-D Arrays
- 2-D Arrays
- Scope and Encapsulation, Variable shadowing
- Classes and Objects
- Understand how to use Generics.
- ArrayList, LinkedList, HashMap
Before Starting
If you do not have your Codio course ready, use any text editor or simple IDE. Some possibilities are:
- Write using Sublime; Compile and run in the Terminal
- Use IDEs like: IntelliJ, DrJava, or JGrasp
Video Presentation: Possible discussion points in the Final Project
The following are possible presentation points for the Video on the Final project:
- Why do we use multiple classes (ImageConverter, ImageArrayFilter, FinalProject)? How do they interact?
- How do we construct template classes so that we can use objects? How do we pass information around when using objects?
- What is the difference between static and non-static variables/methods? Give one example of a useful static variable and one static method that we could add to ImageArrayFilter.
- How is an image represented using a 2D array?
- What are the differences between the ImageArray and the WindowArray inside the class ImageArrayFilter?
- Explain how you do input checking on each of the methods: scaleArray, blurWindow, and addRectangle.
- Explain the high-level steps of the unsharp-masking process. Why does is "sharpen" an image?
- How does the unsharp masking process change when you vary the scaling factor in the range (0,1]?
- Explain the high-level process of "blurring".
- How is the "blurring" process implemented in ImageArrayFilter? Explain the "sliding-window" process in detail.
- Explain the method "getBlurredValue".
- What happens if we give a 11x11 kernel instead of the 5x5 or 3x3 ones we used in the project?
- Explain, in detail, the code in the sections: "Test unsharp masking" and "Unsharp masking (small) test" in the FinalProject class.
- Even if you did not implement it, explain how does one place a rectangle around some section of an image (either completely black or completely white). What do you need to consider if you want to change the width of that rectangle?
Subject Review
In this section, we can revisit any subject you might need to discuss that might help in the completion of the final project or to clarify the concepts seen throughout the course.
Here are some concepts that we can discuss:
- Compiling and running programs through the terminal.
- Method construction.
- Using primitives variables, casting, ASCII conversions
- String operations
- While and For Loops
- Nested For loops
- Conditionals
- 1-D Arrays
- 2-D Arrays
- Scope and Encapsulation, Variable shadowing
- Classes and Objects
- Understand how to use Generics.
- ArrayList, LinkedList, HashMap