You don't do lectures in kindergarten, but some of the activities in CS Unplugged could work for kindergarteners. If you can count to 15, you can do the binary numbers exercise. http://csunplugged.org/binary-numbers/
Hour of Code, Alice, and Jeroo are all things that could work for a 5th grade curriculum. Alice lets you code functions, loops, conditions, and math expressions in a drag-and-drop environment. http://www.alice.org/index.php
Reminds me of Alice, which is the program we used in my first programming class. It is the glitchiest, most disorganized, convoluted, and unreliable software I have ever used.
Wow.
This game appears to have the cinematics made with Carnegie Melon's Alice project. Anyone ever use that in an Intro to Computer Programming class?
http://www.alice.org/index.php?page=what_is_alice/what_is_alice
The UI is also just terrible, big and clunky. Acting is sub-par from what I saw, and the story seems un-original. Those are my impressions from watching a one and a half minute video.
EDIT: I also didn't know iOS meant Windows 98, Debbie's My Little Pet Shop looked better than this. There are HD iOS and Android games that look on par with current gen consoles xD.
Yo tendria un enfoque muy distinto. En una primer etapa familiarizaria a los estudiantes controlando robots, autitos y maquinas. Me refiero a usar dispositivos fisicos en lugar de una pantalla y un teclado que no llaman mucho la atencion. Tampoco empezaria con algoritmos mas alla de simples comandos o instrucciones y las tipicas estructuras de control if/for/while/until para hacer cosas basicas.
Luego de esta familiarizacion yo enseñaria como hacer juegos. Alice 3D o Scratch irian bien. Hay que minimizar lo maximo posible la friccion y frustracion que producen lenguajes complicados o etapas de compilacion. En este sentido Python me gusta por su sintaxis minima y sus poderosas librerias. Para mas avanzados C# con Visual Studio resulta muy poderoso y rapido para etapas posteriores.
Mucho despues yo formalizaria y estudiaria lenguajes y algoritmos mas complejos.
well, you could try using something like Alice:
>Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web.
Ha qualche passione? magari ha un lato informatico, ad esempio con i lego si possono programmare i robot o se gli piace costruire cose può automatizzarle con arduino.
Per i videogiochi fatti apposta per appassionare alla programmazione c'è Rabbids Coding.
Per i PC ci sono i Kit Arduino (più elettronico) o Raspberry che arrivano con parecchi sensori e accessori per fare dei progetti di automazione /elettronica.
Se hai seguito l'utima lezione di Randy Paush non puoi non interessarti al programma Alice
Discussing this topic has got me thinking.
I have taught programming to kids for several semesters in an after school program, primarily 5th and 6th graders. Many of the kids were not really in my class by choice, but because their parents wanted them there. This is a very important point and why I honestly think programming should be an elective.
I knew I wasn't going to be able to teach them using a full IDE. These kids knew how to use computers, but had no exposure to programming. I through a simpler scripting language would help. So, I taught one class using Python, but there's only so much interest you can hold without graphics. The stupid shit I did with Basic in the early 90s doesn't impress kids today. One kid asked me if I would teach him how to write Counterstrike. Seriously.
So, the next class I taught was with Greenfoot, so they could at least write a program that did something interesting. I got more interest and was able to each the kids the concepts behind boolean logic, basic math operations, functions and state, but the kids had a lot of difficulty connecting the concepts to syntax. I lost most of the kids, but some persisted and were able to produce something meaningful by the end of the term.
I'm thinking that coding itself is too low level for most kids to grasp. I think if we are to teach children the logic and reasoning that is required to produce code, we have to do it at a higher level. Something like the Alice system.
http://www.alice.org/index.php
Things like this might be good to look into.
Or drag and drop tools to create simple games. Can't think of one off top of my head but if he likes making simple games he might go out himself to learn more as he progresses.
You could probably crank out the physics in a few days. Within a week you could probably have some kind of command line version of it (no graphics, but constantly updating position, velocity, acceleration, etc). the graphics would take longer, but as you said if you had the assets, the maps would probably go pretty fast. It looks like the graphics from alice. Hell with alice you could probaly knock out a crappy version of this game with two days of work.
Name sounded familiar, Wikipedia says
> Founded by cognitive and computer scientists from Carnegie Mellon University
Yeah, that's the issue. They produce shit like this as well, which is awful
I would go through and look at the tutorials here: http://www.alice.org/resources/alice-3-how-tos/ and in the Lessons section.
It looks like you don't need any coding knowledge to use it, it's all laid out in different tabs. Give it a try and if you have specific issues, I'm sure someone can help. Good luck and try to have fun with it.
Lots of ways to practice. You can find free university courses online, you can find introductions on any language you can name, or you can just come up with a project.
Oh, and I always recommend Alice as a fun way to learn the concepts:
Honestly, you can't learn what you want to know from a book. Too much nuance in the subject.
My recommendation is go here and download the Alice program. Playing around with the program will help you understand how high level programming languages work.
Programming is about two things: concepts and syntax. It is hard to do both at the same time, especially with a language like C++.
My wife teaches a university class using Alice, and it's a far better way to learn programming concepts than a traditional language course. And more fun. Once you understand concepts, then you can learn the syntax of a specific language.
I would not recommend Python as a first language unless you were wanting to build something in Python.
There's this program called Alice for learning the fundamentals. It won't actually teach you how to program in a language that is actually useful, but it will let you have remarkably fast progress, which is good for beginners who are easily discouraged: http://www.alice.org/index.php
>What's a good first programming language?
If you want to be a programmer, C. If you want to program as part of doing other stuff, something like Ruby or Python.
>What is a good language for my daughter when she's old enough?
Teaching programming to young kids is difficult. You may want to look into something like alice.
I personally got into coding by screwing around on my TI-84, then using Alice to make a "movie" in a class in middle school. So I was a bit older than what your daughter might be.
>Is there an app for that?
Apple did release a new app that's supposed to teach kids Swift. Swift is a great language (IMO), but I'm not sure it will be great for beginners. It's not exactly a lightweight or simple language.
Mindstorms are great and have a drag and drop UI that does a surprisingly good job of teaching some fairly advanced concepts and can be very robust. It's a bit fiddly, though and, of course, expensive. But they are very captivating and engaging, because you get to build LEGO robots that physically move around and do stuff.
If you don't want to go that route (totally understandable due to cost) I'd recommend a language like Ruby or Python over a "kid" language and start with basic programming concepts (math, variables, loops, conditionals, i/o, etc.).
That said, if you do want a more child-friendly UX, people have already mentioned Scratch, but there's also Alice which is still pretty accessible, but allows for a bit more growth, I feel.
There are a few games that can help... Someone mentioned Robot Turtles already and it's a good basic logic game, but at 9, he may get bored with it very easily, so there are a couple of more advanced program and move robot games you could look into; Twin Tin Robots and RoboRally.
Actually, board games are a great way to teach critical thinking, abstract thinking, and problem solving skills. That might be a good place to start before even getting into the programming languages, or a good alternative if programming doesn't hold his interest.
What do you mean by break, exactly? I don't have much in the way of animation experience (I'm starting to feel my way around Blender at the moment), but when I was using Alice in high school, I had some moments where I put in the wrong command or parameter and things got weird. I remember one time I tried to make a person put his arm down to his side, and he put his fist and half of his forearm into his head, as well as more than a few accidental dismemberments caused by rotating a limb about the wrong axis. Is that the sort of thing you mean, or is it something else? Those are pretty great though, and as frustrating as errors like those are, they tend to make me laugh in spite of myself.
My old high school's computer science program, which is quite good, uses Alice for an introduction. I think this might be exactly what you're looking for- interactive, with 3D graphics, and specifically designed for young beginners.
Scratch is a really popular language to teach for elementary and middle-school aged students. It's designed around the (probably accurate) assumption that nine-year-olds aren't proficient in typing, and that having to type code + debug syntax errors is too significant of a learning barrier, so offers a drag-and-drop interface instead.
You can find some other ideas from code.org -- I heard the "Draw with Anna and Elsa/Frozen" activity is particularly popular among preteen girls.
Another similar language is Alice, which is another drag-and-drop style language.
Also, make sure your sister is actually interested in programming before you start. If she's not really interested, the best way to ruin any interest she might have for programming is to force her to learn it.
If you were not already aware of the program, Alice ( http://www.alice.org/index.php) may be something good to introduce concepts to kids. A lot of it is very simple, like drag and drop snippets of code simple, but a good foundation.
There's a lot of great hardware suggestions in the comments, so I'm going to suggest something on the programming side of things. You said he can do some Java and Scratch, so you may want to download ALICE It's a programming environment designed to teach kids. It lets you create 3d animations and games and teaches the basics of object oriented programming. Also, CodeAcademy is a really good learning tool. It's got tutorials on a about 6 languages, and everything is set up like a game, so it may encourage him to keep it going.
Yes.
In my middle school, we would have tech lab. Basically play computer games, then BS what you learned each day from playing it. Replace that with programming with something simple (get the ideas of it flowing). Something like Alice a free graphical intro to programming.
you should make your loop clearer... it's usually best to include a single variable for your loops, i.e. yours ~~can~~ should be rewritten like so:
for(int i = 1; i < 5; i++){ k = i-1; for(int j = 1; j < 5; j++){ l=j-1; System.out.print( "(" + k + "," + l + ")" ); } System.out.println(); }
that being said, I don't understand exactly what you are not getting... it looks like you're asking why it's starting at (0,0)...
instead of at (1,0)...
, which is just because you're starting your value of k
at the same value that you're starting l
at, but reading the below comments, it looks like you're saying you don't know why it's not printing past the first line, which, as someone who does not know much java, I could not tell you why.
btw for anyone who's wondering how I know any java without knowing how to print, I'm taking a beginners class (because none other were offered at my school), which started with Alice, and is now on to Greenfoot.
Alice is pretty good at teaching you the basics. It sort of makes you learn what most operations and conditionals do and will teach you a whole lot of rules when coding. It's more of an animation software for learning the coding rules
A 7th grader recently showed me a program called Alice. It teaches all of the basics of OOP in a visual interface that can also act as a full functioning (albeit a bit outdated) 3D game making software.
Ligero error: sí es verdad que Rebeca (la versión en español de Alice) no funciona en Linux, pero a_ no es privativo, es open source (en este link está el código fuente) y b_ si sabes inglés, podés bajarte Alice para Linux (la versión en inglés) desde este link.
They are but some are more top-notch than others.
I present to you for your WTF? enjoyment "Alice".
"Carnegie Mellon Collaborates with EA to Revolutionize and Reinvigorate Computer Science Education in the US"
I started off on the programming end of game design by learning a simplistic, object, and drag-drop based coding language called Alice http://www.alice.org/ it really helped me to understand things like specific sorts, logic statements, and code structure.
i don't know if this has already been suggested, but i used this in one of my intro cs classes. http://www.alice.org/
it teaches programming concepts without getting into the specifics. you can actually make some pretty cool stuff, and it is super simple.
Cool :) Nice work buddy.
Now, given we redditors are somewhat nerdy and like to help out...does he know about Randy Pausch's Alice project? Great way for kids to learn some cool stuff.
Wow, that looks great. I watched a video and was a bit startled to recognize Randy Pausch of 'The Last Lecture' fame speaking about Alice. I think I will definitely incorporate this into some of our projects!
here's an android port of the Quake 2 Engine for Android. Source Code| Project Website
It seams like this might be way over your head so you might benefit from something like Alice
9 is definitely not too young, but I'd suggest something a little easier as an introduction.
My wife downloaded Alice and let the neighbor kid play. He's a lazy pile of crap so he lost interest pretty quick. But I was impressed how it taught "if" and "else" other basic programming ideas.
If you're looking for fun and basic Alice comes to mind. I've actually never tried it myself but it's an interactive 3D tool for teaching basics to kids. If that's too simple, it seems common for a lot of people to start with python.
thanks, that is helpful, and a little bit more in line about what I was thinking. I'm not suggesting that programming be taught to toddlers as though it were a spoken language, but more about how to tap into a toddlers vast potential for language, part of which includes things like syntax and how to formulate words. Obviously each language is different, but there must be some unifying concepts.
I remember watching a video that made it to the front page on teaching middle schoolers about computer science without the use of a computer. I wonder if some of this can be filtered down to even younger ages. Perhaps a program like Alice where if I understand it correctly, teaches the basics (logic?) of programming in a fun and creative way.
You’ll need to provide some more context and information. Alice does support collision detection, so there must be some other context that you are referring to: http://www.alice.org/resources/how-tos/setting-up-collision-detection/
Like others have said, code.org and scratch seem like good options. If you have an iPad, Apple released Swift Playgrounds as a way to learn programming.
This may not be the best one, but it's another potential option. Back when I was in high school, I took a game development class (2010-11), and the program that we used was Alice. It's a simple program made by Carnegie Mellon University as an intro to programming.
While it's not really programming, the way I started getting into programming was actually with HTML. The basics of it are pretty simple, and it all can be done with notepad. While not as impressive as putting a game together, it's pretty neat being able to type a few things into notepad, saving, then opening the file with a web browser and seeing things come together.
Checkout Alice3, based in Java and, it tries to use a click + drag interface with options/properties style instead of 'real' coding.
Should be light enough for students to not feel over-whelmed, but don't expect anything amazing out of it. It was just nice having some basic graphics/models and setup a simple 3d scene/game without much work.
When I was in 8th-9th grade someone showed me Alice Animator, a simple animation program. It can teach simple programming concepts (and the official site says the latest version works toward a transition to Java, I guess). It was a nice way to kind of understand how the logic works before I was exposed to actual programming, and I think one of the other entry-level classes in my major actually used it in college.
I'm a Computer Science major and most of my courses are programming related. First off, you definitely want to start learning now. I coded a little bit in high school but not as much as most my classmates did. I definitely struggle in class more than others do. Also, when you get into college, do not just work on whatever program projects that you need to get down for your classes. You must make programming a big part of your life. During your some of your free time you must go off and learn some stuff on your own and do your own projects. You will struggle in the higher level courses if you do not practice coding often.
Some great resources for beginners are Coding Bat and The New Boston.
A lot of people start out by learning Python and others start out with Java. I started with Java since that's what my high school classes were revolved around. Thought used a drag and drop programming program called Alice which mostly just gets you familiar with the structure of Java. Then my first programming class was Java.
The usual suggestion is to start out with Python but Java isn't a bad beginners language either.
I used something something similar called Alice in an introductory CS class. I felt that it was at least moderately effective and getting you in a programming mindset without the pressure and academic dryness of jumping straight into code. This is very similar, except that it's better, and more fun.
I feel that this would be effective for developing this mindset in kids.
Well, I, personally, started learning about programming when I was about eight years old, but that was just because I picked up some books on web development and had nothing else to do. I imagine most other eight year olds may not have the same kind of curiosity I did, but who knows.
My middle school actually had a "computer" course when I was in sixth grade that taught basic programming fundamentals in LOGO (using turtle graphics), so for sure kids at that age will be able to at least learn up to a basic level. The only reason why, I think, they placed that course in sixth grade is because there was a fifth grade course on learning how to touch-type.
There are also other "kid-friendly" programming environments out there that aim to teach children programming concepts. Check out things like Alice or Kodu, which have nice, visual environments that require users to write "scripts" to complete an objective.
Since no one has mentioned it, there's an educational project called Alice, which puts students in a 3D graphics environment right away. http://www.alice.org
For many students, having a graphical visualization connected to their code will be more interesting and engaging. As a Physics teacher, you might focus the class around creating physical motion within the environment. A bouncing ball, a rocket, etc.
I know this post is almost a week old but I wanted to let you know about Alice. It's an easy-to-use programming language designed for young children. It's not useful for real-world applications but it does teach children very important core concepts about software development, or basically how to think like a programmer.
I forgot if it was free or paid, but back in HS my teacher used Alice to teach younger kids programming. It seemed a bit immature for high schoolers, but I think it'll appeal well to a 7yo.
Alice is an awesome tool that teaches the fundamentals of programming and it's really fun to use. I can't recommend it enough.
If he wants to learn programming, I'd say more power to him. The industry always need more software developers if that's a career he's interested in and those jobs pay very well (median salary is $97,000 a year according to the Occupational Outlook Handbook).
If his mom is concerned about him spending all his time gaming, she should set up some restrictions on the computer use. Since he's earned the money for it, I think he should be able to buy it but she can impose a time limit on using the computer or make sure that it's set up in a public space rather than his room. Bottom line, I do think she is doing a disservice to her kid. Allowing the computer but with restrictions (no gaming on school nights for instance) is a nice compromise.
From my college programming experience, I found that learning one language really well makes all other languages pretty easy to learn. I learned C++ in my school, and the one nice thing about C++ is that it lets you do everything manually, so you can actually learn what is happening. Once I have a really good understanding of C++, I found it pretty easy to learn other languages. The other nice thing about C++ is that it is good for almost anything, but maybe not the best for a particular scenario. If you learn how to do everything in a language like C++, you should have no problem doing the same thing in a language designed for that scenario.
If you have no real programming experience and want to learn the basics behind programming, maybe giving something like Alice or Gamemaker a try might be worth it. I took an intro to programming class in highschool where we used Alice, and I found it really helpful for understanding the basics. It has been about 7 years since I used it, so I can't really help you with any questions, but if I remember correctly, the built in tutorial was pretty decent.
Check out Alice. It's a program that was designed to get little girls into programming.
Also, get Kodu Game Labs. It's available on both PC and 360. Free on PC, 3 dollars on 360 in the indie marketplace. It actually lets you design small games, complete with events and all.
Let her play games like LittleBigPlanet, Minecraft, and Garry's Mod as they are built around being creative.
Finally, let her play a wide range of games from all sorts of genres. Having a wide knowledge is very useful.
Also, off-topic, I'm glad that you support your daughter. When I first told my father I wanted to go into game design(around 6 years ago when I was 11) he told me, and I quote, "Everybody wants to make games when they're a kid. All it is is writing code all day. You don't want to do that."
Six years later and the top of my High School class in both AP Computer Science and 3D modelling, I still stand to disagree with him.
EDIT: OH YEAH!
Game Maker is also very useful. I used it when I was about 12, and dare I say it, it has actually come to help me understand actual programming in a much simpler fashion. It's fun to work with. It has a lot of flexibility. It's great for beginners, it's great for kids, and it serves a much better basis, imo, for programming than Alice and Kodu Game Labs do.
Alice is a cool program for introductory Java programming. From the website:
>Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a teaching tool for introductory computing. It uses 3D graphics and a drag-and-drop interface to facilitate a more engaging, less frustrating first programming experience.
Alice is a project run by Carnegie Mellon to teach programing concepts to young(er) children.
"Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a freely available teaching tool designed to be a student's first exposure to object-oriented programming."
It ranges from Storytelling Alice which is designed for middle school age children to Alice 2.x which is for high school age kids so your 9yo nephew might be a little young, but I have seen it used with guidance to successfully introduce programing ideas.
Alice is a drag and drop programming language for learning. It's in 3d and you can learn quite a bit about programming with it. You don't type out stuff, instead of calling something like player.Update(); you just select the player object and drag his Update method where you want it. No syntax to worry about.
Are you talking about this? http://www.alice.org/
Because it's not at all related to Objective-C or Cocoa. It's just a learning environment used to teach programming concepts to young beginning programmers. It's also basically based on Java.
The thing about learning a programming language is how far it can get you. You may learn how to write a few programs, but going any further than being able to calculate values and do for-loops is difficult.
But, if you're serious about learning a programming language and you're just starting fresh with no prior programming experience, start with Alice. It is a programming language designed for learning programming concepts. C++ is a lot to take on at the start- think learning how to drive a motorcycle before riding a bicycle.
I hated this in school because it sucked for people trying to actually learn programming but Alice is probably a good program for your mom to teach since it's pretty basic things.
If you don't already know one, learn a structured programming language. This will allow you to understand the basic concepts of coding (HTML is not code, it's markup) and allow you to use things such as PHP, .NET, etc.
I'd recommend learning basic code concepts by going through the ALICE program. It's an easy way to start coding and learning in a way that isn't as boring as a book. Check it out here: http://www.alice.org/
Try Alice, it has a very intuitive drag and drop interface with actual java code. It comes with a ton of 3d models that you can simply drop into a scene and then animate with the api they give (rotate arm 30 degrees, move forward 5 feet over 3 seconds, etc.)