Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save amrdraz/52d368063b98ca1b65ef to your computer and use it in GitHub Desktop.
Save amrdraz/52d368063b98ca1b65ef to your computer and use it in GitHub Desktop.
Literature Review Draft
#A review of Games, Learning, and Programing
[TOC]
#Abstract
Games are good at teaching players a lot of things. Noting this undeniable association between games and learning, in addition to the prevalence of games in our lives; educators have thought out to harness the power of games in learning.
This Summary is a preparation and future reference, for designing a game that teaches algorithmic thinking in and introduction to computer science course at the German University in Cairo.
The aim is to explore the current state of the art games in teaching algorithmic and computer science related content; in order to evaluate and construct what works best.
The review will organise, classify and analyse current games.
The review will explore current other teaching tools and techniques that aid learners of the field.
The review will note the underlying learning theory and features that powers these games and technologies.
The review will note current and suggested means of assessing learning and games, and how the games adhere to those methods.
Finally a reference of the existing organisations and researchers working in this filed at the time of writing this review.
#####Keywords
Education, Games, Gamification, Coding, Programing, algorithmic thinking, Learning, Teaching
#Conclusion
Once the review is done a summary of the review and conclusion on how to proceed with the research will be written here as TL;DR for who ever is reading this.
#Synopsis
This is a documentation of how the review is beign conducted
currently just writing down thoughts on how to proceed.
###Structure
One way of structuring this review is to talk about learning theory which is the aim of any educational game, to teach the students, then talk about educational games - within the scope of this research - and how they adhere to these theories.
A listing and comparison of varying teaching methods, in addition to games, such as simulation and visualization will help put the system design into perspective.
###Source
The reference for this review is a summary of having gone through the MIT Edx courses for educational technologies, designing games for learning, the coursera course on playful learning, papers found on ACM IEEE and google scholar, and games found on websites and articles, as well as, exploring the references of papers.
###Tools
stackedit.io which is a markdown editor tool with live preview was used in order to type this, this is because it has spell checking while providing teh convinience of the markdown syntax which aids in quick formating (in contrast to Latex).
##Learning
<!--- still under construction -->
In his research Egenfeldt-Nielsen (2007)[^three_generation_of_edu_games] discusses three generations of educational games.
The first generation mainly involves drill-and-practice games that use a behaviorist approach to condition the players. Essentially fueling the learner motivation to practice more.
The second generation games enhance the motivation of the learner by incorporating player attention, focus, curiosity and fantasy. They require the player to develop deeper understanding in accordance with the cognitivist approach.
Egenfeldt Nielsen presents then a third generation of instructional games, which are based on a constructivist approach, meaning the player creates knowledge through experiences and interaction with social communities.
####Constructivism [^constrctivism]
Constructivism is a theory -- based on observation and scientific study -- about how people learn. It says that people construct their own understanding and knowledge of the world, through experiencing things and reflecting on those experiences.
That is the learner must internalize and form his own model of the world. In Contrast to Behaviorism and Cognitivism which assumes that knowledge can be transferred to the learner as delivered
####Teaching for understanding
Teaching for understanding calls for a fundamental shift from a content "coverage" approach – teaching and testing a series of facts and discrete skills – to one that emphasises the "uncoverage" of important, transferable ideas and processes.Contemporary education must shift from an emphasis on knowledge acquisition for its own sake to preparing learners to understand ideas and processes that they can use and apply flexibly and autonomously.[^teach_for_understanding]
####Active Learning
Actively engaging students motivates deeper thinking about course content, brings additional energy to a classroom, and helps an instructor pin point problem areas. This article provides summaries of current practices and gives practical suggestions for implementing active learning in a variety of disciplines. Topics covered include: Questioning techniques, small groups, whole class involvement, and reading & writing exercises.
####Progressive Learning
to be filled
####Learner Paradox
to be filled
##Teaching Programing
The Following are tools, games, and systems aiming at teaching people how to code
###Sandbox Tools
Sandbox tools are systems that allow users to explore and be creative.
They stem from constructivism and the notion that by having the learner build things and tinker they will get a deeper grasp of the underlying mechanism of the subject.
Most of these systems rely a teacher's guidance as they on their own do not provide any particular curriculum.
####[Computer Craft Edu](http://services.minecraftedu.com/wiki/ComputerCraftEdu)
Players take control of powerful but clueless turtle robots in the game. They will start with a tile-based interface to learn the fundamentals of programming in a fun, accessible environment. This process will serve as a springboard for learners towards using real programming languages to solve problems, make games, and improve their worlds
####Hopscotch[^hopscotch]
No typing. No syntax errors. Just drag and drop blocks. Hopscotch is an intuitive, friendly programming interface designed for everyone, well everyone with an iPad.
####Scratch[^scratch]
With Scratch, you can program your own interactive stories, games, and animations — and share your creations with others in the online community.
Scratch helps young people learn to think creatively, reason systematically, and work collaboratively — essential skills for life in the 21st century.
Scratch is a project of the Lifelong Kindergarten Group at the MIT Media Lab. It is provided free of charge.
####Alice[^alice]
Alice is a free to use 3D programming tool that allows one to create animations for telling a story, playing an interactive or a video to share on the web. The main purpose of Alice is to give your kids basic exposure to object-oriented programming. By using Alice, students will learn to create animated movies (containing people, animals and vehicles) and simple video games.
__Cons__
- Must install on computers, no web version
- Is not simple to customized in order to address algorithmic problems outside it's visual domain.
####Code Hero
Code Hero is an educational video game in development by Primer Labs, designed by Alex Peake. The game aimed to teach players how to write programming languages by having them create code in a 3D world. Tho it was not realized due to [lack of funding](http://www.engadget.com/2013/08/15/code-hero-one-year-later-money-lawsuits-and-poker/)
###Visualization Tools
####[Python tutor][python_tutor]
Python tutor is a popular open source online tool for visualizing python code, the tool is very popular and used by educators as well as embedded in several online books and other tools.
It covers multiple languages (python, java, javascript to name a few) and it's online presence is one of it's strong points [^python_tutor_paper].
Python tutor acknowledges that the tool has received a mass of positive anecdotes but lacks sufficient in a formal academic studies which can further enhance the tool.
One highly requested feature is mini expression visualisation as present in UUhistle (another visualization tool)[^UUhistle_paper]
####[EPLE](http://epleweb.appspot.com/)
A mashup of Blockly and Online Python Tutor
##Programming Games
Programming and algorithmic thinking poses games can be classified into Robot Programming
####[Code Combate](http://codecombat.com/)
![A Level in code combat](https://dl.dropboxusercontent.com/u/23310937/masters/codecombat.png)
Code Combat is a title that has players inputting actual code to play (Javascript currently, with experimental support for CoffeeScript, Python, Clojure, and Lua). Code Combat does a great job of entertaining while teaching.
The player can work through single-player levels in this fantasy-themed game, then unleash your new-found coding skills on other players.
There is also a multiplayer tournament called Greed where players can fight against each other and may the best AI win
Code Combat hopes to stay free by helping companies recruit high-level players (yes, playing a game can get the player a job).
####[Lightbot](http://www.gamescanteach.com/games/light-bot-learning-objectives-and-game-elements)
Lightbot is a programming puzzle game from Danny Yaroslavski, a Canadian university student. The goal is to make your robot light up all of the blue tiles on a 3D grid. The twist is that you have to do this in one run by programming your robot with a series of instructions.
Yaroslavski says that Lightbot teaches concepts like planning, testing, debugging, procedures, and loops. Your kids will just enjoy getting the endearing robot to light up everything in one turn.
####[Robozzle](http://www.robozzle.com/)
Robozzle is a robot-programming game similar to Lightbot tho much wider and social as users can compete with others on a leaderboard as well as discuss and design levels.
![Robozzle level example](https://dl.dropboxusercontent.com/u/23310937/masters/robozzle.png)
The player instructs a rocket on a 2D grid aiming to collect all stars on the grid.
The possible actions are forward, turn left, and turn right, function call, color tile; these actions can be called based on the color of the tile the rocket is currently standing on.
Players can comment, like or dislike, and rank a puzzle which crowd sources provided the robozzle community with an abundance of puzzles to solve.
The game is available across platform with varying prices from free to 2$
####[Machineers][machineers]
Machineers is an adventure title that lets players interact with broken machines, using coding principles and a drag-and-drop interface to fix them up. It does not have math or code in in it so kids will not be able to start programming, but it trains logical thinking and something called procedural literacy, which is the ability to read and write processes.
This one is actually the product of a masters thesis[^machineers_paper].
####Bee-Bot
Educational developer TTS designed BeeBot to help younger children program with positional language and programming sequences of instructions. The simple, accessible app has 12 top-down timed levels set in progressively difficult mazes.
There’s also a companion app for kids aged 7+, called BeeBot Pyramid. It’s priced at $0.99.
####Codemancer
####[Hacked](http://www.hackedapp.com/)
A Mobile game where the player plays the role of a hacker, hacking systems by writing programs that meat a set of in and out criteria.
The game has an interesting editor
####[Ludos](www.digitaldreamlabs.com/ludos/)
For K-5 age 4-12
Due out this August, Ludos aims to make programming a real hands-on experience for younger kids. Ludos allows players to physically place instruction tiles directly onto a grid, programming the actions of on-screen characters.
Cork the Volcano will be the first Ludos game, and it has a strong focus on coding basics like planning, sequencing, and debugging. [Other games](www.digitaldreamlabs.com/games/) will also be made available for the system, which is an open platform that anyone can develop for.
##Gamified sites/platform
In addition to games, Gamification can be used for engaging students in solving more complex problems by utilizing the common game mechanics such as points, leaderboards and achievements.
####[codeacademy](http://www.codecademy.com/)
A platform for teaching programming languages and html. Code academy is designed to be the online learning experience of the future.
Allows teacher users to create courses with lessons (although they now hide the option to sign up as teacher).
__Opinionated Cons__
Code academy suffers from the learner's paradox by teaching inside a sandboxed environment with limited lessons, the learner doesn't get to practice enough; while on the other hand getting rewarded for completing the lessons leaves him with a false sense of understanding
####[codewars](https://www.codewars.com/)
Codewars aims at _"Achieve code mastery through challenge"_
Codewars presents users (warriors) with programing challenges (katas) exploring various ideas in computer science and programing design patterns in order to enlighten everyone.
The platform contains gamification elements such as points (honor), leaderboards ranking, levels (kyu), and progress bars.
In addition to the already present katas on the platform, warriors can author their own challenges, this enables the platform a means of crowdsourcing problem generation.
__Pro__
Encourages community contribution, managing to amassing a large portion of problems. Makes it easy to create challenges and even collaborating on refining them.
__Cons__
While code wars is a great place to find challenges, they are not structured in a lesson format, even if beginers where to filter by easy problems they would not find it easy to just start coding or follow a curriculum
####[checkio](https://www.checkio.org/)
![enter image description here](https://dl.dropboxusercontent.com/u/23310937/masters/checkio.png)
Checkio is a Gamified platform for hosting coding challenges, similar to codewars, the platform possesses gamification elements such as points and leaderboards.
The platform looks like a game, a lot of work was put into refining the graphics; however the challenges themselves are presented as a word problem and are similar to those of online judges in difficulty making it unsuitable for beginners.
__Cons__
Similar to codewars checkio does not seem to be for beginners, the simplest problems are somewhat difficult and require deep understanding of programing concepts. In that sense it is more like online judges.
##Useful Tools and Libraries
####[Blockly](https://developers.google.com/blockly/)
Blockly is an open source block editor that converts visual blocks into javascript or python. It is used to create all sorts of [projects](https://developers.google.com/blockly/about/examples) and is used in many of the programing games and learning tools.
##Notable sites
###Notable Authors in Games For Learning
May they present future source of research paper
####[James Paul Gee](https://en.wikipedia.org/w/index.php?title=James_Paul_Gee&oldid=654406659)
James Gee is a researcher who has worked in psycholinguistics, discourse analysis, sociolinguistics, bilingual education, and literacy. Gee is currently the Mary Lou Fulton Presidential Professor of Literacy Studies at Arizona State University originally appointed there in the Mary Lou Fulton Institute and Graduate School of Education. Gee is a faculty affiliate of the Games, Learning, and Society group at the University of Wisconsin–Madison and is a member of the National Academy of Education
####[Simon Egenfeldt-Nielsen](https://en.wikipedia.org/w/index.php?title=Simon_Egenfeldt-Nielsen&oldid=659433430)
Simon Egenfeldt-Nielsen (Copenhagen, 1975) is a game designer and academic researcher (in the Center for Computer Games Research at the IT University of Copenhagen, Denmark). is CEO of Serious Games interactive. He did a PhD on the educational use of computer games and after that worked as an assistant professor at IT-University of Copenhagen for 5 years on games and learning projects.
He founded Serious Games Interactive in 2006. Over the years he has been involved in developing +100 games for clients like LEGO, Maersk Group, DHI Group, Novo Nordisk, Kaplan, Siemens and World Bank.
He has served on the Digital Game Research Association Board for 3 years, co-founded Game-research.com and authored four books on video games. He regularly gives talks around the world.
###Notable sites
#####[Games and Learning](http://www.gamesandlearning.org)
Gamesandlearning.org is a news and information service aimed at increasing the amount of information available for those interested in developing and funding new educational games for children and young adults. The site is operated by the Joan Ganz Cooney Center at Sesame Workshop and is a project of the Games and Learning Publishing Council. The Council and the Site are made possible by a grant from the Bill & Melinda Gates Foundation. [^games_and_learning_about]
####[Future of game-based Learning](http://egenfeldt.eu)
A blog aims to discuss the area of game-based learning that have a long history but some times seems to be moving sideways rather than forward.
Behind the blog is Simon Egenfeldt-Nielsen. [See more](http://egenfeldt.eu/blog/about/)
###Jouranls
####[Well Played](http://press.etc.cmu.edu/wellplayed)
A journal on video games, value and meaning
What makes a game good? or bad? or better?
The Well Played Journal is a forum for in-depth close readings of video games that parse out the various meanings to be found in the experience of playing a game. It is a reviewed journal open to submissions that will be released on a regular basis with high-quality essays.
<!-- ==================== References ============================ -->
[^machineers_paper]: [Learning Games For Programing](https://henrikelode.com/games/Machineers/LearningGamesForProgramming.pdf)
[^python_tutor_paper]: [Philip J. Guo. Online Python Tutor: Embeddable Web-Based Program Visualization for CS Education. In Proceedings of the ACM Technical Symposium on Computer Science Education (SIGCSE), March 2013](http://pgbovine.net/publications/Online-Python-Tutor-web-based-program-visualization_SIGCSE-2013.pdf)
[^UUhistle_paper]: J. Sorva and T. Sirkia. UUhistle: a software tool for visual program simulation. In Proceedings of the 10th Koli Calling International Conference on Computing Education Research, Koli Calling '10, pages 49-54, New York, NY, USA, 2010. ACM
[^teach_for_understanding]: [Teach For Understanding](http://jaymctighe.com/wordpress/wp-content/uploads/2011/04/Teaching-for-Understanding.pdf)
[^alice]: Carnegie Mellon University (1999). Alice. http://www.alice.org/
[^games_and_learning_about]: http://www.gamesandlearning.org/about/
[^scratch]: Scratch [website](https://scratch.mit.edu/about/)
[^Hopscotch]: [Hopscotch](http://www.gethopscotch.com/)
[^three_generation_of_edu_games]: [Egenfeldt-Nielsen, S. (2007). Educational Potential of Computer Games. Continuum International Publishing Group Ltd](http://egenfeldt.eu/papers/third_generation_JEM_egenfeldt-nielsen.pdf)
[^constrctivism]: Cooper, P. A., (1993), Paradigm shifts in designing instruction: From behaviorism to cognitivism to constructivism., Educational Technology, 33(5), 12-19
[refrence_article_for_12_games]: http://venturebeat.com/2014/06/03/12-games-that-teach-kids-to-code/view-all/
[python_tutor]: http://www.pythontutor.com/
[machineers]: http://www.machineers.com/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment