page moved to
https://stoneskin.github.io/learnJava/
https://github.com/stoneskin/learnJava/
[G9+ Advance Class] Java programming & Algorithms
This class provides a 30-lesson AP Computer Science A tutoring course designed to support high school students in their independent practice outside of school.
Requirements
Each student needs below items for this class**
- A Laptop with at least 8G memory with internet access.
 - An email account for receiving emails.
 - An account of https://github.com/
 - Install VS Code with Java extension
 
Content of Class
Part 0: preparation for the class (1 Lesson)
- Lesson 0: Introduction to AP CSA, Course Overview and Get Start Java programming Environment Learn Java HelloWorld Samples
 
Part 1: Introduction to Programming (6 Lessons)
- Lesson 1: Java Fundamentals (variables, data types, operators)
 - Lesson 2: Introduction to Input/Output (using Scanner class)
 - Lesson 3: Control Flow Statements (if-else, switch statements)
 - Lesson 4: Loops (for loop, while loop)
 - Lesson 5: Methods (defining, calling, parameters, return values)
 - Lesson 6: Debugging Techniques - Identifying and Fixing Errors
 
Part 2: Arrays and Strings (6 Lessons)
- Lesson 7: Arrays - Declaring, Initializing, Accessing Elements
 - Lesson 8: Array Operations (traversing, searching, sorting)
 - Lesson 9: Multidimensional Arrays
 - Lesson 10: Strings - Declaring, Methods (length(), charAt(), substring()), String Manipulation
 - Lesson 11: String Formatting and Parsing
 - Lesson 12: Case Studies using Arrays and Strings
 
Part 3: Object-Oriented Programming (6 Lessons)
- Lesson 13: Introduction to OOP - Classes and Objects
 - Lesson 14: Encapsulation and Access Modifiers
 - Lesson 15: Constructors
 - Lesson 16: Inheritance - Polymorphism and Superclass/Subclass Relationships
 - Lesson 17: Interfaces and Abstract Classes
 - Lesson 18: Case Studies using OOP Concepts
 
Part 4: Algorithm Design and Analysis (6 Lessons)
- Lesson 19: Big O Notation - Understanding Time and Space Complexity
 - Lesson 20: Algorithm Design Strategies (divide and conquer, recursion)
 - Lesson 21: Searching Algorithms (linear search, binary search)
 - Lesson 22: Sorting Algorithms (selection sort, bubble sort, insertion sort, merge sort)
 - Lesson 23: Recursion - Understanding Recursive Functions
 - Lesson 24: Efficiency Analysis of Algorithms - Choosing the Best Approach
 
Part 5: Advanced Topics and Review (6 Lessons)
- Lesson 25: Collections Framework (ArrayList, LinkedList)
 - Lesson 26: Two-Dimensional Graphics and JavaFX Introduction (Optional)
 - Lesson 27: File I/O - Reading and Writing Data Files
 - Lesson 28: Exceptions Handling - Identifying and Handling Errors
 - Lesson 29: AP Exam Review - Focus on Key Concepts and Practice Problems
 - Lesson 30: Mock Exam – Simulated Testing Environment with Timed Practice
 
Additional Resources
- https://www.learnjavaonline.org/
 - https://beginnersbook.com/java-tutorial-for-beginners-with-examples/
 - https://www.w3schools.com/java/
 - https://www.tutorialspoint.com/java/
 - https://codingbat.com/java
 - https://docs.oracle.com/javase/tutorial/
 - https://www.javatpoint.com/java-tutorial
 - https://www.codecademy.com/learn/learn-java
 - https://apcentral.collegeboard.org/courses/ap-computer-science-a
 - https://code.org/curriculum/csa
 - https://help.fiveable.me/article/68-finding-ap-comp-sci-a-content
 - https://en.wikipedia.org/wiki/AP_Computer_Science_A