Schoolhouse.world: peer tutoring, for free.
Free SAT® Prep, as part of a research study.
SAT® Bootcamps
Free SAT® Prep, as part of a research study.
A global network of volunteers.
Explore Tutors
A global network of volunteers.

Computer Science • Series

Intro to Competitive Programming

Jimmy S

Series Details

Sessions

Public Discussion

This series ended on July 28, 2023. All 1:1 and group chats related to this series are disabled 7 days after the last session.

Series Details

About

We'll go over one algorithm every session, although more sessions may be needed for an algorithm depending on the collective understanding of and confidence in that algorithm. I'm going to be programming in C++, but if you are familiar with Java or Python, you can still use that language, as a) C++ is very similar to those languages and b) I'm going to cover algorithms in a visual manner mostly, so there won't be too much programming; we will be programming only when implementing the algorithms.

Tutor Qualifications

I have been programming in C++ for 2.5 years, and competitively programming for about a year. I have experience with competitive programming competitions such as the American Computer Science League (ACSL), the United States of America Computing Olympiad (USACO), and some Codeforces contests. During the 2022-2023 USACO Contests, I passed the Bronze Division with a perfect score and got some Silver Division problems partially right, so I view myself well acquainted with fundamental algorithms like binary search, DFS (depth-first search), BFS (breadth-first search), and more. I'm excited to teach learners how to think algorithmically when solving problems and implement these algorithms to code.

✋ ATTENDANCE POLICY

Learners should have prior knowledge of C++, Java, or Python. If you were a member of my previous C++ Bootcamp series in Schoolhouse, you'll be proficient to join as well, as the series, as I mentioned in the orientation, can be considered a prerequisite for this series.

I expect learners to join every session, and 2 unexcused absences will result in withdrawals. I may host occasional office hours, but there will be no catchup sessions. Office hours will be used to help with the optional practice problems I will be giving out at the end of every session, not to help catch up on what learners missed.

Dates

June 26 - July 28

Learners

37 / 50

Total Sessions

13

About the Tutor

Hi, I'm Jimmy! I'm a junior in high school interested in learning and teaching math and computer science I also teach SAT Bootcamps and other enrichment topics. In my free time, I like to play sports like running and soccer, watch movies (love Nolan films), and read classic books (Dostoyevsky is my favorite). I look forward to teaching you!

View Jimmy S's Profile

Upcoming Sessions

0

Past Sessions

13
26
Jun

Session 1

Orientation

- Series outline - Series expectations - Quick setups for programming in the series - Short Q/A
28
Jun

Session 2

Computer Science

- Overview of competitive programming - Time complexity and Big O Notation We'll look at the overview of competitive programming and learn about a crucial concept in it, time complexity. We'll learn how to notate time complexities with Big O Notation.
30
Jun

Session 3

Computer Science

- Bruteforcing We'll learn how to solve competitive programming problems with the crude, yet fundamental bruteforcing approach.
5
Jul

Session 4

Computer Science

- Simulation and Implementation We'll learn how to simulate and implement situations that competitive programming problems give to effectively solve complicated problems.
10
Jul

Session 5

Computer Science

- Simulation and Implementation We'll learn how to simulate and implement situations that competitive programming problems give to effectively solve complicated problems.
12
Jul

Session 6

Computer Science

- Advanced Sorting with Structures We'll learn advanced sorting methods with structures in C++. Note: It may be a little difficult for learners with a background in Java and Python to implement this, as the methods and syntaxes are different. Follow along as much as you can. This is not something essential for competitive programming, so don't worry.
14
Jul

Session 7

Computer Science

- Prefix Sum We'll learn the prefix sum algorithm that allows us to manipulate data and thus make advanced calculations of data in 1D arrays simple.
17
Jul

Session 8

Computer Science

- Binary Search We'll learn the famous binary search algorithm to quickly locate numerical values in an array.
19
Jul

Session 9

Review

- Review of Algorithms and Concepts from this Series - Practice Problems We'll review all the algorithms and concepts we've learned in the series and solve a few challenging practice problems to train our understanding of those algorithms and their implementations.
21
Jul

Session 10

Computer Science

- Practice Problems We'll solve a few practice problems from competitive programming competitions to train our understanding of algorithms and their implementations.
24
Jul

Session 11

Computer Science

- Practice Problems We'll solve a few practice problems from competitive programming competitions to train our understanding of algorithms and their implementations.
26
Jul

Session 12

Computer Science

- Practice Problems We'll solve a few practice problems from competitive programming competitions to train our understanding of algorithms and their implementations.
28
Jul

Session 13

Other Topics

- Optional Meetup This is an optional meetup for some Q/A and advice for further learning and progressing in competitive programming. I'll share some good resources for learning competitive programming and solving competitive programming problems. I'll also share some competitive programming competitions that are both challenging and exciting.

Public Discussion

Please log in to see discussion on this series.