Science Projects Project Guides Ask An Expert Blog Science Careers Teachers Parents Students

Kid-Friendly Programming Languages and Resources

Overview

I don't know how to program yet. How should I get started?

Do you want to learn how to program or code? Are you worried that it sounds too hard, too complicated, that it will take you too long to learn, or that your school doesn't offer a programming course? Don't worry! There are lots of free resources online that can help you get started and learn to program. You can try it out just for fun or even use programming for a science fair project. Table 1 lists a variety of online resources for different experience levels. If you are a parent or an educator who wants to teach your kids/students to code, but are worried you don't have the appropriate background knowledge, many of these sites will provide great resources for you as well.

Language/Resource Description Science Buddies Projects (if applicable)
Scratch A "graphical" programming language where you snap together blocks of code instead of writing lines of text. Great for beginners and making 2D games and animations. Scratch projects
Code.org Website with lots of free resources to help you learn to code, with options for beginners and advanced students.  
Raspberry Pi The Raspberry Pi is a tiny computer that comes with many of the programming languages listed here, including Scratch, Sonic Pi, and Python. Raspberry Pi Projects Kit, available from our partner Home Science Tools
Sonic Pi Do you like music? Then learn to code by creating your own songs!  
MIT App Inventor Beginner-friendly way to make fully functional apps for smartphones and tablets. App Inventor projects
Alice For intermediate or advanced students, allows you to make 3D animations and simple games. Alice projects
Gamestar Mechanic A simple way to introduce beginners to video-game design. No programming is involved. For an introduction to programming, choose another of the beginner packages.  
GameMaker For making 2D video games. Easy to learn for beginners, but lots of additional options and complexity for more experienced programmers. GameMaker projects
StarLogo TNG For intermediate or advanced students, allows you to make 3D animations, games, and simulations of real-world objects.  
Pygame For advanced students who already have some programming experience. Pygame is a game-centric version of Python, a more general-purpose programming language.  
Code Academy For intermediate to advanced students. Website with lots of free tutorials and online courses for a variety of real-world, text-based programming languages.  
Table 1. Kid-friendly programming languages and learning resources.

Can I use video and computer games in a science fair project?

Absolutely! First, check if your science fair has a computer science category and check with your teacher or fair organizer about what types of projects will be accepted. You can use a Science Buddies , or come up with one of your own. There are two basic types of gaming-related science projects: computer science projects and sociology projects. See Table 2 for more details.

Type of Gaming-Related Science Project* Typical Science Fair Category Aspect(s) of Gaming Covered Project Idea Examples
How video and computer games are made Computer Science; occasionally Human Behavior
  • Game design and programming
  • Computer graphics
  • Computer audio
The usefulness and impact of video and computer games Human Behavior / Sociology
  • Human behavior during game play
  • The effects of social or educational content in games
  • The usefulness of simulations in training and experimentation
  • Ergonomics
Table 2. Different types of science projects can be created using video and computer games.

*Note: Projects that involve only level design are not accepted as science fair projects. (But other types of competitions do accept them.) To be entered in a science or engineering fair, a project must involve either some form of programming, creation of gaming hardware (like building a joystick), or observing/measuring and analyzing how games impact people or society.

How can I make a good game?

Making a video game is just like creating any other piece of art: you need a vision or idea to work from. But the actual creation process requires planning to make sure that all the parts of the game, like graphics, sound, and the actions players can make, work well together. Following the steps of The Engineering Design Process will help make sure you create a well thought-out, successful, and fun product.

It is also important to spend some time thinking about what will make your video game fun. This is a critical part of designing your game. One entertaining way to learn more about game design and the mechanics used to make different types of games exciting is to explore the free version of Gamestar Mechanic. As part of this website, you can play through their quests and become an apprentice game designer in their game-world before you even start programming.

Where can I publish my video game or program?

Many of the resources listed in Table 1 have online communities where you can publish games/programs for other people to see, download, and play. Check out the website for the language you are using to see if there's a way for you to share your work.

*Important Note: Your personal data is extremely valuable, particularly on the Internet, and can be used against you if someone else gets a hold of it. Keep it protected. Never give your real name, address, phone number, the name of your school, or a picture of yourself to anyone online. Email addresses, user account names, and screen names should not be your real name, the name of your school, or some combination of the two. For more Internet Safety tips, visit the Science Buddies Internet Safety Guide.

My parent(s)/teacher(s) do not believe video games can ever be educational. Can you convince them otherwise?

Showing your parent or teacher the information on this webpage might help. You can also show them the Math and Computer Science Careers section of our site. Many good, high-paying jobs require programming skills!