Teach the Young Computing!


Background

https://plotagon.com/26044



Project Summary

Computational thinking is one of the necessary work skills in the 21st Century. However, few young people in Singapore have been exposed to programming. Most schools introduce only IT literacy but not computational thinking. The challenge in this project is to create a computer game that teaches computational thinking to young people in Singapore. The purpose is to equip these young people with the necessary skills in the 21st Century in a way that is fun and engaging.

Driving Question:

How can we use computer games to teach computational thinking to young people (age 10 - 21)?

Deliverables

  • Computer game application (Windows and Mac) written using Python and Tkinter. To make your Python script executable in both OS, use py2exe and py2App (See How to create a stand-alone Python distribution?). Submit through eDimension.
  • Source code. Submit through eDimension.
  • Demo/Presentation on the application and software design.

Due Dates

  1. Demo/Presentation: 23rd/24th April, Cohort Session 3.
  2. Python Code and Executables: 24th April, 23:59.

Groupings

Students are to use their 2D groups (5 persons/group) to do this project.

Rubrics

Check the following link on how you will be graded. Maximum point is 25 pts.
https://app.box.com/s/wn3vfbgls1uorgekfm83jw7bfk54ietk

Computational Thinking Skills


Rather than choosing certain computational thinking skills, you can also select certain common difficulties that students face when learning computing and try to address it using your game. Some common difficulties:
  • Assignment. Some students think equal sign in computing is the same as equal sign in mathematics. Some students after computing some value never assign it to any variables. Etc.
  • Loops. Students have difficulties to trace program flow in a loop. Students have difficulties with nested loops. Students do not know whether to put a certain statement inside or outside the loop.
  • Conditions. Students have difficulties differentiating the use of if-else or several if statements.
  • Functions. Students do not understand what is a function call, and its difference with function definition.
  • Return statement. Students do not understand the difference between print and return statement.
  • And many others.

Resources

Exploring Computational Thinking
http://www.cs4fn.org/computationalthinking/index.php
http://code.org/learn
TkInter - Python Wiki
Tkinter 8.5 reference
An Introduction to Tkinter
http://www.py2exe.org
https://pythonhosted.org/py2app/

References

http://code.org
http://www.bloomberg.com/news/2014-10-15/why-schools-in-england-are-teaching-5-year-olds-how-to-code.html
http://www.spiegel.de/international/germany/experts-in-germany-divided-on-computer-science-in-school-curriculum-a-899979-2.html
http://www.telegraph.co.uk/technology/news/10410036/Teaching-our-children-to-code-a-quiet-revolution.html