Links and resources mentioned during CS4HS

Alan Kay: Doing with Images Makes Symbols

An amazing talk on user interface design touching on important parts of the history of computing. A comment reads: "I believe this should be required watching for anybody who claims to design or build a computer system, no matter if hardware or software."

Alan Kay: Doing with Images Makes Symbols Pt 1 (1987)

Google App Engine Tutorial, NCSS Masterclass

This workshop on Google App Engine was prepared for the National Computer Science School Masterclass in early 2012.

NCSS Masterclass Tutorial: Google App Engine

Programming Games in Adobe Flash, Liviu Constantinescu

This workshop on programming games in Adobe Flash was prepared by Liviu Constantinescu for the National Computer Science School in 2010.

Programming Games in Adobe Flash Tutorial

Flash game zip file

Learnable Programming: How do we get people to understand programming? Bret Victor

Programming is a way of thinking, not a rote skill. Learning about "for" loops is not learning to program, any more than learning about pencils is learning to draw. People understand what they can see. If a programmer cannot see what a program is doing, she can't understand it.

Link to blog post

Computer Science-in-a-Box: Unplug Your Curriculum

Computers are everywhere. But how many of us understand how they work, or how they think? Computer science explores these questions. Every student can benefit from an introduction to the science that is possibly most central to their lives - computer science.

CS Unplugged

Google Code In

Google Code-in is a contest for high school students aged 13-17 with the goal of encouraging young people to participate in open source.

Google Code In

Google Lesson Plans

Not all are Computer related, but a great site for lesson plans, including everything from Impact of Climate Change with Kofi Annan to Introduction to Scientific Method.

Google Earth Lessons

Google Apps for Education

Computational Fairy Tales

Computational Fairy Tales includes over 70 stories that cover a range of different computer science concepts from introductory programming, to high level CS concepts, to data structures and algorithms, to computational complexity, to practical programming tips. Different stories are written in different levels of detail and abstraction (and thus might be better matches for different audiences).

Everything from Hunting Dragons with Binary Search [Algorithms] to Caching and the Library of Alexandria [High level CS Concepts].

Computational Fairy Tales

NCSS Challenge

The Challenge is a 5 week programming competition that runs annually from early August to early September. Registration open online in late April:

The Challenge is unique in that unlike existing competitions, we don't expect students to know how to program in advance, but instead teach them to program over the 5 week course. We provide a short set of notes covering one or more programming concepts (e.g. if statements) and a series of fun and challenging programming problems that require those concepts to solve. This year, there will be three streams of Python programming: beginners, intermediate and advanced, and we encourage students considering applying for the Summer School to also complete the challenge.

The Challenge can be used as an in class activity for the 5 weeks, or an extension activity for students to do in their own time. A number of teachers have also used it for their own professional development. This year we will have 3 different streams (for differing levels of Python, from very straightforward programming drill up to some problems that would make the best of our undergraduates think hard for a long time about the solution).

This year we had over 4200 high school students (and some primary school students) and 350 teachers compete in the Challenge from right across Australia.

Registration for the Challenge will opens online in April, and students can sign up at, or your school can register a group of students.

Registration costs $20 per participant for each stream (incl GST). This can be paid by students individually via paypal, or your school can be invoiced for them as a group.

Girls' Programming Network

An outreach activity for high school girls interested in computers and IT.

The Girls’ Programming Network is an extra-curricular program for high school girls interested in computers and technology. GPN is run by girls, for girls. The tutors are a mix of university IT and software engineering students (from the University of Sydney and others) as well as professional software engineers. GPN investigates different topics in IT, ranging from transistors to artificial intelligence, while they learn to program in Python. Each term we run a workshop where students complete a small project, such as a "game in a day". For all our workshops, no previous programming knowledge is assumed, and we organise extension activities and lectures designed for more advanced students. GPN lets girls explore computer science and engineering in an encouraging, fast-paced atmosphere, and gives the girls the chance to meet new friends with similar interests, find female university students as mentors, and find out about university life.

Test Drive Your Studies

Each year the University of Sydney invites Year 12 students interested in studying engineering, project management or information technology to come on campus and test drive their studies. They get to participate in interactive hands-on activities in areas such as chemical and biomolecular engineering, electrical and software engineering, project management and IT.

Test Drive Your Studies

The Programming Challenge for Girls

Margot Phillipps gave a lightning talk on the Programming Challenge for Girls, an international programming language using Alice for girls in year 10. If you are interested in starting a Sydney chapter, or helping come up with questions for the challenge, email cs4hs and we'll pass it on to Margot!

Engineers Without Borders

'Engineers Without Borders envision a transformed Australia where appropriate and sustainable technology is at the forefront of every engineer’s mind. We also perceive a conscious and concerned Australia that is a leader in the fight against poverty and an advocate for the rights of all people around the world.'

-Excerpt taken from Engineers Without Borders' vision.

High School Outreach is a program, one of several developed by Engineers Without Borders (EWB) to achieve it's vision of a transformed Australia. It involves having volunteers, typically from university levels going out and teaching high school students about social justice and the place of engineering and technology in delivering social justice.

Currently, in NSW, there is a (approximately) double period session including a presentation on what engineering is, what is Sustainable Engineering and an application in Water/ Sanitation issues around the globe. The second half of the session is an activity which engages the students in an enjoyable and creative way. In particular, a water filtering exercise is presented where groups of students not only build, but also represent a country (quite realistically) in literacy ability and GDP. The challenge is to negotiate global politics and use what you have to build a water filter using materials you can buy from a 'shop' using instructions you can only partially understand if your country's literacy is low.

Experience shows students utilising a great number of techniques and global negotiations to gain aid and in some cases, begin wars when they think the situation is unfair, and consequently not only learn some technological aspects of sustainable engineering, but the global challenges.

If you are interested in finding out more how EWB can visit your high school to present such a session, or keep an eye out for new presentation packages become available to be presented at schools, please email


Robogals' university student volunteers visit schools to introduce girls to engineering through robotics workshops, and presentations about what engineers do and the difference we make in society.