Despite competitive programming slowly gaining interest in the country, to our knowledge, there are currently no schools or training centers which give formal training all-year round. It is to our advantage that 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 joyful journey of discovering competitive programming. 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 the programming challenges listed in the Past Problems page (link also below).
We are always looking for ways to advance programming education in the country but unfortunately this is only what we have for this moment, given our limited time and resources. If you have any new ideas, or wish to extend help feel free to contact us at [email protected]
- There is also yearly summer programming camp held at ADMU every year, (usually) during the last two weeks of May.
- We are also coordinating with an external organization which plans on holding training sessions but the details are not yet finalized. We will post about it on the website (https://noi.ph) as soon as things become clear.
If you don’t have access to the training discord server yet, you should request access to the discord server by emailing [email protected] with your name, grade level, and school.
First Timers and Beginners
Want to be the very best but don’t know where to start? We suggest that you look at this introductory article.
If you’re looking for lecture notes, read the (soon-to-be polished) PDFs of week0, week1, week2, week3, week4 of last year’s weekly training. Be sure to test your skills by trying the assigned exercises attached in each PDF. You can also try some of the previous NOI problems.
Finally, if you have any questions about the materials or get stuck, we suggest that you gather enough courage and email [email protected] We’re always happy to help. But of course, we wont know you need help until you ask help so help us help you by asking for help via email.
Past NOI Problems
Reading lecture notes can only take you so far. Get your hands dirty and start coding soltuions to previous NOI tasks! To see if your solutions pass, following these steps to enable yourself to submit.
Stumped in one of the problems? Perhaps there are some topics that you’re missing. The scientific committee has been writing several training materials on various topics that might help you out! Not only will this help you prepare for the NOI, but the IOI as well. The website is in the process of being updated depending on the availability of the committee. If you would like to request for a topic to be written, feel free to give a gentle nudge by sending an email to [email protected].
Are the references not enough? Do you want to go beyond and learn more? Check out this curated list of reference materials:
Learn to Code
Challenges and Contests
Free Online Courses
Participants may use the following free online courses and resources:
- Fundamentals of Computing Specialization Track at Coursera
- Algorithms, Part 1 (Princeton) at Coursera
- Algorithms: Design and Analysis Part 1 (Stanford) at Coursera
- CS 161 – Design and Analysis of Algorithms at Stanford OpenClassroom
- Introduction to Java Programming at Udacity
- Algorithms at Udacity
- Introduction to Computer Science at Udacity
- MIT OpenCourseWare: Introduction to Computer Science and Programming in Python
- MIT OpenCourseWare: Mathematics for Computer Science
- Stanford Course: Engineering Algorithms (Self-Paced)
- MIT OpenCourseWare: Introduction to Algorithms
- MIT OpenCourseWare: Design and Analysis of Algorithms
- Algorithm Design, by Kleinberg
- A Primer for Mathematics Competitions, by Zawaira and Hitchcock
- The Art and Craft of Problem Solving, by Zeitz
- Introduction to Algorithms, by Cormen, Leiserson, Rivest, and Stein
- Competitive Programming 3 by Steven Halim
Further books may be found at the IOI’s Recommended Reading List.