Competitive programming is slowly gaining interest in the country. There are now a couple of schools and training centers offering formal training. In addition to this, there are a lot of free online courses (listed below) where motivated students can learn to program.
The most motivated students need not feel alone in their study of informatics. There is a Discord server for NOI.PH. Instructions on how to join are listed below. This Discord server is exclusively for students from the Philippines. The Discord server is a place where students and trainers can ask questions and share ideas with each other. In particular, one can ask questions when feeling stuck on some of the online courses or when needing hints for past NOI problems.
We are always looking for ways to advance programming education in the country. If you have any new ideas or wish to extend help feel free to contact us at [email protected].
- AMSLI Philippines hosts regular training programs on basic programming in Python.
- Ateneo de Manila University hosts a yearly summer programming camp, (usually) during the last two weeks of May.
If you don’t have access to the training discord server yet, you should request access to the discord server by filling out this form: https://noi.ph/discord-invite/. In the meantime, the Discord server is available only for Filipino students.
Don’t really know how to program or want to brush up on your skills? Check out these free introductory courses online, made by some of the best universities in the world:
- MIT OpenCourseWare: Introduction to Computer Science and Programming in Python
- Introduction to Python Programming at Udacity
- C++ for Programmers at Udacity
Math and Algorithms
Math and algorithms are the foundations of computer science. After learning to program, you should learn these too. Again, fortunately, there are many free courses online from some of the best universities in the world:
- MIT OpenCourseWare: Mathematics for Computer Science
- MIT OpenCourseWare: Introduction to Algorithms
- Algorithms, Part 1 (Princeton) at Coursera
- Algorithms, Part 2 (Princeton) at Coursera
- Algorithms (Stanford) at Coursera
Watching lecture videos and reading lecture notes can only take you so far. Get your hands dirty and start coding solutions to previous NOI problems! Follow these steps to enable yourself to submit your solutions.
Online judges are websites that contain thousands of programming problems made by people all over the world, many of them from past programming competitions. In addition to letting you read the problems, online judges typically allow you to submit solutions and get automatic feedback on whether your solutions were correct or not. Some even have “editorials” – explanations on how to solve a problem for people who are unable to solve them. These are the most popular online judges at the moment:
- Codeforces – one of the largest, most popular sites today
- AtCoder – another one of the largest platforms, holds online contests which are conveniently timed for people in East Asia (including the Philippines)
- CodeChef – well-known for its long contest format (monthly 10-day-long contests featuring insanely hard problems)
- HackerRank – more generally aimed at people preparing for technical interviews, but also contains many difficult problems
- CS Academy – currently on hiatus but has some interesting problems and a nice interface
- Online Judge – an oldie but goodie containing problems from previous International Collegiate Programming Competitions, going as far back as the late 1990s and early 2000s; best used with uHunt
- Sphere Online Judge – another online judge which has been around for a longer time, contains many classic problems that serious competitors should know about
- ProjectEuler – slightly different from the other platforms listed; problems have a more mathematical flavor and only the final answer, not the entire program, is required to be submitted
The top three websites listed above even hold online competitions regularly. Try them out!
Recommended Books (Free)
Recommended Books (Buy Online)
- Algorithm Design, by Kleinberg and Tardos
- Introduction to Algorithms, by Cormen, Leiserson, Rivest, and Stein
- The Art and Craft of Problem Solving, by Zeitz
- A Primer for Mathematics Competitions, by Zawaira and Hitchcock
Further books may be found on the IOI’s Recommended Reading List.