Showing posts with label training. Show all posts
Showing posts with label training. Show all posts

Sunday, February 1, 2009

UCT Algorithm Circle

After much grinding away, we had our first class of the UCT Algorithm Circle this past Thursday. We invited 32 of the most talented school kids we could find in the Cape Town area and invited them to some training. We're also slowly inviting kids outside of Cape Town to train online. We're teaching them from the very basics of programming right through to the advanced algorithms and data structures required for the IOI.

For the first class, we introduced the basics of Python. We were amazed at how quickly the kids caught on. After a 20 minute lecture and 60 minute practical session they were understanding operations, variables, stdio and more. The majority of these kids are in grades 9 and 10, and amazingly half are girls.

If things continue at the rate they're going now, this could provide a serious boost to our IOI results in upcoming years. We've always been welcome to the idea of training a wider audience, but finding the talented kids and getting them interested has always been a brick wall we couldn't knock down. This time though, collaboration with one of the people involved in the teaching kids for the IMO has seriously helped change all that.

To see the kids we have, just check out some of their introductions in this thread to see what they're capable of.

Friday, September 21, 2007

New SACO Forums

Us organisers of the SACO have been very busy discussing ways to expand our training program beyond the top six. Up until now we have taken the six medalists, trained them and selected four from the squad to form the IOI team. A lot about what I'm about to discuss is still a work in progress and may well change. I'm also leaving out plenty details to prevent this from backfiring.

As a first step, we now have a new forum board which we hope will gather together a community of SACO participants, be they future, past or present. We will use this as a means to expand our knowledge from the current squad of six, out to anyone who's eager to learn more.

Although we're still working on polishing up the forums, you can start registering here:

http://olympiad.cs.uct.ac.za/forums/

It's open to anyone, but the people we're looking to attract are those wanting to learn more about computer science than what's offered at school. If your school doesn't teach programming, come join! If you're too young to start learning programming, but you want to learn to program early, come join! If you find what you learn in computer classes at school too easy, please come join! If you're a school teacher and are involved in the SACO or want to get involved (by this I mean getting your students participating), please join!

We're working towards an event pretty much like the UCT Maths Circle, where top school students get invited to one of two groups. There will be a Programming Circle where Python will be taught to those either learning to program or wanting to further their programming skills. Then there will be an Algorithm Circle for those who are ready to learn about all the algorithm goodness. Want to learn about search techniques, graph theory, dynamic programming and much more?

This year we ran the SACO as an online contest open to everyone. We got such positive feedback and we've realised that it doesn't require much additional effort. We are therefore strongly considering making all our training camps and future SACO's available to everyone online. Hopefully this will attract some locals as well and better prepare them for the SACO, eventually giving us a better IOI team.

There's plenty more we're discussing, but that should keep your mouths watering if you're interested in getting involved. :-P

Saturday, August 4, 2007

Training the Youth

When a paper-based round was added to the SACO in 2003, suddenly the participation nearly tripled. Students without access to a computer were finally able to participate. However, participation in the computer-based second round (or what was originally the first round) remained fairly constant. If someone did well in the first round, but never knew how to program, there wasn't much they could do.

Yesterday, however, the situation was improved slightly. The top students from schools unable to compete in the second round were invited to learn Python. I was one of the three students that went to teach them. There were 15 of them and only 4 of them had any programming experience (Java). The rest knew nothing about programming before we visited them.

I was expecting there to be maybe a couple interested with the rest wishing they weren't there. I couldn't have been more wrong. They were all very eager to learn and they caught on surprisingly quickly. There was one that wasn't too interested, but the rest found it so amazing that they were learning to control the computer. Withing less than three hours they understood up to if-else statements. To put it into perspective, it usually takes two weeks before loops are covered at UCT using Java.

The SACO started advertising Python since 2005 when The Shuttleworth Foundation sponsored prizes for the top Python 3rd round participants. Since then UCT has spawned a 1st year Python course for advanced programmers as a replacement to the usual Java course. Most students taking the course get hooked onto Python. While I do have other favourites for other tasks, I certainly like using Python for several tasks mainly due to its conciseness.

There have been discussions about Python replacing Java at schools. However, most teachers are against change and so it's a difficult battle. From the experience of training these kids with little to no programming experience I can confidently say that Python is a much better teaching language than Java. There's nothing that is required before it can be explained, such as the classic "public static void main(String args[]) {". Compare System.out.println() in Java to print in Python. It's self-evident which is easier to teach.

The training continued today, however I had other kiddies to train. This time it was ACM ICPC training. The regional contest is coming up in mid-October so now was time to get the training started. As I can no longer compete, having won two regionals, I am now doing the training. Some of this bunch are older than me even, which makes for could make for an interesting experience if one of them wins. We went over some old problems, which some of them tackled fairly well.

Next weekend the training continues, but once again with a different bunch. I be training the IOI team I'm going with to Zagreb, Croatia on the 14th. For that training we have to set new problems for them to solve under competition conditions, i.e. a mock IOI.