BACKGROUND: Learning to program a computer is difficult, but a new software program developed by scientists at Carnegie Mellon University called Alice makes the learning process fun, as well as more accessible to both girls and boys. Alice could revolutionize the way computer programming is taught in the United States.
HOW IT WORKS: Alice programming software is currently used at 100 US high schools and universities. Instead of focusing on the manipulation of numbers and code, the Alice programming language lets students drag and drop 3D characters -- people, houses or animals -- into scenes on the computer screen, move them around, and tell stories as the student is learning the basics of programming. One major advantage is that it makes abstract concepts concrete in the eyes of first-time programmers. The number of students studying computer science in US colleges and universities has dropped 50% in the last five years. Studies funded by the National Science Foundation have shown that Alice improves student performance and retention at the college level, especially among young women and minorities.
SPEAKING ITS LANGUAGE: To make a computer do anything, you have to write a computer program. A computer program is a set of instructions that tell a computer exactly what to do. The instructions might tell the computer to add up a set of numbers, or compare two numbers and make a decision based on the result, or prompt the user to input something. But a computer program is simply a set of instructions for the computer, like a recipe is a set of instructions for a cook or musical notes are a set of instructions for a musician. The computer follows your instructions exactly and in the process does something useful -- like balancing a checkbook or displaying a game on the screen or implementing a word processor. In order for a computer to recognize the instructions you give it, those instructions need to be written in a language the computer understands -- a programming language. There are many computer programming, just like there are many spoken languages. They all express approximately the same concepts in different ways. A compiler translates a computer program written in a human-readable computer language into a form that a computer can execute. The EXE files on your computer contain executables -- machine-readable programs translated from human-readable programs. When you are telling the computer what to do, you also get to choose how it's going to do it. That's where computer algorithms come in. In computer programming, there are often many different ways -- algorithms -- to accomplish any given task. Each algorithm has advantages and disadvantages in different situations.