--

Cat Scratch Programming Fever

http://arstechnica.com/news.ars/post/20070722-new-educational-tool-makes-programming-like-playing-with-lego-bricks.html - Scratch makes programming like playing with LEGO bricks

<quote>
The group, recently noted by The Chronicle of Higher Education, was previously responsible for creating the popular LEGO Mindstorms series of programmable robotics kits. The designers were inspired to create Scratch because of the difficulties involved in teaching programming to young children—Scratch is designed for kids aged eight and up. The name comes from the technique used by disc jockeys to mix together existing records in creative ways.
</quote>

This is a good way to learn. I learned a lot from Karel the robot and this looks like a modern take on that old programming game.
Permalink son of parnas 
July 23rd, 2007 10:51am
Well, OK, but when *I* used Mindstorms, I found the graphic environment pretty limited.  I mean, you could make a nice if-then statement and a loop, but any more than that and you started running out of screen real-estate.

Once I found "NQC" (Not-Quite C) which would compile into the Mindstorms primitives, I never used the graphics environment again.

The problem is not HAVING a graphic environment, the problem is most graphic environments don't scale well.  And it doesn't look like THIS graphic environment will 'compile' into C code or anything useful like that.  So anybody who tries to use it might be 'locked' into this paradigm which nobody professional uses.
Permalink SaveTheHubble 
July 23rd, 2007 11:04am
It's for *kids*, Allan.  Jesus fucking Christ.  An 8 year old who learns basic, universal programming concepts in Scratch isn't going to be locked out of a career later on in life for lack of "Scratch 5 yrs" postings.
Permalink Send private email muppet 
July 23rd, 2007 11:11am
Right, I over-stated it.  Learning programming using Mindstorms or Scratch graphical environments is fine.  Right now my son (9-year old) is learning programming concepts using computer games, which have 'make a level' features.

And having worked with fifth and sixth graders on the Mindstorms thing, I absolutely agree the graphical approach is MUCH more accessible to them.

It was mostly wishful thinking on my part that these brilliant graphical environments would ALSO allow 'compilation' to some computer language.  But that's my own wishful thinking.
Permalink SaveTheHubble 
July 23rd, 2007 11:15am
If you have a first generation playstation, Carnage Heart is pretty damned cool.

You arrange logic tiles into grids to create program flows for robots that fight. As you work your way up, you get new logic tiles and a bigger motherboard (the grid size increases). Pretty neat stuff.
Permalink Send private email JoC 
July 23rd, 2007 11:40am
And it was definitely made for nerds.

http://www.martincmartin.com/pi.htm
Permalink Send private email JoC 
July 23rd, 2007 11:48am
> the problem is most graphic environments don't scale well.

I watch hardware folks creating chips graphically and chips are huge. Perhaps it's simply because you are used to another way?
Permalink son of parnas 
July 23rd, 2007 12:16pm
For some reason I find that uncharacteristically incomprehensible.
Permalink Send private email JoC 
July 23rd, 2007 12:18pm
Engineers who create ASICs and microprocessors use graphical tools. They have huge monitors and giant printers so they can see what they are building.

Yet we programmers still see code through a straw.
Permalink son of parnas 
July 23rd, 2007 12:22pm
"It's for *kids*, Allan."

One of the longest-lived, best-selling toys for children EVAR? Legos. Why? Because you're only limited by your imagination.

While I suspect legos may have done as well with just eight different kinds of blocks, they didn't stop there. They just keep creating new blocks and kids keep finding new ways to stick them together. Toys that are limited will, IMHO, soon lose the interest of the kids.

For any kind of "building" environment to be successful and to teach, it has to have a gradual method of extending its capabilities.
Permalink Send private email Philo 
July 23rd, 2007 12:25pm
Actually, modern legos are getting more and more specialized, to the point where you almost can't build anything but what's on the box cover.  Have you been to the toy store lately?

I'm not saying that's good, but that's what's happening.
Permalink Send private email muppet 
July 23rd, 2007 12:26pm
Man, I wish I weren't so limited by these basic building blocks ... ATGC? Cat gag.
Permalink evolution 
July 23rd, 2007 12:31pm
> Toys that are limited will, IMHO, soon lose the interest of the kids.

in reference to.
Permalink evolution 
July 23rd, 2007 12:31pm
"Engineers who create ASICs and microprocessors use graphical tools. They have huge monitors and giant printers"

17" monitors are pretty typical.

Giant plotters are not used, though the tables are still around, drivers for the things are not made any more.

Graphical programming is used by some small shops, but the larger projects normally use a text language for designing ASICs.
Permalink ASIC guy 
July 23rd, 2007 3:16pm
> 17" monitors are pretty typical.

You need to work at a better place. I work at a lot of embedded shops and the hardware guys always have the coolest toys.

> Giant plotters are not used,

A guess all those lovely traces adorning the cube and conference walls are hand drawn then.

> Graphical programming is used by some small shops,

I usually work at smaller companies that do hardware software synthesis, so I don't know what the big boys do.
Permalink son of parnas 
July 23rd, 2007 3:25pm
VHDL and Verilog (text languages) are overwhelmingly the standard for design for chip design.

You still go graphical for chip and board layout, but both those are mostly automated anyway.
Permalink ASIC guy 
July 23rd, 2007 4:33pm
"It was mostly wishful thinking on my part that these brilliant graphical environments would ALSO allow 'compilation' to some computer language.  But that's my own wishful thinking."

Allan: Graphical programming tools are not intrinsically limited in scope and capability. Check out the graphical programming languages (Sequential Function Charts and Function Block Diagrams) defined by IEC 61131-3 for programming PLCs and other industrial controls. Real implementations of these languages are full featured, scaleable, robust, industrial strength and compilable. In fact if Mindstorms was able to be programmed this way it would be mindblowing.
Permalink Send private email bon vivant 
July 23rd, 2007 5:11pm
> VHDL and Verilog

Went to training at both companies. Didn't understand a darn thing. But our guys use GUI interfaces and do as little as possible at the low end.
Permalink son of parnas 
July 23rd, 2007 5:40pm
Yes, I am that rarest of ducks, a Software Engineer who's also designed ASIC's.

And trust me, even a thousand-cell ASIC is dwarfed by the complexity of a 1.5 Million Line Of Code program.  And those huge monitors and plotters they use?  Evidence of the scaling problem I was talking about.

But I don't think the problem is insoluable.  In fact, I think a system that would go from Graphical to Text, and Text to Graphical, is definitely possible.  It's just that nobody's done it right yet.

But I certainly should not poo-poo the current attempts.  The glass is NOT half empty, it's half full.  It's just it could be so much fuller.
Permalink SaveTheHubble 
July 23rd, 2007 8:09pm
> Evidence of the scaling problem I was talking about.

I would walk through the designs with our ASIC geniuses and it struck me as a useful way to deal with scale. I asked many if they could do this by hand and they said no way.
Permalink son of parnas 
July 23rd, 2007 8:14pm
Well, you actually have a very good point.  The limiting factor of ASICs is the basically two-dimensional lattice the cells are placed in, and how many connections you can route between cells, and how long those connections are.

Software has no inherent two-dimensional lattice -- our legacy is actually a hyper-sphere (like Fortran) -- everything communicating with everything else (potentially) through globals.

Applying principles like Coupling and Cohesion try to minimize the connections between modules/subroutines/functions/methods -- which tries to make the complexity more manageable (like the ASIC layout does).  But some evolution is still needed in software design concepts to make an ASIC-type Graphic Environment work for software.

But I agree with you -- that's one reason I think a graphical approach CAN work with large-scale software, eventually.
Permalink SaveTheHubble 
July 23rd, 2007 8:20pm
"In fact, I think a system that would go from Graphical to Text, and Text to Graphical, is definitely possible"

Borland's old IDEs had Alt-F12 magically toggle the forms design screen between its graphical layout and a textual equivalent. Access never had anything as good.

Gee, but a procedural lang like Fortran constructed out of components ... all you'd need is an ARRAY component and a FUNCTION/SUBROUTINE component on top of some Windows messaging and throw iron at any performance issues that crop up.

What. What?
Permalink trollop 
July 23rd, 2007 9:41pm
Hey Hubble, what size chips have you worked on? The largest one I did single handedly was 1.2 million transistors, and I  designed it at the cell level, with only a multiplier and serial interface as ready made. This was back in the days when .8 micron was state of the art, some time ago. I've not done as much the last few years.
Permalink ASIC guy 
July 24th, 2007 5:04am

This topic is archived. No further replies will be accepted.

Other topics: July, 2007 Other topics: July, 2007 Recent topics Recent topics