Learn to code
Welcome to the NCSS Challenge, run by Grok Learning on behalf of the University of Sydney. Our competitions are unique in that unlike existing competitions, we don't expect you to know how to program in advance, but instead teach you how to program from scratch over the 5 weeks of the competition.
We also have an unparalleled level of online tutor support for students and teachers who are just starting out. There are points, leaderboards, achievements and forums to help keep you motivated, but it's a friendly competition!
Multiple streams for all levels
As well as being suitable for complete beginners, we also provide other streams for more advanced programmers.
- Newbies is designed for younger students with no prior experience at programming. It teaches Blockly, a drag and drop visual programming language, and is most suited to students in late primary or junior secondary school (10 - 14 year olds);
- Beginners is for students with no prior experience at programming. It teaches the Python programming language;
- Intermediate is for students who have previously completed the Beginners stream and for those students who may have some prior programming experience and are capable of starting off with something harder than Beginners. It teaches the Python programming language. Advanced maths and science students in years 10 and above may also want to enter at this level;
- Advanced is for students who know Python, have completed the Intermediate stream in a previous year and want harder problems. It teaches the Python programming language.
If you're having trouble choosing a stream, check out our Demo Competition for a better idea of the content in each stream.
Different ways to participate
You can participate in our competitions in a number of different ways, either at school or home.
Some teachers incorporate the challenge into their classroom lessons and homework tasks, while others run ‘programming clubs’, and others leave all pedagogical tasks to the tutors online, and just facilitate the students’ involvement. Many teachers use the Challenge as a professional development opportunity, and learn to program along with their students. Some students also compete independently, with or without support from a teacher or parent.
We can support all of these because everything you need to learn is included in the notes and problems, and online tutoring help is available to both students and teachers.
Weekly release of notes and problems
Each Monday at 8am AEST, we release the notes and problems for the week. The notes cover one or more programming concepts (e.g. branching and if statements) and a series of fun and challenging programming problems that require those concepts to solve.
Generally, we expect that you'll spend few hours a week working through the notes and problems, but this varies depending on how old you are and which stream you're participating in.
Solutions and teacher notes will also be released to verified teachers at the beginning of the week. These can be accessed via extra buttons in the title bar of notes and problems.
We strongly enourage everyone to read the notes before jumping into the problems. They're fun and interactive - you can run and edit all the code snippets in them! We've embedded the problems in the notes, so you'll learn a new concept in the notes and then be presented with a problem that uses it.
Each problem has a set of tests and is worth points. You'll write and run your programs to solve the problem in the panel on code editor on the right. Once you think your code is working correctly (and you've tested it yourself!) you can submit your program to the marking system for testing.
If you've failed any of the tests, the marking system will give you helpful feedback to help guide you to a working solution. You'll receive points for passing all the tests for a problem before the submission deadline.
Submission deadline and solutions
The deadline for submitting problems each week is Sunday night (9pm AEST for Newbies, Beginners & Intermediate, midnight AEST for Advanced. After the submission deadline passes, the solutions for that week's problems will be released so we can't give out any points after that.
Solutions are released along with commentary and discussion of problem solving approaches (a button with a puzzle piece will appear beside each question title). We strongly encourage everyone to read through the sample solutions, even if you got the question correct. We guarantee you'll learn something new!
You can continue to work on and submit problems after the deadline. If you've missed a week, we strongly encourage you to go back and catch up on the previous weeks' material, even though they're not worth points, because a lot of the concepts build on top of each other. Try to solve the problems without looking at the solutions first!
We do our best to make sure that there are some problems each week that can be solved by a student who has worked through the notes. Just because a student hasn’t got out problem 7 in Week 3, doesn’t mean they won’t be able to do problems 1, 2 and 3 in Week 4. That said, our competitions are challenges, so the hardest problems in each week will continue to get harder.
Each problem is worth 10 points. There may be different numbers of problems in any particular week so the total number of points available per week may vary.
If you solve the problem (passing all the tests) in the first 5 attempts, you will receive the full 10 points for that problem.
Every 5 incorrect submissions reduces the number of points you will receive for that problem. If you pass the tests on the 6th to 10th attempt (5 to 9 incorrect submissions), you will receive 9 points. Every further 5 incorrect attempts loses another point until 5 points remain.
No matter how many incorrect submissions you make, you will still get at least 5 points for solving the problem before the deadline.
Rank on the leaderboard
The total number of points you've earned for all the problems in a stream contribute to your rank on the leaderboard.
Each stream has four leaderboards: Primary (grades 6 and below), Junior (grades 7-8), Intermediate (grades 9-10) and Senior (grades 11-13), where the students with the highest scores are recognised. Leaderboards have a minimum score requirement of 40 points and list the top 60 places.
The first week is a friendly week
All weeks of our competitions are friendly weeks, but there are no points to be won or lost in the first week -- so if you start late, switch streams, confuse the “Run” button with the “Mark” button or there are any other mishaps, you won’t be disadvantaged.
So don't panic if you're not receiving points in the first week - it's because there aren't any to be won! Never fear, there will be points you can earn for internet glory starting in Week 2.
Getting help from tutors
At the bottom of each problem, there's a button to message tutors. This starts a conversation with a friendly tutor, who can help you solve the problem if you're stuck and the marking system's messages aren't helping.
Tutors can see your code and are all programming experts, but don't expect them to solve the problem for you. They're there to help you understand concepts and guide you through solving the problem. Most of all they're there to help you learn, so don't hesitate to reach out. And don't be surprised if you get a message from a tutor asking if you need help!
Please remember to be as polite to tutors online as you would be in real life. Tutors are people too!
Get help and make friends on the forums
As well as being able to private message tutors, you can post a topic in the competition forums. You can access the forums from a button in the bottom of each problem. Often, your question will already have been asked and answered by someone else. so it's worth having a look!
The forums are also a wonderful opportunity to connect with other young programmers across the country and around the world. We also have special industry tutors, people who use programming in their jobs everyday who work in a variety of industries (e.g. software, finance, research, health and education) for you to talk to.
The forums are moderated by our tutors. We do occasionally have to ban people for inappropriate behaviour, but we definitely prefer not to, so please be on your best behaviour.
All students who've participated in the competition will receive a downloadable certificate (of Merit/Credit/Distinction etc.), depending on the number of points. Australian schools participating in the NCSS Challenge will also have physical certificates mailed to the school.
The certificate cutoffs are (in percentages, not points):
- 50% Merit
- 65% Credit
- 75% Distinction
- 85% High Distinction
- 100% Perfect Score
After the competition
All subscriptions last for 365 days, and you'll have access to the competition until the end of your subscription so you can access the notes and solutions and the programs you've written. This means you can always catch up and complete all the problems after the competition ends if you didn't get quite enough time during the competition.
If you're wondering what to do next, here are some recommendations:
- We run four competitions a year, covering Blockly and Python programming, embedded systems and web development, so you can always participate in the next competition! Check out our upcoming competitions.
- Want to learn more right now? We have self-paced courses where you can dive deeper into programming or web development at your own pace. Check out our self-paced courses.