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