Advanced Topics in Computer Science Course Outline
Every unit and lesson in Advanced Topics in Computer Science (Honors): recursion, algorithm efficiency, searching and sorting, data structures and graphical user interfaces, in Java.
Try the student practice samples in the first expanded unit below. The detailed notes will be discussed during the course, with worked examples, guided practice, and time for questions. Enroll to work through the remaining lessons with your tutor.
Explore the study guide1Unit 1: Object-Oriented DesignDesigning class hierarchies with inheritance, interfaces, generics and exceptions.5 lessons + review
- 1.1MCQ Sample
Classes, Objects and Encapsulation
Design classes with private state and clear APIs.
- 1.2FRQ Sample
Inheritance and Polymorphism
Build hierarchies and use dynamic dispatch.
- 1.3Enroll Now
Abstract Classes and Interfaces
Separate contracts from implementations.
- 1.4Enroll Now
Generics
Write type-safe classes and methods with generics.
- 1.5Enroll Now
Exceptions and Testing
Throw, catch and test with unit tests.
- 1REnroll Now
Unit Review and Project
Cumulative practice plus a hands-on project applying Unit 1.
2Unit 2: RecursionSolving problems recursively, from strings and arrays to backtracking.4 lessons + review
- 2.1Enroll Now
Thinking Recursively
Identify base and recursive cases and trace calls.
- 2.2Enroll Now
Recursion on Strings and Arrays
Write recursive methods on strings and arrays.
- 2.3Enroll Now
Backtracking
Solve search problems like N-Queens with backtracking.
- 2.4Enroll Now
Recursion vs. Iteration
Compare recursive and iterative solutions and costs.
- 2REnroll Now
Unit Review and Project
Cumulative practice plus a hands-on project applying Unit 2.
3Unit 3: Algorithm EfficiencyMeasuring algorithms by operation counts, Big-O and memory use.4 lessons + review
- 3.1Enroll Now
Counting Operations
Count statements executed by loops and nested loops.
- 3.2Enroll Now
Big-O Notation
Classify growth rates with Big-O.
- 3.3Enroll Now
Best, Average and Worst Cases
Analyze input-dependent performance.
- 3.4Enroll Now
Space Complexity
Measure extra memory used by algorithms.
- 3REnroll Now
Unit Review and Project
Cumulative practice plus a hands-on project applying Unit 3.
4Unit 4: Searching and SortingSearching and the classic sorts, from quadratic sorts to merge sort and quicksort.5 lessons + review
- 4.1Enroll Now
Linear and Binary Search
Implement and analyze linear and binary search.
- 4.2Enroll Now
Selection, Insertion and Bubble Sort
Implement and trace quadratic sorts.
- 4.3Enroll Now
Merge Sort
Divide, conquer and merge in O(n log n).
- 4.4Enroll Now
Quicksort
Partition around a pivot and analyze cases.
- 4.5Enroll Now
Comparing Sorting Algorithms
Compare stability, speed and memory.
- 4REnroll Now
Unit Review and Project
Cumulative practice plus a hands-on project applying Unit 4.
5Unit 5: Lists, Stacks and QueuesAbstract data types and their linked implementations: lists, stacks, queues and iterators.5 lessons + review
- 5.1Enroll Now
Abstract Data Types
Specify ADTs by operations, not implementation.
- 5.2Enroll Now
Linked Lists
Implement singly and doubly linked lists.
- 5.3Enroll Now
Stacks
Implement stacks and apply them to expressions.
- 5.4Enroll Now
Queues and Deques
Implement queues and deques with arrays and links.
- 5.5Enroll Now
Iterators
Write iterators and use the Iterable interface.
- 5REnroll Now
Unit Review and Project
Cumulative practice plus a hands-on project applying Unit 5.
6Unit 6: TreesBinary trees, binary search trees, heaps and why balance matters.4 lessons + review
- 6.1Enroll Now
Binary Trees and Traversals
Traverse trees preorder, inorder, postorder and level order.
- 6.2Enroll Now
Binary Search Trees
Insert, search and delete in a BST.
- 6.3Enroll Now
Heaps and Priority Queues
Implement heaps and priority queues.
- 6.4Enroll Now
Balanced Trees
Explain why balance matters and how rotations restore it.
- 6REnroll Now
Unit Review and Project
Cumulative practice plus a hands-on project applying Unit 6.
7Unit 7: Hashing, Sets and MapsHash functions, collision handling, sets and maps, and choosing a structure.4 lessons + review
- 7.1Enroll Now
Hash Functions
Design hash functions and hashCode/equals.
- 7.2Enroll Now
Collision Resolution
Handle collisions with chaining and probing.
- 7.3Enroll Now
Sets and Maps
Use HashSet, TreeSet, HashMap and TreeMap.
- 7.4Enroll Now
Choosing the Right Data Structure
Pick structures by operation costs.
- 7REnroll Now
Unit Review and Project
Cumulative practice plus a hands-on project applying Unit 7.
8Unit 8: GraphsExtensionRepresenting graphs and searching them breadth-first and depth-first (extension).3 lessons + review
- 8.1Enroll Now
Graph Representations
Store graphs with adjacency lists and matrices.
- 8.2Enroll Now
Breadth-First and Depth-First Search
Traverse graphs breadth-first and depth-first.
- 8.3Enroll Now
Shortest Paths
Find shortest paths with BFS and Dijkstra's algorithm.
- 8REnroll Now
Unit Review and Project
Cumulative practice plus a hands-on project applying Unit 8.
9Unit 9: Graphical User InterfacesEvent-driven Java programs, layouts, MVC design and a GUI capstone.4 lessons + review
- 9.1Enroll Now
Event-Driven Programming
Respond to events with listeners.
- 9.2Enroll Now
Components and Layouts
Build windows with components and layout managers.
- 9.3Enroll Now
Model-View-Controller Design
Separate model, view and controller.
- 9.4Enroll Now
GUI Capstone Project
Plan, build and present an original GUI application.
- 9REnroll Now
Unit Review and Project
Capstone rubric, written design review and cumulative practice.
Independently developed by Code Scholars Tutoring. Lesson order and pacing can be adapted to the student’s school syllabus.
