Competitive Programming encapsulates the art of solving problems using computer science (CS) techniques with the spirit of sporting activity. Participants are required to create programs to solve logical problems according to predetermined set of specifications. The nature of the problems encountered are such that answers can be obtained by having even the most rudimentary programming skills. The challenge, therefore, is in how to solve such problems in the most elegant fashion possible. Elegance in this context, refers to a solution that is designed to obtain the correct output while minimising the time taken, as well as the amount of resources required for the computation. The study of computer science directly addresses problems of this nature.
The National Olympiad in Informatics (NOI)
The National Olympiad of Informatics (NOI) is Singapore's most prestigious annual competitive programming arena organised by the NUS School of Computing that is designed to provide a serious problem-solving challenge to all coders. Participants have to score points by solving problems under a 5-hour time limit, with higher number of points credited for more elegant solutions. Top NOI winners will also be invited to join the International Olympiad in Informatics (IOI) Training Team to undergo further training. Selected particiants will then represent Singapore in the IOI competition. Students desiring to take part in the NOI will have to register with their school. No exceptions are allowed. For more information on the NOI, please refer to the official website.
About this Course Series
The courses in this track will train our students to be able to compete in the NOI contest with the overall aim of enabling them to be all-rounder programmers who are better prepared to produce quality software and ready to face hard research problems in Computer Science. Focus is placed on the study of fundamental computer science competencies such as:
It is worth noting that the study of the components above is highly specific to the nature of competitive programming. Although the requisite knowledge of algorithms, data structures and problem solving techniques is emphasized in almost all our other courses, this course will take a more rigorous and clinical approach in its discourse of the aforementioned topics - especially with regard to problem solving. On this note, the problem solving techniques that will be discussed refer to CS concepts that are grounded in theory and proofs. All classes in this track will be conducted in the C++ Programming Language. Although the NOI competition allows for multiple languages (Java, Python, C++) to be used, C++ remains the programming language of choice. Students will be better prepared to understand how to address subtle complexities of coding when programming in C++ due to the rigorous nature of the language. Find out more about our Competitive Programming with C++ courses below, or please enquire now for more information on our NOI training in C++. Please note that these courses are by invitation only.