Domain: alice.org
Stories and comments across the archive that link to alice.org.
Comments · 162
-
Alice
I'd suggest looking at Alice, which was specifically designed for education. It helps new programmers avoid getting stuck on syntax, and provides a 3D environment that is both fun and teaches OO principles. (And Electronic Arts has agreed to let them use some Sims artwork.)
-
3 more you should absolutely look at:
here are 3 more you should look at:
http://www.alice.org/
http://www.opencroquet.org/
http://www.runrev.com/
The first 2 are free, the 3rd is commercial - sometimes
free versions show up on the DVDs from british computer
mags.
I looked at several 3D programming enviroments a few
years ago, and these stood out as being accessible
to beginning programmers. I can't give much detail
beyond that, all three have pretty good documentation
and active communities. They are also notable for making
fairly complex graphics easily accessible.
That isn't much to go on, but it will be very worth your
while to look at these environments. -
Re:Scheme? *ducks*Add my name to the growing list of those who think Scheme is a good suggestion. The key is to choose a language that a) teaches good programming techniques which can be applied to learning other languages in the future and b) is as interactive as possible. If a student can immediately see the results of their efforts and/or correct problems they will become engaged. A write/compile/run/debug sequence will prey upon the impatience of youth and ultimately you'll lose their attention.
In addition to Scheme, others have mentioned Logo which is a wonderful language that many of us learned in our youth. I would also suggest looking at Kid's Programming Language, Squeak (a Smalltalk implementation that seems tailor-made for the way kids think and learn), Alice and perhaps even Ruby or Python both of which have the advantage of a wealth of documentation and code samples. You might even consider the first lesson to be a discussion of programming languages, their differences and their applications. Context always makes it easier to learn specifics. The Hello World! page is a good place to grab examples of different languages for comparision.
Do NOT teach them a markup language (although McDonald's is hiring) or BASIC (there is no need to damage another generation of brains). Last but not least, if anyone suggests PERL thank them for their suggestion and get away from them as fast as possible as they are clearly mentally unstable. -
Re:too young for abstract thought
You, sir, were simply an exception. I was in your league too. Alas, I did the mistake of becoming a teacher 1.5 years ago (I quit, now I am unemployed). Yes, I did teach some programming. You see, I thought too that kids could do this and I was confronted with 16+ year olds that had no concept of a variable. Something I took granted at that age. So, perhaps I was a lousy teacher (I will not argue over that, I know I was a bad teacher), but they did not know what a variable was even tought they had algebra the last few years. Go figure.
Oh, I also tried to teach HTML to a bunch of 13 year olds. That was a bad idea... A really bad one.
No, the AC is right. Most kids have problems with abstract notions. That you'll find slashdotters that knew what a variable was at age 10 is no surprise. I'd bet that over 50% of us knew what a variable was at that age. I too did the mistake of projecting my own competencies on the chidren of today. Of course, the article says it's a computer club. The situation might be different with kids attending a computer club and thus already showing interest.
I that case, why not give Alice a try.
-
Some Education-Specific Language Choices
Several other people here have mentioned Logo - an excellent choice, in my view. I recommend taking a look at the three volumes of Brian Harvey's Computer Science Logo Style
.The Logo tree has spawned several other languages - two worth looking at are NetLogo and StarLogo TNG - both of these languages are particularly well-suited to modeling projects, the first with a traditional text-oriented perspective, the second with a graphical programming interface.
Another programming language specially designed for education is Alice - the language is designed so students can graduate rather quickly to more complex object-oriented languages. Python, Ruby, and Java would all be good follow-up languages to Alice.
Finally, let me gently suggest that you not follow through with at least one portion of your original plan: the game c-jump is a very poor choice for introducing students to programming. Not only is the game completely inappropriate for any child over the age of 3-4 (it is just a very boring version of snakes and ladders), it is also extremely poor from a pedagogical viewpoint, with no creative activity on the part of the students, reinforcing notions of code as arbitrary sets of commands. The first couple of tutorials in Alice will be far more enjoyable for your students, and actually get them involved in some real thinking about programming.
-
kids programming language
I would recommend that you take a look at http://www.alice.org/ The site pretty much speaks for it self. The development takes place inside a 3D graphic enviorment. I think kids will find this very interesting and they can instantly see their results. There is also a text book that may be purchused, however, I'm not sure about the price.
-
YES -- Computer Job w/No Computer Degree
See http://www.infotechemployment.com/ See http://www.alice.org/ Experts say a revamping of the way the subject is taught is also needed. Toward that end, see a new approach to teaching programming. It features educational software known as "Alice" and uses a drag-and-drop method to teach object-oriented programming; it's available as a free download at www.alice.org. Once students learn the basics of object-oriented programming, it's easier for them to code it. A National Science Foundation study of at-risk students found that those who used Alice had a grade of B in first-level computer science, compared with a C for a control group. And 88% of those who started out with Alice moved on to second-level computer science, compared with only 47% of those who didn't use Alice. "We're highly optimistic," says the Randy Pausch, professor at Carnegie Mellon. "Reports from the field, especially from community colleges, are that the Alice approach is highly motivating for kids, and being motivated to do the work is a great reason to want to stay in a major."
-
See Alice announcement
EA recently agreed to fund the development of the next major version of Alice, a programming environment produced by a team of researchers at Carnegie Mellon University.
http://www.alice.org/simsAnnouncement.html
Included in this agreement is the use of Sims characters within Alice. Developers create worlds and place objects and characters within these settings; the actions and reactions of the characters and objects are based on methods. This new funding will allow users to choose Sims characters and use Sims animations.
Alice has been shown to be effective in allowing students to tell stories. AIR, some recent doctoral work in this area indicates that while game playing appeals primarily to male students, storytelling appeals to both female and male students and increases student retention (one of the goals of the study).
jbgreer -
Programming = Unnecessary + Work
OK, think about it. When "we" were teenagers, the only way to play a computer game was to invent one. I know, because that is exactly what we did on the TRS-80 Model III's that made up the computer lab in high school. There was no internet, no free games to download, no cable TV. We had to create our own entertainment.
Nowadays, who needs to program when you can just find one someone else wrote on the 'net and download it for free? Or get the 'rents to buy you the latest gadget that comes installed with all the entertaining gizmos one's little heart could desire.
The point here is that we need to find a way to make programming seem a little less like work and more fun. Try Alice. http://www.alice.org/ Java programming in 3D as an introduction to programming. This will help, and if more of us "tech geeks" take the time to inspire our youth to figure out how the magic works, their little creative minds may go in the direction of CS for the fun of it. Not because it is tedious work. -
You just need better tools
Take a look at the Aliceprogramming project. The current 2.0 release gives you a Java-like programming language controlling objects in 3-D rendered worlds. The development environment is designed to be attractive to beginners - program construction is mostly drag-and-drop. Download it (available for Windows and OS X (PPC - Intel is in the works) and give it a whirl.
And, the next major release is being done in collaboration with Electronic Arts, and will have Sims-level graphics. -
Kids do still program
Speaking as one who currently teaches computer science in high school classrooms, I can offer my own anecdotal evidence to the contrary: students do still program computers. That said, I agree with much of what others have said here. These days there are usually several different courses that tend to be lumped together as 'computing', although some of them have nothing to do with one another save that they involve a computer:
- keyboarding, aka typing
- computer literacy, aka word processing, productivity applications, etc.
- introductory programming,
- intermediate programming,
- AP computer science
The first two in the list have little if any programming component. I say little, though the second course may cover a number of use of spreadsheets and through that the use of formulae, conditional expressions, etc. [ I should note that there is a online journal dedicated to documenting the various ways in which spreadsheets can be used to teach various concepts - see http://www.sie.bond.edu.au/ for more details. ]
The introductory and intermediate courses may have widely differing names depending upon when they were introduced into the school system; a local public system calls the second course "Data Structures", most likely because it was introduced during the Pascal heyday. Even though these two course sound like a close-knit progression of coursework, they actually may be quite different. Two of the local systems teach a different language (Java) in the second course than is used in the first course (VB.Net). The reasons for this choice are not entirely clear. Pascal was introduced into high school classrooms largely via the Apple II series; even the emergence of the IBM PC and its clone still gave access to Turbo Pascal. Not to imply that VB.Net is a step backwards, but the return in the high school classroom to QBasic, VB 6, and then VB.Net seems driven more by the availability of textbooks than other factors. I welcome a more informed explanation.
Originally Pascal was chosen as the AP Computer Science language of choice. { Here A.P. means Advanced Placement, high school courses with an associated standardized exam; many colleges and universities recognize exam scores and award credit towards degree programs. } For whatever reason, though, that choice was relatively short lived - perhaps driven by a 'pragmatic' crowd that wanted a 'real programming language' to be taught in the high school? At any rate, Java is now the language used in the the AP Computer Science exam. There is talk of changing the exams again to use a more language agnostic format.
A great many other tools and languages are taught in addition to or besides these, obviously. A smattering of ones that I know of or have used:
- The TeachScheme project http://www.teach-scheme.org/ exists to provide resources for those who wish to use Scheme in introductory high school and college courses. { And DrScheme rocks.... } I personally know one high school instructor who went through their workshop and adopted their approach and who had good things to say about it. { In fairness, though, he is currently teaching Java due to his participation in an NSF-funded grant. } For those looking for a natural follow-on to Java or more 'traditional' OOP programming, might I suggest having a look at Proulx and Gray's work in
How To Design Classes and ProfessorJ
http://www.ccs.neu.edu/home/vkp/HtDCH/ http://www.drscheme.org/.
- Alice http://www.alice.org/ is getting a lot of well deserved buzz, especially in light of the recent announcement that EA will be funding the development of their next major version (3.0), which will include features from the popular Sims game series. Caitlin Kelleher's work in extending Alice into a storytelling environment has also produced good results, esp -
Re:Learning curve of linear vs OO?
-
Re:Teachers arent programmers
In highschool I have yet to meet a computer teacher that is a trained programmer, other than self taught. Most are business/science teachers that get the job to try to teach kids to program while most kids goof off.
As a current computer science high school teacher, I'd have to agree. Secondary ed computer science endorsements are ridiculously easy to obtain. In most states, you only need about 25 college hours of "computer classes". That could mean anything from a class in "HTML" to a class in "Microsoft Office". In fact, I have never heard of an official computer science exam that teachers have to pass.
I attended an AP Computer Science summer workshop for teachers in 2005. I was appalled at the number of CS teachers who could not write a for loop. Most of the teachers there were business or math teachers who were forced to provide a class in programming.
At one interview I had for a high school, the principal asked me "does anyone program computers anymore?". She was refering to the fact that todays computers do not boot with a copy of QBASIC in ROM. (i.e. Apple IIe, C64, TRS-80)
Another reason that students aren't taking programming courses is that there are so many other computer classes being offered now. And they are easier to pass! Our school offers Photoshop, Fireworks, Dreamweaver, Flash, Video, Computer Repair (A+ cert), Networking.
Finally, programming just isn't that sexy to your typical high school student. Students see that making a game in Flash (without Actionscript) is so much easier than all of the crap you have to do in Java or C++. Many of the high school CS teachers teach the entire course using System.out.println.
Encourage your local schools to look at adopting software that encourges programming:
-
Re:AlicePiggy backing on something visible, here's a summary of some of the shorter suggestion posts:
- http://www.alice.org/
- http://www.ogre3d.org/
- http://www.yake.org/
- http://www.delta3d.org/
- http://www.panda3d.org/
- http://www.idsoftware.com/business/techdownloads/
- http://irrlicht.sourceforge.net/
- http://www.garagegames.com/products/1
And personally I think http://sauerbraten.org/ looks interesting, but I've never used it. -
Alice
You can try: http://www.alice.org/
-
Scheme, yes -- Python's good too
Scheme has status as a traditional teaching language in some circles, and there are good materials for it. Python tends to be quite good in my experience as well -- I once held a programming class for interested middle school students using Python, and none of them had difficulties with the language (though algorithmic thinking was more of an issue; next time, I'm waiting 'till after they've passed algebra).
Python certainly comes with enough of a standard library to be immediately useful; it has far less gotchas than C (my personal favorite for low-level work), C++ (its never-should-have-been-born evil sibling) and kin; it's an OO language but can be used procedurally; and if one is the sort to want to entertain rather than focus on teaching the core stuff, there are toolkits for doing fun/entertaining things trivially (see VPython for an example). Along those same lines, CMU's ALICE is also interesting -- I think that at one time they were using or porting to Python, though I haven't been up on it for quite some time.
All that said, unlike Scheme, Python is a language that gets quite a bit of real-world commercial use in places that aren't "scheme shops". It's easy to learn, powerful, and not only the general skills but the specific language knowledge will be applicable later -- what's not to like? -
AliceIt seems that many people in this thread are discussing the points of specific languages, and while yes Basic is good for teaching line by line execution, it's not great for teaching data structures. I've not dealt with visual basic in about four years, so I may be outdated, but my opinion at the time was that it simply created confusion. There was a screen for building the interface, and another screen for coding events related to the object. I didn't feel it gave an accurate portrayal of how the program worked, because so many thing were done automatically, the programmer doesn't see half of what goes into the program. As many users have pointed out, Java will confuse new programmers because of it's strict object oriented nature.
In my opinion, you should begin strictly conceptually. A man who was friends with my highschool programming teacher wrote a program called Alice, which is intended to teach programming on a strictly conceptual level. The user creates an environment in which they can create animations with 3d objects. It introduces concepts of object oriented programming, if statements, else statements, functions, for loops, while loops, recursive loops, data structures, and virtually every other necessary concept in programming, without ever having to look at raw code. Once someone has these concepts under their belt, they can generally move to any programming language, only needing to work on syntax, which varies from language to language anyway. I really feel that Alice is the best way to learn programming concepts without having the concepts be tied to a specific language.
Another plus about Alice, is that because it's intended as a teaching tool, it comes with a set of prepared lessons. If you missed the link in the middle of the last pargraph, here it is again. Hope it suits your needs.
-
AliceIt seems that many people in this thread are discussing the points of specific languages, and while yes Basic is good for teaching line by line execution, it's not great for teaching data structures. I've not dealt with visual basic in about four years, so I may be outdated, but my opinion at the time was that it simply created confusion. There was a screen for building the interface, and another screen for coding events related to the object. I didn't feel it gave an accurate portrayal of how the program worked, because so many thing were done automatically, the programmer doesn't see half of what goes into the program. As many users have pointed out, Java will confuse new programmers because of it's strict object oriented nature.
In my opinion, you should begin strictly conceptually. A man who was friends with my highschool programming teacher wrote a program called Alice, which is intended to teach programming on a strictly conceptual level. The user creates an environment in which they can create animations with 3d objects. It introduces concepts of object oriented programming, if statements, else statements, functions, for loops, while loops, recursive loops, data structures, and virtually every other necessary concept in programming, without ever having to look at raw code. Once someone has these concepts under their belt, they can generally move to any programming language, only needing to work on syntax, which varies from language to language anyway. I really feel that Alice is the best way to learn programming concepts without having the concepts be tied to a specific language.
Another plus about Alice, is that because it's intended as a teaching tool, it comes with a set of prepared lessons. If you missed the link in the middle of the last pargraph, here it is again. Hope it suits your needs.
-
This is a _really_ bad game...
...and an even worse educational tool.
If you look at the actual game, you will find that it is simply a version of "Chutes and Ladders" with programming language terminology grafted onto it. There are no strategic choices involved, and no aspects of the game that require that kids do any programming whatsoever. It also incorporates sample code gems such as:
x/x means "x divided by x". A number divided by itself equals one. Therefore, the player always gets to move one space from this location.
Wonderful - let's teach kids how to write really bad code.
I feel very sorry for any parent that spends $21.95 for this piece of junk. Scott Aldie's remark in the Wired article is right on the mark - this game is nothing more than a gimmick, and not a fun one.
By contrast, if you would like kids to learn programming, and have fun while doing it, take a look at Alice (http://www.alice.org/). Not to mention that you get to save the $21.95 for a game your kids will actually enjoy...
-
May I suggest....
That you find a book first. In fact - find Head First Java" IMHO the best book to teach teens about programming. Next arm yourself with a woman of renown to teach object orientation, namely Alice, she will amase you and your teens. Lastly, once they have the basics down after the new year, get them up and running Code Rally and the winner of the Grand Prix gets extra points towards that grade!!Sera
-
Here is what the site says-Dolphin.
"I think GNOME/KDE are to Squeak what Apple was to PARC. It's great that you've got an interesting platform to play with, but you need somebody who cares about shipping a product."
http://www.object-arts.com/
---
http://www.alice.org/stage3/projects.html
"The Alice Development Kit is a framework for designing 3D worlds. It is designed to allow the novice programmer, or even the non-programmer, the ability to create fully interactive and responsive worlds."
http://www.dmu.com/croquet/
-
ALICE
you might try to introduce the students to something like ALICE which from the site: Alice v2.0b is the next major version of the Alice 3D Authoring system, from the Stage3 Research Group at Carnegie Mellon University. It has been completely rewritten from scratch over the last two years.
The focus of the Alice project is now to provide the best possible first exposure to programming for students ranging from middle schoolers to college students.
I remember playing around with it when my cousin wanted me to teach her programing, though she lost interest before I was ever able to demo the program. It seemed pretty interesting, although a little on the slow side, but that was a couple of years ago. -
Re:Get Python + Pygame
And game programming in Python is really easy using Alice.
-
Compare to Teddy and SmoothTeddy.
It sure doesn't look as "clean" as Teddy, a modeling program based on drawing 2d shapes and projecting them into 3D. The demonstration video is very impressive.
There's a newer version called SmoothTeddy, but the additional features have made the interface a little tougher, and the demonstration video spends the whole first half talking about technical improvements over the original Teddy.
Teddy was the 3D modeling system used for Alice, a 3D programming environment designed for grade school children.
All of this software is free to download. -
HmmmmThe article wasn't really that clear on exactly what NLP is, but they pointed at something called Alice.
On that site, there's http://www.alice.org/whatIsAlice.htm which saysRather than having to correctly type commands according to obscure rules of syntax, students drag-and-drop words in a direct manipulation interface. This user interface ensures that programs are always well-formed. In addition, Alice reifies object-based programming by providing animated, on-screen 3D virtual objects.
So, this is just like Visual Basic. I know that can't be true, or else Microsoft would be marketing VB as NLP. So what am I missing? -
Bad Bad journalism
Something seemed amiss. Anyone who is smart enough to write a debugger would immediately understand the problems with a natural language debugger. I googled the "alice programming language" and found What is Alice. Alice is a language designed for children. Hence this is a debugger designed for children.
I think developing programming tools for children is pretty rad, but the journalist totally omitted this was a tool for kids. What's up with that? -
ALICE does exactly that
The problem is it's hard to find a language where you can have a reasonable graphical app up and running with only a couple days or weeks worth of learning time.
ALICE, a 3D programming language, originally built on Python, rewritten in the last two years in Java. Previously mentioned, in an earlier, similar Ask Slashdot. Within 15 minutes, you can make a 3D program which reacts to mouse interaction.
It's object oriented, you can't make syntax errors, as you build programs by dragging and clicking blocks. For instance, you drag in a for loop, then you drag in the command to rotate some object in your scene, then you select the object from the dropdown, and so on.
Funded by NIST, it's been used in intro to CS classes, and has been shown effective at teaching programming concepts. Your tax dollars at work. Check it out.
-
ALICE does exactly that
The problem is it's hard to find a language where you can have a reasonable graphical app up and running with only a couple days or weeks worth of learning time.
ALICE, a 3D programming language, originally built on Python, rewritten in the last two years in Java. Previously mentioned, in an earlier, similar Ask Slashdot. Within 15 minutes, you can make a 3D program which reacts to mouse interaction.
It's object oriented, you can't make syntax errors, as you build programs by dragging and clicking blocks. For instance, you drag in a for loop, then you drag in the command to rotate some object in your scene, then you select the object from the dropdown, and so on.
Funded by NIST, it's been used in intro to CS classes, and has been shown effective at teaching programming concepts. Your tax dollars at work. Check it out.
-
ALICE does exactly that
The problem is it's hard to find a language where you can have a reasonable graphical app up and running with only a couple days or weeks worth of learning time.
ALICE, a 3D programming language, originally built on Python, rewritten in the last two years in Java. Previously mentioned, in an earlier, similar Ask Slashdot. Within 15 minutes, you can make a 3D program which reacts to mouse interaction.
It's object oriented, you can't make syntax errors, as you build programs by dragging and clicking blocks. For instance, you drag in a for loop, then you drag in the command to rotate some object in your scene, then you select the object from the dropdown, and so on.
Funded by NIST, it's been used in intro to CS classes, and has been shown effective at teaching programming concepts. Your tax dollars at work. Check it out.
-
Alice?
Rather than Logo, how about Alice?
Ok, so I know it's based on Python which you said was too complicated, but the subset you need for doing neat things in Alice is not so bad I think. Plus you get the exciting visual feedback of seeing your characters move around the screen and do stuff. Sort of like the same fun you might get from logo, but there's only so much drama you can get out of a few geometric squiggles on the screen.
With Alice you can make little 3D movies in your spare time that actually tell a story.
Well I guess it depends on how creative your mom is whether this would be interesting to her. I don't think my mom would get too far with it. She'd be more interested in something that would let her do geneology things or family history stuff.
I guess the key is to try to find some programming related things that tie into your mom's interests. Like maybe she'd enjoy learning to use video editing software so she can put together some nicely edited family videos, or maybe she might want to learn html and put together a family website. That's more the kind of stuff I think my mom might like. You'll have to think about what might be fun for your mom. I only know the kind of fun she likes to have in the sack. ;-) -
Re:Lucky SOBs
I went to CMU. I also had the opportunity to work with one of the people in the class a bit early on (I remember one nasty late night session with that guy finding an inverted branch bug in the compiler that Bob Rost had written).
CMU has a couple of game dev classes. James Kuffer teaches an *excellent* game dev class that started on the PC (Windows/Linux, whatever you're interested in) but apparently this year has moved to including the XBox for some folks interested in brewing up XBox games. The party he threw at the end of the class, with game systems and games as prizes, tons of projectors playing games on a huge screen, and people chatting about algorithms and the like was cool. There were guest speakers from a ton of dev houses, and the class was co-taught with someone fromm the UT2004 team. There's another class aimed at game design that I'm not familiar with, and Randy Pausch's Building Virtual Worlds. CMU has recently had a bad streak of luck with graphics classes (every time they start beefing up their graphics department, ATI or NVidia or someone comes in and hires them away -- I never had the opportunity to take Graphics II for this reason), but it's still fun to muck around with this stuff.
While this sort of thing is cool, it's not something that cannot be done anywhere. These classes are more something that people do because they're fun or for the hell of it. NES Dev in particular only gave a three credits (and CMU's metric is roughly a credit for each hour a week you should spend on a class, including homework, which is wildly unrealistic for NES Dev). It's run entirely by a student that thought that getting together a bunch of people who wanted to do up some NES games for the heck of it would be fun. You can do the same thing with folks online. These classes aren't really part of the core curriculum (especially this one).
I do have to say one thing -- while it's neat to have new NES games, the limitations of the system are...stunning. It's very frusterating to do a lot of things, and difficult to indulge in the cleaner designs of today. In many ways, it's nice to develop on newer systems.
I think that CMU is a blast, and I'll recommend it to folks interested in CS (particularly if they want to go into research). However, you really can get a good education anywhere -- if you take classes and do the bare minimum anywhere, you can get by only doing a minimal amount. There are few resources at CMU that you can't get at elsewhere with a bit more effort. Do stuff you're interested in! If you want to learn about networks, run out and add some cool features to one of the P2P clients out there. Like graphics? Hook up with the Crystal Space team or one of the raytracer folks out there, and try implementing somem of your ideas. Hanging out with people that are enthusiastic about the same things you are and like trying out new stuff is, IMHO, the biggest benefit of being somewhere like CMU, and while you may not be able to be physically where you are, they're all over FreeNode and on tons of computer science forums and the like. Even for grad school -- all the stuff you can learn from is out there on research papers, and I've found that professors are marvelously helpful if you simply fire off a randomm, nice email with a question -- I've sent emails to people at all kinds of academic instutions that I wasn't at with short questions that aren't answered on the 'Net, and if they get intrigued (and good professors are generally pretty easy to intrigue) it's often not hard to get a friendly answer or two.
The single best (and IMHO, the toughest) undergrad CS course at CMU is Steven Rudich's 15-251 class. All the course notes assignments, and content are freely available online, and you are free to go through the course yourself. Prof. Rudich is a great lecturer (an example: his first lecture each year involves him ru -
Civ 3 or FreeCiv
FreeCiv supports OS X with Fink. I would think this would be a great game for the kids to get together and play. It would teach history, let them learn about ancient technologies etc.
If you feel like paying money, you might also think about getting Civilization 3, I've never played this game myself, but I recall Civilization II had a lot of good historical information about various technlogies and epochs in history. I would assume that this version would have something like that as well.
If you have any windows machines you might also consider exposing them to Alice, not it's not American McGee's twisted (and quite fun) game, but a project from Carnegie Mellon to teach kids about 3D and Game Programming. -
Use Alice
Alice is a free simple 3d system based around Python - I can highly recommend it, my two ten-year-olds and even my six-year-old have been playing on it.
It's developed by Carnegie Mellon University, and at it's simplest is directed towards telling interactive stories. It's sufficiently flexible to allow a wide range of applications, however. The interface is intuitive, and it has a large library of pre-built objects to get started with.
-
Re:Control expectations
Sorry to reply to my own post but I also remembered Alice put out by CMU's CS dept.
-
places to start: alice.org
... small, simple programs that do cool things.
I believe this is right, which is why I've installed Alice on our family computer to seduce youngsters into programming. What's cooler than an interactive 3D modelling environment?Alas, it only runs on Win32 right now, but they are looking for collaborators to beef up their Mac and Linux prototypes. This would be very worthy work for folks looking to test their 3D programming chops.
-
places to start: alice.org
... small, simple programs that do cool things.
I believe this is right, which is why I've installed Alice on our family computer to seduce youngsters into programming. What's cooler than an interactive 3D modelling environment?Alas, it only runs on Win32 right now, but they are looking for collaborators to beef up their Mac and Linux prototypes. This would be very worthy work for folks looking to test their 3D programming chops.
-
Use Alice with Python
There is the Alice project at http://www.alice.org Its goal is to help teach children programming methodology (problem solving using a language, versus just teaching the syntax of a language).
From the site "The focus of the Alice project is now to provide the best possible first exposure to programming for students ranging from middle schoolers to college students"
It's free (binary and source), but runs only under MS-Windows (uses Direct-X). -
Teaching 3D Graphics to programmersOne thing the article was looking for is a very simple programatic interface to 3D graphics. Such a thing has been around since the mid-90's. The Alice projectaims to teach 3D programming to novice programmers, though more people who are high-school age or older.
Alice uses Python for its programming language.
-
CMU's Alice
Check out Alice, a free gift from CMU's Entertainment Technology Center. It aims to provide a strong first exposure to programming.
-
programming intro with PythonALICE is a great tool for teaching Python programming to kids via object-oriented 3D animation. I used it to teach a week-long computer camp for 11-12 year olds here in New York, and was amazed at how quickly the kids took to the tool and were motivated by it. It's free, but unfortunately it's for Windows only. From the site,
Alice v2.0b is the next major version of the Alice 3D Authoring system, from the Stage3 Research Group at Carnegie Mellon University. It has been completely rewritten from scratch over the last two years. The focus of the Alice project is now to provide the best possible first exposure to programming for students ranging from middle schoolers to college students.
-
One of the more interesting HCI projectsAlice is a 3D Interactive Graphics Programming Environment for Windows 95/98/NT built by the Stage 3 Research Group at Carnegie Mellon University. The goal is to make it easy for novice programmers to develop 3D environments and to explore the medium of interactive 3D graphics. The current version of Alice authoring tool is free (as in beer).
Alice is primarily a scripting and prototyping environment for 3D object behavior, not a 3D modeler, so Alice is much more like LOGO than AutoCAD. By writing simple scripts, Alice users can control object appearance and behavior, and while the scripts are executing, objects respond to user input via mouse and keyboard.
I see an opportunity here for a free (as in speech) version. It could go a long way in the acceptance of Linux at the elementary school level.
-
Re:Sweet, but...
-
Educational Programming Environments for KidsThis happens to be what I'm doing a Ph.D. on. Here are some environments which might be of use (they're all pretty slick and engaging):
Alice)
Essentially a 3D version of Logo. Users program 3D worlds and have characters which interact. Very cool (and no cost). The underlying language is Python.Agentsheets
Stagecast
Both very good environments which allow children to build simulations of anything which interests them. They both use visual languages to reduce the need for keyboards.ToonTalk
Users program robots to perform tasks. All done using programming by demonstration.Lego Mindstorms
Yeah, don't need to write anything here. It's wicked.Alternatively, you can wait until I develop my environment, but don't held your breath...:)
-
c good model for high level graphics programming?
At that point, a higher level graphics API will finally make good sense. There is debate over exactly what it is going to look like, but the model will be like C.
It seems odd to adopt C as a model for universality. I was working with a co-worker of mine who was having trouble compiling some good-old-fashioned ANSI-compliant C code on MSVC 6.0, because it isn't standards-compliant. While most architectures seem to be able to compile a dialect of C, I dunno if one can really say C is universal. While the rate of change for introduction of incompadabilities with C seems to be slowing, it acts very much like an organism continually mutating and diversifying itself.
An interpreted language like Python may be a better model, because it behaves transparently in spite of the underlying architecture. That and some folks are already using it as a high-level graphics language. -
Suggestions from a High School AP Teacher
The youngest group I have taught are 9th graders (freshmen) with no real programming experience.
You didn't mention exactly what age as elementary can span from K to 8th grade.
I'll assume 5th to 8th grade.
Well LOGO is certainly the oldest, but here are few things that kids really love:
1. Karel++. You can do alot of simple to really complex things with this if you intend to teach programming at a young age. You can download this and materials for free. It's alot like Logo except in C++ style. I think even 5th graders could do some simple tasks on it. Basically kids order a robot around using member functions from a base class, but they can inherit the base class and add new functionality to the kids. I don't have the link, but just look for it on google.
2. Alice. Alice 3D world This is pretty cool if you have at least Pentium II's. It allows kids to write scripts for manipulating 3D objects and essentially making movies. The software is free and will even convert your movie into a cool pluggin for IE.
Look here to see some examples of Alice for my classroom:
Computer Science with Karel++
3. Webpage programming. Download netscape composer and teach a bit of web page design. Have them go to http://www.flamingtext.com and make cool logos for the pages. Teach the students to put in midi's or paste in DHTML from http://www.dynamicdrive.com
Hope this helps! Sounds like you'll have fun! -
Re:Best thing to ever happen to the Python communiI'll second that. I'd consider myself something of a Perl devotee. Though I'm primarily a C++ coder, there are some times a scripting language is the right way to go. In the past I've always used Perl for those things, but just now reading that Apocalypse2 thing gave me pause. I devoured the camel book. Enjoyed every wacky and twisted page. But there comes a point when you just want to get some programming done without having to consult a reference chart for every other line of code.
Perl's (and Larry's) "There's more than one way to do it" philosophy is fascinating as programming language theory, but when it comes to really designing something remember this: It's actually easier to write a sonnet than to write free verse. This may seem counterintuitive at first -- there are more rules to constrain you when you write a sonnet. It must be harder to do! But wait, if you're going to design something GOOD it's got to have to have some kind of consistent form and organization in the end anyway. If you write free verse you will have to craft that all yourself, choosing from an infinite possibility of ways to organize words. But if you write a sonnet, that's all taken care of: you just concentrate on the CONTENT, on what you want to say.
Larry might argue here that that's all well and good, but people still write plenty of free verse -- its probably more common today than ever, in fact. That may be true, but there's also probably more BAD free verse poetry today than ever as well. And brining this back to code, presumably we're actually talking about getting work done here, not expressing one's deepest feelings or inner angst with subtlety and tenderness. A good poem should be read a dozen times at least, and you'll get something more out of it on each read. A good program should only need to be read once. Subtlety that requires a dozen reads to notice is not a virtue! Going into an unfamiliar program knowing the form and syntax ahead of time just makes it that much easier to decipher.
So good luck to all you Perl poets out there. I wish you luck. But as for me, I think I'm going to check out Python over the summer. It looks like a language that won't force me to keep on thinking about low level design and syntactical form, but instead free me to think about CONTENT.
I also hear it's a pretty good scripting language for 3D apps (e.g. Alice3D and Disney's recent big switch to it.)
-
Toys fresh from the rabbit hole.
I've seen a cool little toy/tool from the folks at Carnegie Mellon. It's called Alice, and it's a pretty interesting 3d graphics package for the web. Oddly enough I learned about this from a multimedia class. I'm a little more taken with Teddy2 and major props to Takeo Igarashi at the University of Tokyo. Teddy2 is a spiffy little tool for building objects. And as long as I'm plugging 3d graphics tools I like to putter around with, check out Texture Weapons. It is certainly worth checking out some of the demos. This isn't just another way to make 3d widgits...ok well maybe it is, but they are really cool widgits, and sometimes more.
-
Alice
-
Re:Flash is a piece of...I'm sorry for my tone.
That's right, make me feel guilty for my tone now, why don't you!
;^)ActiveX controls and browser plugins can have uninstall programs. One that does is the free Alice 3D plugin. If I browse through my Add/Remove list right now, I see "Alice99 Plugin" listed. I notice their installer is a downloadable EXE, but I'm under the impression that an install program can also be packaged in a
.CAB file for autodownload during a web page load, although I could be wrong.I just find it obnoxious that Macromedia go to some lengths to install their product seamlessly, and have it update itself, but don't (or didn't) make it just as easy to uninstall.
-
Re:*ahem*Touche.
However, despite the fact that Alice is decidedly not aimed at the geek crowd, the fact remains that it is pretty darn cool.
And linking to MS is fairly reasonable to get "Service Packs" and DirectX updates.
___