South African Computer Olympiad
   HOME

TheInfoList



OR:

The South African Computing Olympiad (SACO) is an annual
computer programming Computer programming or coding is the composition of sequences of instructions, called computer program, programs, that computers can follow to perform tasks. It involves designing and implementing algorithms, step-by-step specifications of proc ...
competition for secondary school students (although at least one primary school student has participated) in
South Africa South Africa, officially the Republic of South Africa (RSA), is the Southern Africa, southernmost country in Africa. Its Provinces of South Africa, nine provinces are bounded to the south by of coastline that stretches along the Atlantic O ...
. The South African team for the
International Olympiad in Informatics The International Olympiad in Informatics (IOI) is an annual competitive programming competition and one of the International Science Olympiads Student competition, for secondary school students. The first IOI was held in 1989 in Pravetz, Bulgar ...
is selected through it.


Competition rounds

The competition consists of three rounds. The first is a pen-and-paper aptitude examination at the entrant's school, testing a combination of general knowledge, computer knowledge, problem-solving and basic programming. (Entrants are often required to program an imaginary
robot A robot is a machine—especially one Computer program, programmable by a computer—capable of carrying out a complex series of actions Automation, automatically. A robot can be guided by an external control device, or the robot control, co ...
in a fictional
Logo A logo (abbreviation of logotype; ) is a graphic mark, emblem, or symbol used to aid and promote public identification and recognition. It may be of an abstract or figurative design or include the text of the name that it represents, as in ...
-like language.) Although the first round is not compulsory, it is accessible to those who do not have access to, or knowledge of, computers. 31,926 students entered it in 2006. In the second round, actual programs must be written and executed. There are five questions, each requiring a different program to be written. Most entrants answer only a single question. The tasks usually include one basic shape-drawing program—for example, the 2004 question "TriSquare" required output such as: * * * * * ***** * * * * * * ***** The top performers—those who have answered four or five questions in the second round—are invited to the final round. In prior years, between 10 and 15 students were chosen; but the introduction of a new language, and increased funding from the
Shuttleworth Foundation Shuttleworth may refer to: * Shuttleworth (surname) * Shuttleworth, Greater Manchester (historically in Lancashire), a hamlet at the northeastern extremity of the Metropolitan Borough of Bury, England * Shuttleworth (canvassing) * The Shuttleworth ...
in 2005, has increased it to between 20 and 30 students. The final round is held at the
University of Cape Town The University of Cape Town (UCT) (, ) is a public university, public research university in Cape Town, South Africa. Established in 1829 as the South African College, it was granted full university status in 1918, making it the oldest univer ...
, where finalists stay over a weekend. It consists of two five-hour rounds, the first on Saturday and second on Sunday. The problems are similar to those in the USACO, though somewhat easier. A prize ceremony is held that Monday.


Prizes

The top six entrants are awarded medals (one gold, two silver and three bronze). There are cash prizes, both for the winners and their schools. There were bonus prizes totalling R100,000 for using
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (prog ...
, due to Shuttleworth's sponsorship. The sponsorship ended in 2013 and no additional prizes are given for using
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (prog ...
presently. The top performers are invited to a squad which will be given additional training from the Olympiad coaches and the USACO training programme. Four programmers are then selected from the squad to represent South Africa at the
International Olympiad in Informatics The International Olympiad in Informatics (IOI) is an annual competitive programming competition and one of the International Science Olympiads Student competition, for secondary school students. The first IOI was held in 1989 in Pravetz, Bulgar ...
.


Languages

In the first round, it is not necessary to know a
programming language A programming language is a system of notation for writing computer programs. Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
. In the second round, contestants may use a language of their choice. In the third round, however, the set of languages is restricted to: * Pascal - the language taught in high schools in some South African provinces (including
Gauteng Gauteng ( , ; Sotho-Tswana languages, Sotho-Tswana for 'place of gold'; or ) is one of the nine provinces of South Africa. Situated on the Highveld, Gauteng is the smallest province by land area in South Africa. Although Gauteng accounts f ...
) *
Delphi Delphi (; ), in legend previously called Pytho (Πυθώ), was an ancient sacred precinct and the seat of Pythia, the major oracle who was consulted about important decisions throughout the ancient Classical antiquity, classical world. The A ...
- the language taught in high schools in some South African provinces (including Free State) *
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
- taught in other provinces (including the
Western Cape The Western Cape ( ; , ) is a provinces of South Africa, province of South Africa, situated on the south-western coast of the country. It is the List of South African provinces by area, fourth largest of the nine provinces with an area of , an ...
) *
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (prog ...
- sponsored by
Mark Shuttleworth Mark Richard Shuttleworth (born 18 September 1973) is a South African and British entrepreneur, founder and CEO of Canonical, the company behind the Ubuntu Linux operating system. In 2002, Shuttleworth became the first African to travel to spa ...
* C/ C++ Python programs are given a 10x time bonus.


South African IOI Medalists

The following table lists all South African IOI medalists ordered by colour and number of medals (or ranking if gold), then by last year a medal was received. B represents a Bronze medal, S a Silver and G a Gold.


References

{{reflist, 2 Programming contests Competitions in South Africa