Frequently Asked Questions about the NCSS Challenge
If I enrol in the beginner's course, can I switch to advanced (or vice versa)?
Yes, that is possible via a link on your profile page, until the second week of the Challenge.
Can I switch to the embedded course from a Python course
No, unless you already have access to one of the boards that are used in the course. We plan to enrol as many students in the embedded course as we have boards. Switching after the courses have started will probably be too late to obtain a board.
Can I enrol in more than one stream?
Yes.
What is this Python you speak of?
Python is a programming language developed by Guido van Rossum in the early 90's. The Python website tells the whole story. Python is named after "Monty Python's Flying Circus"' and there are frequent (and gratuitous) references to Monty Python skits in the Python manuals.
Python is an interpreted language which means a separate program, the Python interpreter is required to read and then run Python programs. The Getting Started Guide on the website leads you through installing the Python interpreter for Microsoft Windows and Mac OS X and running your first Python program. Solving the first challenge isn't much harder than that!
Why Python? (and not VB, C++, Java, ...)
Python strikes the right balance between simplicity and power. Python is an excellent first programming language to learn yet is powerful enough to build industrial strength applications, for example, Google and Industrial Light and Magic uses Python extensively.
Python is a small language with very simple and clean syntax which encourages good coding habits. Programs can be run interactively by the interpreter enabling experimentation and making visualisation and debugging simpler. The way to answer a question about Python is to try typing it in!
Python programs can be run on any computer with the interpreter installed. Both the interpreter and an extensive standard library of code are freely available from the Python website and can be freely distributed. Python's documentation is excellent and there are many intro and advanced Python books now available, with a large and helpful community of Python programmers on the web. Most importantly, Python programming is fun! because Python lets you write the programs you want to write. You can build really interesting software in very a small number of lines of code.
What is this new Embedded Course?
While Python is a fun and interesting language the world of computer science is a larger space. The Embedded Course uses a different computer language, C, to develop software for an embedded platform. This platform is actually a small computer attached to your desktop computer via a USB cable. Your purchase the board, at a subsidised price, and we post to you at the start of the course. Programming for this platform lets us show you concepts that are related to the software side of embedded systems, that is, programming the small computers that sit inside everyday objects like your mobile phone.
Do I have to buy a board to do the Embedded Programming course?
Yes, you need frequent access to a board to complete the course as all programming tasks require it. You can share one with a friend or share one at school but otherwise you have to purchase one to do the course. The course uses the board intensively and we would recommend that you plan on 4 to 8 hours of access to the board per student per week.
Can you tell me more about the board used in the Embedded Course, the "ed1"?
Over the last year we have been experimenting with courses that use the open source "Arduino" system ( http://www.arduino.cc ). These courses used normal Arduino boards and required the students to wire up external circuits so the software that they wrote could light LEDs, read temperature sensors and interact with other hardware devices. Wiring up your own circuit presented a few problems; it was not enjoyed by everyone (some people just want to code, code, code), it introduced potential hardware problems (hard to debug your software if the hardware is not working as expected) and limited the range of devices that could be wired up to the Arduino (not all hardware is suitable for a prototype breadboard these days).
We decided that a better approach would be to use a dedicated board. NICTA and ESA (who sponsor this course) have kindly spent money and time building an Arduino clone board, named the "ed1". This board is 100% compatible with the Arduino software and programming environment but has a number of hardware devices built into the board. In particular we now have access to an accelerometer and you will have to do the course to find out more about that ;-)
No really, I want to know more about the board, what does it have on it?
The board includes a range of sensors; temperature, light, accelerometer. Input devices; potentiometer, push buttons. Non-volatile storage; eeprom (to hold data even when the power is off). Output devices; piezo buzzer, LEDs and an LCD panel.
Do I have to give the board back?
No, in fact we encourage you to keep it and keep experimenting using the information that you have learnt in the course and from the many Arduino related web sites out there on the Internet. Feel free to email links that show everyone your post-course projects.
Who are NICTA and ESA and what do they have to do with NCSS?
NICTA is Australia's Information and Communications Technology (ICT) Centre of Excellence. With over 700 people, NICTA is the largest organisation in Australia dedicated to ICT research. The NICTA web site is www.nicta.com.au.
ESA stands for "Embedded Systems Australia" and is an industry organisation made of companies in Australia all with interested in embedded systems. If you are interested in a career in embedded systems then the ESA web site will show you a sample of potential employers. The ESA web site is http://www.embeddedsystemsaustralia.com.au.
Both NICTA and ESA are generous sponsors of NCSS and have done much of the background work to bring you our new Embedded Programming course.
