Skip to content
Courses

Advanced Python and Algorithms

Level
Senior High · Grades 10–12
Difficulty
Intermediate
Duration
14 modules
Curriculum
42 lessons

Curriculum

14 units
  1. 01Algorithms 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 contents
  2. 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 contents
    • 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
  3. 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 contents
    • 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
  4. 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 contents
    • 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
  5. 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 contents
    • 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
  6. 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 contents
    • 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
  7. 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 contents
    • 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
  8. 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 contents
    • 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
  9. 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 contents
    • 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
  10. 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 contents
    • 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
  11. 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 contents
    • 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
  12. 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 contents
    • 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
  13. 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 contents
    • 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
  14. 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 contents
    • 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