Lesson Plans
AP Computer Science Unit 1 Aug - Sept
AP Computer Science Unit 2 Sept - Oct
AP Computer Science Unit 3 Oct - Nov
AP Computer Science Unit 4 Nov - Dec
AP Computer Science Unit 5 Jan - Feb
AP Computer Science Unit 6 Feb- Mar
AP Computer Science Unit 7 Mar
AP Computer Science Unit 8 Apr
AP Computer Science Unit 9 Apr - May
AP Computer Science Unit 10 May - June
HOW TO USE CLASS NOTES and TUTORIALS
- Open the link and click the Download Icon on the top right to download the zip.
- Unzip the files.
- IMPORT the project folder using your preferred IDE (Eclipse, IntelliJ, etc.) If you can't import the project, you can open individual class files using the windows notepad or mac equivalent.
Class Notes 2023-2024
Class Note click here
Class Notes 2022-2023
Class Note click here
JAVA Tutorials 2022-2023
Java Tutorials Project click here
JAVA LECTURES *OLD
Lesson 1: Classes, Object Oriented Programming and Comments
Lesson 2: The Main Method, Creating Objects, The . Separator, SYSO and JOP
Lesson 3: Primitive Properties Basic Operators, Assignment Operators, Increment/Decrement Operators, Integer Division and Auto-Type Casting Doubles
Lesson 4: Methods, Method Types, Parameters and Overloading
Lesson 5: Object Properties, String Properties, Integer and Double Properties and Introduction to ArrayLists
Lesson 6: Instance Properties, Parameter Properties, Local Properties and State vs. Behavior
Lesson 7: Conditional Statements, Nesting, Logical Operators, Relational Operators, Ternary Operators, Switch Cases and DeMorgan's Law
Lesson 8: Arrays and Array Lists
Lesson 9: For Loops, While Loops and Binary Search
Lesson 10: Inheritance, Overriding and Polymorphism
Lesson 11: Single Recursion and Double Recursion
Lesson 12: Sorting
Merge Sort (Recursive Algorithm)
This website on Merge Sort is an excellent supplement guide to seeing how Merge Sort works.
This YouTube video is an excellent video to seeing how Merge Sort works
2-D ARRAY GRAPHIC and 3-D ARRAY GRAPHIC
SOLID PRINCIPLE FOR OBJECT ORIENTED PROGRAMMING
S - Single Responsibility Principle : a class should have only a single responsibility. In simpler terms, for a calculator program, the methods that control the clicking of a button should not be in the same class as the methods that control adding two numbers.
O - Open-Closed Principle : We should strive to write code that doesn’t have to be changed every time the requirements change. In simpler terms, when you want to expand upon a new feature you should create a new class that inherits from the original class you had for that feature.
L - Liskov Substitution Principle : objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program. In other words, polymorphism. Your program should be based off of one super parent class and should never have to refer to the children of that class.
I - Interface Segregation Principle : Many client-specific interfaces are better than one general-purpose interface. In simpler terms, when using interfaces you shouldn't have one interface that sets up everything; but instead have several interfaces that each set up specific tasks. For example, the ActionListener interface only has one method.
D - Dependency Inversion Principle : one should “depend upon abstractions, [not] concretions. In simpler terms, your super parent class should be abstract (see Liskov Substitution Principle).
JAVA CONSOLE PROGRAMMING LESSONS
Lesson 0: Comments
Lesson 1: Objects and Classes
Lesson 2: Variables
Lesson 3-1: Parameters
Lesson 3-2: Methods
Lesson 4: Basic Operators
Lesson 5: Type Casting
Lesson 6: Conditional Statements
Lesson 7: Logical Operators
Lesson 8: Relational Operators
Lesson 9: Increment/Decrement Operators
Lesson 10: Switch Cases
Lesson 11: Ternary Operators
Lesson 12: For Loops
Lesson 13: While Loops
Lesson 14: Escape Sequences
Lesson 15: One Dimensional Arrays
Lesson 16: Two Dimensional Arrays
Lesson 17: Three Dimensional Arrays
Lesson 18: Array Lists
Lesson 19: Enhanced For Loop
Lesson 20: Strings
Lesson 21: Math Class
Lesson 22: Interfaces
Lesson 22: Implementation of Interfaces
Lesson 23: Inheritance
Lesson 23: Grandfather
Lesson 23: Father
Lesson 23: Child
Lesson 24: Modifiers
Lesson 25: Nesting
Lesson 26: DeMorgan's Laws
De Morgan's Law Practice problems
Lesson 27: Overloading
Lesson 27: Overriding
Lesson 28: Polymorphism
Lesson 28: Parent
Lesson 28: Child
Lesson 29: Getters and Setters
Lesson 29: anObject
Lesson 29: Accessor
Lesson 30: Read First
Lesson 30: Referencing
Lesson 30: Reference
Lesson 30: Refer
Lesson 31: Modulus
Lesson 32: Enumerators
Lesson 32: Direction Enumerator (BASIC)
Lesson 32: Point Enumerator (ADVANCED)
Lesson 33: toString (OVERRIDES toSTRING)
Lesson 33: Empty Class used as an Object for built-in toString
Lesson 34: Exceptions
Lesson 34: Exception Handling
Lesson 35: Runnable
Lesson 35: Thread
Lesson 36: Abstract Classes
Lesson 37: Recursion
Lesson 38: Binary Search
This image on Binary Search is an excellent supplement guide to seeing how Binary Search works.
Lesson 39: Selection Sort
This website on Selection Sort is an excellent supplement guide to seeing how Selection Sort works.
Lesson 40: Insertion Sort
This website on Insertion Sort is an excellent supplement guide to seeing how Insertion Sort works.
Lesson 41: Merge Sort
This website on Merge Sort is an excellent supplement guide to seeing how Merge Sort works.
This YouTube video is an excellent video to seeing how Merge Sort works
This website on Quick Sort is an excellent supplement guide to seeing how Quick Sort works.
Lesson 42: PassingVariables
JAVA SWING GUI PROGRAMMING LESSONS
* We are learning swing even though it is the older obsolete version
GUI 1: JOptionPane
GUI 2: JFrames
GUI 3: JButtons and ActionListeners
GUI 4: JLabels and Images
GUI 5: JTextFields
GUI 6: SubImages
GUI 7: JComboBoxes and ComboItems
GUI 8: JPanels
GUI 9: ItemView and ItemListener
GUI 10: KeyListeners
GUI 11: GUI and Animation
AP Computer Science Unit 1 Aug - Sept
AP Computer Science Unit 2 Sept - Oct
AP Computer Science Unit 3 Oct - Nov
AP Computer Science Unit 4 Nov - Dec
AP Computer Science Unit 5 Jan - Feb
AP Computer Science Unit 6 Feb- Mar
AP Computer Science Unit 7 Mar
AP Computer Science Unit 8 Apr
AP Computer Science Unit 9 Apr - May
AP Computer Science Unit 10 May - June
HOW TO USE CLASS NOTES and TUTORIALS
- Open the link and click the Download Icon on the top right to download the zip.
- Unzip the files.
- IMPORT the project folder using your preferred IDE (Eclipse, IntelliJ, etc.) If you can't import the project, you can open individual class files using the windows notepad or mac equivalent.
Class Notes 2023-2024
Class Note click here
Class Notes 2022-2023
Class Note click here
JAVA Tutorials 2022-2023
Java Tutorials Project click here
JAVA LECTURES *OLD
Lesson 1: Classes, Object Oriented Programming and Comments
Lesson 2: The Main Method, Creating Objects, The . Separator, SYSO and JOP
Lesson 3: Primitive Properties Basic Operators, Assignment Operators, Increment/Decrement Operators, Integer Division and Auto-Type Casting Doubles
Lesson 4: Methods, Method Types, Parameters and Overloading
Lesson 5: Object Properties, String Properties, Integer and Double Properties and Introduction to ArrayLists
Lesson 6: Instance Properties, Parameter Properties, Local Properties and State vs. Behavior
Lesson 7: Conditional Statements, Nesting, Logical Operators, Relational Operators, Ternary Operators, Switch Cases and DeMorgan's Law
Lesson 8: Arrays and Array Lists
Lesson 9: For Loops, While Loops and Binary Search
Lesson 10: Inheritance, Overriding and Polymorphism
Lesson 11: Single Recursion and Double Recursion
Lesson 12: Sorting
Merge Sort (Recursive Algorithm)
This website on Merge Sort is an excellent supplement guide to seeing how Merge Sort works.
This YouTube video is an excellent video to seeing how Merge Sort works
2-D ARRAY GRAPHIC and 3-D ARRAY GRAPHIC
SOLID PRINCIPLE FOR OBJECT ORIENTED PROGRAMMING
S - Single Responsibility Principle : a class should have only a single responsibility. In simpler terms, for a calculator program, the methods that control the clicking of a button should not be in the same class as the methods that control adding two numbers.
O - Open-Closed Principle : We should strive to write code that doesn’t have to be changed every time the requirements change. In simpler terms, when you want to expand upon a new feature you should create a new class that inherits from the original class you had for that feature.
L - Liskov Substitution Principle : objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program. In other words, polymorphism. Your program should be based off of one super parent class and should never have to refer to the children of that class.
I - Interface Segregation Principle : Many client-specific interfaces are better than one general-purpose interface. In simpler terms, when using interfaces you shouldn't have one interface that sets up everything; but instead have several interfaces that each set up specific tasks. For example, the ActionListener interface only has one method.
D - Dependency Inversion Principle : one should “depend upon abstractions, [not] concretions. In simpler terms, your super parent class should be abstract (see Liskov Substitution Principle).
JAVA CONSOLE PROGRAMMING LESSONS
Lesson 0: Comments
Lesson 1: Objects and Classes
Lesson 2: Variables
Lesson 3-1: Parameters
Lesson 3-2: Methods
Lesson 4: Basic Operators
Lesson 5: Type Casting
Lesson 6: Conditional Statements
Lesson 7: Logical Operators
Lesson 8: Relational Operators
Lesson 9: Increment/Decrement Operators
Lesson 10: Switch Cases
Lesson 11: Ternary Operators
Lesson 12: For Loops
Lesson 13: While Loops
Lesson 14: Escape Sequences
Lesson 15: One Dimensional Arrays
Lesson 16: Two Dimensional Arrays
Lesson 17: Three Dimensional Arrays
Lesson 18: Array Lists
Lesson 19: Enhanced For Loop
Lesson 20: Strings
Lesson 21: Math Class
Lesson 22: Interfaces
Lesson 22: Implementation of Interfaces
Lesson 23: Inheritance
Lesson 23: Grandfather
Lesson 23: Father
Lesson 23: Child
Lesson 24: Modifiers
Lesson 25: Nesting
Lesson 26: DeMorgan's Laws
De Morgan's Law Practice problems
Lesson 27: Overloading
Lesson 27: Overriding
Lesson 28: Polymorphism
Lesson 28: Parent
Lesson 28: Child
Lesson 29: Getters and Setters
Lesson 29: anObject
Lesson 29: Accessor
Lesson 30: Read First
Lesson 30: Referencing
Lesson 30: Reference
Lesson 30: Refer
Lesson 31: Modulus
Lesson 32: Enumerators
Lesson 32: Direction Enumerator (BASIC)
Lesson 32: Point Enumerator (ADVANCED)
Lesson 33: toString (OVERRIDES toSTRING)
Lesson 33: Empty Class used as an Object for built-in toString
Lesson 34: Exceptions
Lesson 34: Exception Handling
Lesson 35: Runnable
Lesson 35: Thread
Lesson 36: Abstract Classes
Lesson 37: Recursion
Lesson 38: Binary Search
This image on Binary Search is an excellent supplement guide to seeing how Binary Search works.
Lesson 39: Selection Sort
This website on Selection Sort is an excellent supplement guide to seeing how Selection Sort works.
Lesson 40: Insertion Sort
This website on Insertion Sort is an excellent supplement guide to seeing how Insertion Sort works.
Lesson 41: Merge Sort
This website on Merge Sort is an excellent supplement guide to seeing how Merge Sort works.
This YouTube video is an excellent video to seeing how Merge Sort works
This website on Quick Sort is an excellent supplement guide to seeing how Quick Sort works.
Lesson 42: PassingVariables
JAVA SWING GUI PROGRAMMING LESSONS
* We are learning swing even though it is the older obsolete version
GUI 1: JOptionPane
GUI 2: JFrames
GUI 3: JButtons and ActionListeners
GUI 4: JLabels and Images
GUI 5: JTextFields
GUI 6: SubImages
GUI 7: JComboBoxes and ComboItems
GUI 8: JPanels
GUI 9: ItemView and ItemListener
GUI 10: KeyListeners
GUI 11: GUI and Animation