FAQ
Cover
This is the archive Discourse for the Processing (ALPHA) software.
Please visit the new Processing forum for current information.

   Processing 1.0 _ALPHA_
   Teaching
   Course Blueprints
(Moderators: pitaru, REAS)
   another way to learn programming?
« Previous topic | Next topic »

Pages: 1 2 
   Author  Topic: another way to learn programming?  (Read 5794 times)
arielm

WWW
another way to learn programming?
« on: Oct 8th, 2003, 5:37pm »

Instead of using the common paradigm of starting with an empty sketch and start coding: what if something were happenning in the background whenever a sketch is running (even if it's empty)...  
 
e.g.  
As a default "backround loop", a number of autonomous elements are wandering on screen. They're not directly accessible through a programming interface, but rather "react" to some underlying pixel buffer.  
 
So for the end-user, learning to program can turn into a game, where by drawing on screen (more exactly on the previously mentioned underlying pixel buffer) it's possible to affect the behavior of the wandering elements.  
 
I've been thinking about this concept for a while, and after some research, it happens to exist already: Programming Games (in the sense of Games of Programming).  
 
Well, most of the time, it's about programming AI-bots that will end up fighting each others, but when related to teaching programming, I think it's an interesting direction to explore...
 
 
make sense
 
 
p.s. technically speaking, it could be feasible to play with this concept in processing (see: http://proce55ing.net/discourse/yabb/board_Proce55ing_Software__action_display_num_1065627180.html)
« Last Edit: Oct 8th, 2003, 5:41pm by arielm »  

Ariel Malka | www.chronotext.org
Mike Davis

WWW
Re: another way to learn programming?
« Reply #1 on: Oct 8th, 2003, 6:13pm »

I think I see what you're getting at arielm.  Programming Games not only make it more fun to learn to program, they can also provide metaphors that new coders can grab onto.
 
When I was first learning C++, we started by programming an onscreen "robot" that had to perform different tasks.  There would be a grid onscreen with beacons, walls, and a robot; the robot moved and sensed things by making simple function calls like left(), forward(), look() and so on.  All of the robot and graphics stuff was in a simple library that got linked into every project; so all we had to deal with was elementary C++ and function calls.
 
It turned out to be a perfect way to learn programming fundamentals.  There were 40 stages that had to be completed (typically by sensing and collecting all of the beacons and navagating around the walls).  By using different layouts of walls and beacons, it became necessary to use loops, variables, and control structures to complete the stage.
« Last Edit: Oct 8th, 2003, 6:14pm by Mike Davis »  
Martin

122417302122417302martingomez_listsmg1ph WWW Email
Re: another way to learn programming?
« Reply #2 on: Oct 8th, 2003, 7:33pm »

something like this in processing would be fun.
http://robocode.alphaworks.ibm.com/
 
arielm

WWW
Re: another way to learn programming?
« Reply #3 on: Oct 8th, 2003, 10:22pm »

bingo mike and martin (both very clear illustrations of the concept)
 
i wonder if there's some "programmable spaces" out there that are not based on the robot-simulation methaphor...
 
actually a not-so-bad idea for new-media artists: to create programmable spaces and expose them to the public!
« Last Edit: Oct 8th, 2003, 10:27pm by arielm »  

Ariel Malka | www.chronotext.org
benelek

35160983516098 WWW Email
Re: another way to learn programming?
« Reply #4 on: Oct 9th, 2003, 5:02am »

i hope i'm not intruding on your privacy Koenie, but the rest of you might like to bug him about a similar piece he's working on (similar to the robot concept, but with a different metaphor)... feel like explaining koenie?
 
Koenie

170825270170825270koeniedesign WWW Email
Re: another way to learn programming?
« Reply #5 on: Oct 9th, 2003, 5:38pm »

Hey benelek, that was top-secret! just kidding. I'm working on a project called 'Visual Programming', in which I try to create some visual programming prototypes, which are basically programming environments where you don't type your program, but construct it out of visual elements. The first prototype is under construction right now, and I will most certainly let you know when it's done!
 
Koenie
 

http://koeniedesign.com
arielm

WWW
Re: another way to learn programming?
« Reply #6 on: Oct 9th, 2003, 5:56pm »

koenie, the description of your prototype sounds very interesting,
 
can't wait to see something!
 

Ariel Malka | www.chronotext.org
Koenie

170825270170825270koeniedesign WWW Email
Re: another way to learn programming?
« Reply #7 on: Oct 11th, 2003, 4:22pm »

I've created some drawings to get an idea of how it will look like. However, since I will be using sound, I'm kind of waiting for the sound delay bug to be fixed before I go on.
 
Previews:
http://koeniedesign.com/visprog.gif  
http://koeniedesign.com/for.gif // a simple for-loop
 
Koenie
 

http://koeniedesign.com
arielm

WWW
Re: another way to learn programming?
« Reply #8 on: Oct 11th, 2003, 5:41pm »

nice looking pics!
 
what kind of "output" this visual programming environment will produce?
 
p.s. do you know Max/MSP?
http://www.cycling74.com/products/maxmsp.html
 

Ariel Malka | www.chronotext.org
Koenie

170825270170825270koeniedesign WWW Email
Re: another way to learn programming?
« Reply #9 on: Oct 11th, 2003, 5:59pm »

This first prototype will (hopefully) output both visuals and audio, but only to a certain level. The final product should be able to create anything.
 
Koenie
 

http://koeniedesign.com
skloopy

WWW
Re: another way to learn programming?
« Reply #10 on: Oct 11th, 2003, 10:41pm »

Just a thought.. Wouldn't it be cool if you could write code in one window and see the direct result in the other without having to re-run the code? I mean so that your program just updates as you finish each complete statement..
 
arielm

WWW
Re: another way to learn programming?
« Reply #11 on: Oct 12th, 2003, 12:43am »

i agree with the coolness of such a thing, it's even a candidate feature in one the projects i'm working (slowly) on:
 
a programming space accessible from a web page, where it's possible to mix the modularity of html, javascript and java to create an endless number of programming playgrounds (quite different from the standard IDE metaphor...)
 
e.g. each piece of text on a web page can turn into an executable program which in turn can affect the page, etc...
« Last Edit: Oct 12th, 2003, 12:50am by arielm »  

Ariel Malka | www.chronotext.org
benelek

35160983516098 WWW Email
Re: another way to learn programming?
« Reply #12 on: Oct 12th, 2003, 6:38am »

i've also been playing about with the reiterative and generative possibilities of java / javascript / html. i really like the idea that a site you visit on the web is not a static thing you download.
 
pitaru


WWW Email
Re: another way to learn programming?
« Reply #13 on: Oct 12th, 2003, 5:01pm »

on Oct 11th, 2003, 10:41pm, scloopy wrote:
Just a thought.. Wouldn't it be cool if you could write code in one window and see the direct result in the other without having to re-run the code I mean so that your program just updates as you finish each complete statement..

 
I've seen this type of incremental compiling discussed somewhere ... I'll try and look it up. I wonder if such a system brings up the anxiety level of the programmer, as there's no time to premeditate - the system keeps reacting to every little move
« Last Edit: Oct 12th, 2003, 5:01pm by pitaru »  
amoeba

WWW
Re: another way to learn programming?
« Reply #14 on: Oct 12th, 2003, 5:53pm »

Interesting thoughts, both the idea of using a game to teach programming and the instant-execution style of programming.
 
Patch-based visual programming environments like Max and VVVV already do instant execution. Their execution is like a "flow" of values through a series of nodes that operate on the data, so that changes in a node will immediately affect all other nodes that are connected to it. By creating new chains of nodes and connecting them in new ways you can program "live" without interrupting the running program. Of course, this style requires the nodes to handle incorrect inputs or infinite loops without crashing...
 
I use VVVV (see http://vvvv.meso.net/) for VJ'ing, and it gives an excellent opportunity to adjust or even change programs live. Of course it requires some cojones to drastically change a program when you're on stage, but I've had excellent results with it.
 

marius watz // amoeba
http://processing.unlekker.net/
Pages: 1 2 

« Previous topic | Next topic »