Courses
Advanced Python and Algorithms
- Level
- Senior High · Grades 10–12
- Difficulty
- Intermediate
- Duration
- 14 modules
- Curriculum
- 42 lessons
Curriculum
14 units01Algorithms and Python FoundationsYou can explain what an algorithm is, write it as pseudocode, and translate it into a Python function tested with assert.3 lessonsShow contentsHide
- What Is an Algorithm: From Everyday Steps to PseudocodePreview50 min
- Setting Up Python and Writing Tested Statistics Functions55 minLocked
- Recap and Self-Check on Your First Algorithms45 minLocked
02Built-in Data Structures and ComprehensionsYou can choose a list, tuple, dictionary, or set to fit the need, process data with comprehensions, and avoid the aliasing trap when copying lists.3 lessonsShow contentsHide
- Choosing a List, Tuple, Dictionary, or Set50 minLocked
- Practice: Processing Class Data and Avoiding the Aliasing Trap55 minLocked
- Recap and Self-Check on Built-in Data Structures45 minLocked
03Advanced Functions, Lambda, and the key ParameterYou can write functions with default and keyword parameters, pass functions as arguments, and sort data with the key parameter and tuple keys.3 lessonsShow contentsHide
- Functions as Values and lambda Expressions50 minLocked
- Practice: Building a Class Ranking with sorted and Tuple Keys55 minLocked
- Recap and Self-Check on Advanced Functions45 minLocked
04Modules, CSV Files, and Error HandlingYou can split a program into several modules, handle errors with try and except, and create and read student data in a CSV file.3 lessonsShow contentsHide
- Splitting a Program into Modules and Handling Errors50 minLocked
- Practice: Creating and Reading Student Data in a CSV File1 hLocked
- Recap and Self-Check on Modules, Files, and Errors45 minLocked
05Classes, Objects, Stacks, and QueuesYou can create classes with attributes and methods, then use them to build the stack and queue data structures and apply them.3 lessonsShow contentsHide
- Classes and Objects: Bundling Data and Behaviour50 minLocked
- Practice: Building a Stack for Bracket Checking and a Queue for the Canteen Line1 hLocked
- Recap and Self-Check on Classes, Stacks, and Queues45 minLocked
06Time Complexity and Big-O NotationYou can count how the number of steps of an algorithm grows, express it in Big-O notation, and confirm it by measuring time with time.perf_counter.3 lessonsShow contentsHide
- Counting Steps and Getting to Know Big-O Notation55 minLocked
- Practice: Measuring Running Time with time.perf_counter55 minLocked
- Recap and Self-Check on Time Complexity45 minLocked
07Recursion and the Call StackYou can design recursive functions with a correct base case, trace their call stack, and speed up repeated recursion with memoization.3 lessonsShow contentsHide
- Recursion: Base Case, Recursive Step, and the Call Stack55 minLocked
- Practice: Writing Recursive Functions and Memoizing Fibonacci1 hLocked
- Recap and Self-Check on Recursion45 minLocked
08Linear Search and Binary SearchYou can write linear search and binary search, count their steps, and use the bisect module to search and count data in a sorted list.3 lessonsShow contentsHide
- From Checking One by One to Halving55 minLocked
- Practice: Testing Binary Search and Using the bisect Module1 hLocked
- Recap and Self-Check on Searching Algorithms45 minLocked
09Basic Sorting: Selection, Insertion, and Bubble SortYou can explain and write O(n²) sorting algorithms with a key parameter, trace them step by step, and test their stability.3 lessonsShow contentsHide
- Three Simple Ways to Put a Line in Order50 minLocked
- Practice: Writing Selection Sort and Insertion Sort with a key Parameter1 hLocked
- Recap and Self-Check on Basic Sorting45 minLocked
10Merge Sort: Divide, Sort, MergeYou can explain the divide-and-conquer strategy, write a stable recursive merge sort with a key parameter, and explain why its complexity is O(n log n).3 lessonsShow contentsHide
- The Idea of Merge Sort: Merging Two Sorted Piles55 minLocked
- Practice: Writing a Stable Recursive merge_sort1 hLocked
- Recap and Self-Check on Merge Sort45 minLocked
11Quick Sort and PartitioningYou can explain partitioning around a pivot, write an in-place quick sort with a random pivot, and explain its average case, worst case, and instability.3 lessonsShow contentsHide
- The Idea of Quick Sort: The Pivot and Lomuto Partitioning55 minLocked
- Practice: Writing an In-Place Quick Sort with a Random Pivot1 hLocked
- Recap and Self-Check on Quick Sort50 minLocked
12Counting Sort, Timsort, and Choosing an AlgorithmYou can explain the lower bound of comparison-based sorting, write a stable counting sort for small integer keys, and choose the right sorting algorithm for a situation.3 lessonsShow contentsHide
- The Lower Bound of Sorting and the Idea of Counting Sort50 minLocked
- Practice: A Stable Counting Sort for Student Score Data55 minLocked
- Recap and Self-Check on Choosing a Sorting Algorithm45 minLocked
13Testing and Measuring Algorithm PerformanceYou can test algorithms systematically with edge cases, random data, and unittest, then measure their performance fairly with timeit and save the results to a CSV file.3 lessonsShow contentsHide
- Edge Cases, Random Testing, and the unittest Framework55 minLocked
- Practice: Measuring with timeit and Saving Results to CSV1 hLocked
- Recap and Self-Check on Testing and Measuring45 minLocked
14Final Project: Searching and Sorting AlgorithmsYou can design, build, test, and present a searching and sorting algorithm project for student data, complete with a measured performance report.3 lessonsShow contentsHide
- Planning the Final Project: Specification, File Structure, and Rubric50 minLocked
- Practice: Building Cari Siswa: CSV Data, Search Functions, and the Menu1 hLocked
- Final Testing, Performance Report, and Project Presentation55 minLocked
Prerequisites
Basic Python
Tools and materials
Python
Final project
A searching and sorting algorithm project
Mentor
ES
EduSTEAM Team
