Computer Science Educators Asked by Neelesh V on December 29, 2020
I am currently in the 10th grade. I would like to get started in competitive programming. This are the things I know now:
Mathematics – Currently in pre-calculus Well Mathematics in my country is pretty unstructured. You would be studying bits of everything, and not one after the other. So I self studied up to Algebra II (Algebra I, geometry) so that I can cover it in more depth than in my school, though in school I’m learning through trigonometry stuff, algebra I & II stuff and geometry in varying orders.
Programming:
1.Knows the basics of C, Python, C++(main currently learning)
CS50X completed
HTML,CSS ,JS and sqlite3 with python
What I want to learn for competitive programming(I am unsure):
Discrete Mathematics
Algorithms
Data Structures
4.Dynamic Programming
and I am hoping you’ll help me to structure the remaining necessities and knowledge required. I found some blogs at many places but they were incomplete i.e. they are not well enough for beginners to you know get started on.
I am aiming currently for IOI.
UPDATE:
I am from India.
National qualifications:
These are the stages of IOI qualification in my country:
1.Zonal Olympiads – Either written(pen & paper) or Programming or both
(about 500-800 participants in each)
3.Next if qualified National training camp(about 30)
4.Top 4 are chosen from it to represent at IOI.
Edit: I am from India.
Edit: I am currently taking discrete mathematics online.
I believe I know where to practice.
Which should be first book/course/material to learn?
If your aiming for the IOI, the first step has to be figuring out how to get onto your country's delegation. In the USA (where I am), that means USACO. If not, then you will have to determine what that pathway is. Every country has some method of determining delegates.
The next step would depend a lot on how those delegations are formed within your country. You may have to join a team, and there will presumably be some sort of coach. Most of your preparation and learning will probably focus on the competition used in your country.
And in terms of what to study, the competition itself looks to be very, very focused on algorithms. Until you can find more specific resources to the competitions within your own nation, you could spend time practicing the older, published IOI problems and Project Euler problems, which seem similar in nature.
It's hard to be more specific than that without knowing your country of origin.
Good luck!!
Correct answer by Ben I. on December 29, 2020
I can recommend two things. Project Euler is great for sharpening your algorithmic skills. Also, you can sign up for USACO's training program. It is excellent and you can compete in the USACO competition. It's completely free.
Answered by ncmathsadist on December 29, 2020
Ben's answer on how to find and join a team is spot on. I'll address what you should be studying.
Competitive programming generally is about correct use of algorithms and data structures. There are college courses available on youtube for mastering that subject. At a bare minimum, you should be comfortable implementing a linked list, graph, stack, heap, and binary search tree from scratch (a lot of these require recursion). Once you've mastered those, try to find an algorithm that is reliant on each one to help you build pattern recognition for quickly identifying when a problem calls for a certain structure.
So many problems are graph problems at their core (including most tree problems), so expanding in that area is always good. Dynamic programming will be useful as you approach upper level problems that have strict space and runtime requirements.
Good luck, and remember that programming is not always linear progression. You may struggle for months and have a major breakthrough when you least expect it.
Answered by guitarcat on December 29, 2020
1 Asked on June 19, 2021 by marwi
4 Asked on June 15, 2021
1 Asked on June 12, 2021
1 Asked on June 9, 2021 by jan-koupil
best practice classroom infrastructure classroom management evaluation programming environment
7 Asked on June 1, 2021 by kam-eissawy
1 Asked on May 21, 2021
1 Asked on May 17, 2021 by rewcie
2 Asked on April 4, 2021 by long-le-thanh
1 Asked on March 25, 2021 by boujozo
2 Asked on March 14, 2021
4 Asked on March 12, 2021
0 Asked on March 9, 2021
2 Asked on February 24, 2021 by kanayt
3 Asked on February 24, 2021 by a-bakker
4 Asked on February 16, 2021 by rares-dima
1 Asked on February 4, 2021 by m-braden
Get help from others!
Recent Questions
Recent Answers
© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP