AP Computer Science A Java
This course teaches students the fundamentals of Java programming (AP Java subset).
Students will put what they have learned into practice by completing all APCS free-response questions starting from 2004, as well as the lab activities provided by College Board, and thus be well prepared for the AP Computer Science exam each May.
Session I: Java Introduction
Session I will cover Java syntax and OOP basics. Students do not need any programming experience.
Session II: Java OOP
Session II will cover advanced OOP topics, including inheritance, polymorphism, abstract class, interface, and exceptions. We will also introduce the String class.
Session III: Java Data Structures and Algorithms
Session III will cover the basic data structures and algorithms needed for APCS, including Array, ArrayList, recursion, sorting, and searching.
APCS A Java Intensive Course
We will use 10 weeks to go over all the APCS A required topics according to the latest course description by CollegeBoard.
Session IV: APCS Mock Exams
In session IV, before each class, students need to finish one mock exam. During each class, the mock exam will be explained and analyzed. Students will also work on the latest APCS free-response questions and APCS lab projects with the provided starting code.
USA Computing Olympiad
Successful software engineers must have a solid background in data structures and algorithms.
This course introduces different algorithms, including brute force, divide-and-conquer, recursion, greedy algorithm, and dynamic programming.
Students will learn how to implement their algorithms efficiently using different data structures, including array, list, set, map, tree, and graph.
By working on real USACO contest questions, students will be well prepared for the annual USACO online contest.
USACO Bronze (Java)
- Algorithm performance analysis
- StringBuilder, Array, List, Set, Map
- Brute force, recursion, divide and conquer
USACO Bronze Practice Session (Java)
In each class, students will work on 4-5 Bronze-level problems, starting from the latest contest and moving backward by year, in order to get more practice.
USACO Silver (Java)
- Approaches to enhance brute-force
- Stack and queue
- Priority queue
- Basic tree algorithms, like breadth-first search and depth-first search
- Basic graph algorithms, like flood-fill
USACO Silver Practice Session (Java)
In each class, students will work on 3-4 Silver-level problems, starting from the latest contest and moving backward by year, in order to get more practice.
USACO Gold (Java)
- Dynamic programming
- Greedy algorithms
- Graph algorithms
- Computational geometry
- Advanced data structures
Python Programming
Python is one of the most popular programming languages. It is intuitive and easy to start. This course begins with basic programming concepts and eventually covers major areas in Python development.
Session I: Python Introduction
Session I will cover Python syntax, string, and file system access. Students do not need any programming experience.
Session II: Python Data Structures and Algorithms
Session II will cover the basic data structures in Python, including list, dictionary, tuple, and set, as well as the basic algorithms, including sorting, searching, and recursion.
Session III: Python OOP
Session III will cover Python OOP basics. Students will apply what they have learned to coding projects and games.
Session IV: USACO Bronze Python
- Algorithm performance analysis
- List, Tuple, Set, Map
- Brute force, recursion, divide and conquer
Selective Topic: Web Development using Python
In this course, students will learn how to develop interactive and responsive database-driven web applications for desktop, tablet, and phone using Python Django, the most popular web application framework in Python. Students will also learn basic HTTP, HTML/CSS, SQL from scratch.