Python Algorithms & Olympiad Programming – Level 1

Build strong problem-solving and algorithmic thinking skills with WiByte’s Python Algorithms & Olympiad Programming – Level 1.

Students learn key concepts including Big-O, searching, binary search, sorting, two-pointer techniques, sliding windows, binary trees, heaps and priority queues through practical coding exercises and Olympiad-style problems.

Prerequisite: Python Level 1 and Level 2

How to Use the Learning Resources
The slides and videos cover the key concepts from each class and are designed as self-contained learning resources. Students are encouraged to review them and try the example code themselves before and during the independent activity.

Submit your Independent Activities


Class 1 – Introduction

Class Material and Notes

Class Notes

Independent Activity

Revise Concepts Covered in Python Level 1 and Level 2
Revise the Level 1 and Level 2 Projects

A (very) quick Introduction to Google COLAB
Website Structure: Class Project and the Homework COLAB Notebook
How to submit HOMEWORK for evaluation?
How to join the Discussion Forum on GITHUB


Class 2 – Fun with Numbers

Class Material and Notes

Class Notes , Class Project (COLAB),

  • Algorithms for prime numbers, GCD.
  • Notion of Naive algorithms
  • Study of efficiency in algorithms

Homework Activity

Activity and Marking Criteria

Work on practice problems related to algorithms that work on numbers.

Leaderboard


Class 3 – Time to Search


Class 4 – Applications of Binary Search


Class 5 – The Two Pointers Technique

Class Material and Notes

Class Notes
Class Project

Key Learning Objectives

  1. Two pointer techniques to increase efficiency of algorithms


Class 6 – Midterm Revision and Quiz.

Class Material (Live Quiz)

Key Learning Objectives

  1. Revise the concepts covered so far with an interactive quiz.  
  2. More discussion on the Big-O notation.

Class 7 – Sliding Window Algorithms


Class 8 – Basic Sorting Algorithms

Class Videos

Class Material and Notes

Class Notes , Class Project

Key Learning Objectives

  1. Basic Sorting Algorithms
  2. Selection Sort, Insertion Sort, Bubble Sort and their variations.


Class 9 – Binary Trees and Heaps


Class 10 – Applying Heaps

Class Videos

Class Material

Class Notes, Class Project

Key Learning Objectives

  1. Applying min/max heaps to solve problems
  2. Using python heapq module functions

Bonus Videos

Independent Activity

Activity & Marking Criteria

Apply heaps to solve interesting problems, eg sorting, live leaderboard, running median etc.

Leaderboard

Project Showcase


Class 11 Quiz


Class 12 Project Showcase

Guidelines for Project Showcase (Notes)
Guidelines for Project Showcase (Video)