Are You Keeping Up with the Commodore?

Started by Mr. Analog, November 16, 2006, 10:05:23 AM

Previous topic - Next topic

Lazybones

You can still write command line applications in C#, but I know what you are saying.

Tom

<Zapata Prime> I smell Stanley... And he smells good!!!

Shayne

I guess its a little different seeing as we are all "in the know",  I would just prefer to have the least labor intensive way of doing things to start and then learn how to get what I want out of it then to be given the hardest way and then shown the easy way after.  Its not like the fancy UI removes the IF/ELSE/WHILE from the code, it just makes things a little easier to manage.  (intellisense for the win)

Tom

You don't even NEED intellisense with basic. Intellisense was invented to try clear the clutter as it were.
<Zapata Prime> I smell Stanley... And he smells good!!!

Shayne

I would call it more of a productivity enhancer :)

Tom

exactly, because the APIs of today are so large, its quite difficult to work with them.
<Zapata Prime> I smell Stanley... And he smells good!!!

Mr. Analog

Quote from: Shayne on November 16, 2006, 09:34:15 PM
Why though?  With modern languages handling things like memory allocation and garbage collection why should we be bothered to continuously reinvent the wheel?

Because sometimes, things go wrong. In my experience understanding how code is "managed" (in Java or .NET) will help you diagnose a variety of issues when they arise. I guess it depends on the goals inherent with your project too; if you want to do some rapid development why not "stand on the shoulders of giants" and use as many pre-built components and tools as possible? Likewise if you need something to be as performant as possible why not bypass all the misdirection and access raw memory and process threads manually?

But again, we're diverging from the topic at hand, I know it's difficult to remember the days when we wrote our first "Hello World" program so it's easy to forget what made that experience worthwhile, easy to understand and fun. I know that there is a lot of modern equivalent software to many of the things shown in this blog but I think that more modern versions are less pure educational experiences than the older software. Now when I say pure what I mean is that today educational software tends to try to reward the child with entertainment after the educational task at hand is completed. It seems to me that older, more simplistic educational software was trying to make learning things the fun part. I used to have a game for the Apple ][ which was somewhat like Pac-Man, however the screen was a grid of numbers, at the top an equation was shown and you had to move your character to the right square so you could "eat" the number and add time to the clock. I played this game a lot and never once did I realize that what I was really doing was flashcards (which I used to HATE as a kid), because the timer was always counting down the goal was to get as many right answers in a row to last longer and get a higher score.

I think another good game was Oregon Trail, which I'm sure we all played as children. That game seems sort of frivolous at first but when you look at it a little deeper you learn the real lesson is about resource management the hard way (i.e. your family keeps on dying). You sort of learn a few things about the mortality rate of 19th century pioneering families at the same time, which for some of us was a little more sobering than simply reading a statistic in a history book.

I can't think of any games today which have the same educational value and that are as accessible as the more simplistic games of my youth. MIND YOU, I am not in the market for educational software and I base this opinion SOLELY on what I see on the shelf in the educational section of software vendors and game reviews I've read on the web.

But again, I'm just spit balling here...
By Grabthar's Hammer

Mr. Analog

Quote from: Shayne on November 16, 2006, 10:02:52 PM
I would call it more of a productivity enhancer :)

I have to agree with this, I also enjoy using tools that stamp out common patterns in template form, it makes it a hell of a lot faster to code a factory or something when you can just press the magic keys and one pops out. Also, I think I'm gonna marry the code refactoring tool in Eclipse, all the pain of super classing pre-built code with none of the fuss n' muss!
By Grabthar's Hammer

Mr. Analog

Quote from: Tom on November 16, 2006, 10:13:24 PM
exactly, because the APIs of today are so large, its quite difficult to work with them.

Actually I find I working with an API, no matter the size is very easy since most things are parked where they should be (in the right namespace or package), intellisense just makes things slightly faster. I would loathe having to go back to C++ and a kajillion MFC classes that each supposedly do the same thing, just a slightly different way for each one ;)

Whoops there goes my Microsoft educated background again (gawd! MFC, I haven't thought about that birds nest in a long time...).
By Grabthar's Hammer

Tom

I happen to like Qt4. You can't really memorize that much info, which is where intellisense comes in ;)
<Zapata Prime> I smell Stanley... And he smells good!!!

Thorin

From my experience with educational software, I'd have to say that nowadays there's software available for much younger children.  If the child is unable to read or do math, but can count to three or five and sort shapes, then software that requires reading or math skills won't work.  Keep in mind here that my first child was using the computer to play educational games at age 2.

The software for the older kids has a lot more learning in it, teaching science, math, reading, and comprehension.  Unfortunately, the older kids have a lot of other electronic distractions to keep them busy that are much flashier - GameCube, Xbox, PSP, IMing, these are all things that were much less prevalent or completely absent when we were young.

As far as programming in BASIC or something else to learn the basics...  Wouldn't it make more sense to teach your child logic structures *independent* of any language?  Of course, this means that kids likely won't be self-taught anymore.
Prayin' for a 20!

gcc thorin.c -pedantic -o Thorin
compile successful

Adams

Most of you are going to laugh but the first "language" I taught my self was batch files.
From there I expanded it... but I really thing to understand logic you need to teach flowcharting or some type of rudimentary logic.
"Life is make up of 2 types of people...
50% of People who do want to do things
50% of people who do not want to do things
The rest are all forced to do things."

Darren Dirt

#27
Thorin and Adams: I agree, the fundamental concepts of storing "stuff", changing the "stuff", and combining the "stuff" in various ways is what most of us learned first whether it was in BASIC, BATch files, or even an entry-level computer "logic" class (depending on who taught it ;) ) esp. covering tips/techniques like set diagrams and truth tables.

I think the reason many of us who recall fondly how easy it was to learn this stuff via simple, shallow tools (e.g. Compute! magazine code listings, BASIC/BAT file sample code, heck even LOGO!) are a bit sad for the "new" generation -- who have "better" tools but somehow those tools are so dense and feature-rich that they almost discourage the low-level thinking that is necessary to really easily pick up multiple languages.

Imagine the average 10-month college grad who has learned only Visual Studio etc. trying to understand some assembly code. The opposite case would occur if someone was taught the concepts inherent in assembly, then was put into a situation where they need to learn a new higher-level language.

Or think about how you personally do a first-draft mental design of something. You probably do some basic pseudocode mixed with English, lots of circles and lines and arrows. Because you're used to designing the concept first (e.g. the sequence of actions, the events to handle, how the pieces relate to each other, what is dependent on what) you won't likely be using language-specific syntax in your pseudo code, since you're trying to test out the ideas before investing heavily in getting perfectly accurate ready-to-type-in code.

Yay for intellisense, no doubt -- for those who are building something complex using a complex API.
But yay even more for interpreted languages with limited commands available -- for those who are just beginning to learn the foundational concepts of program design, and heck even logic.




It's Friday, I'm mentally fatigued, so I apologize if I'm not being clear. But I think I've given the jist of my thoughts.


Quote from: Mr. Analog on November 16, 2006, 09:46:01 PM
Quote from: Shayne on November 16, 2006, 08:20:47 PM
Why not just download C# Express?  With a drag and drop interface they could see results in seconds, but the more advanced stuff still requires logic.  I cant see how teaching an antiquated language is useful.

The way I see it is that in a line or two you can teach someone the basics of logic. If you drop someone into an integrated IDE they will have a million questions about what's going on that do not focus on the core of what programming really is; giving commands to the computer.

Teaching a child how to write I/O, assertive statements and looping structures I think is far more beneficial than showing them how to use the features of a particular language / IDE wizard tool. At least that's where I got my start in, and love for programming.

Different strokes for different folks I guess.
^ pretty much what Mr. A said ;D
_____________________

Strive for progress. Not perfection.
_____________________

Darren Dirt

PS:
Quote from: Shayne on November 16, 2006, 08:20:47 PM
Why not just download C# Express?  With a drag and drop interface they could see results in seconds, but the more advanced stuff still requires logic.  I cant see how teaching an antiquated language is useful.

Anyone else find it strange that Shayne sees "advanced stuff" requiring logic, but implicitly that "simple stuff" does not? Perhaps I misunderstand what he meant by the word "logic". To me "container X stores the number 1, container Y stores the number 50, keep doubling the number in container X until it is bigger than the number in container Y, displaying the X value each time" is indeed a type of logic -- the most basic (BASIC? ;) ) logic. I can't see how throwing together a simple little snippet like this via a "drag and drop interface" would teach anybody the inherent foundational logical concepts, although I guess in theory it might save a few seconds of typing and/or thinking. :-\

_____________________

Strive for progress. Not perfection.
_____________________

Shayne

Kids these days have a very short attention span.  If they can open up VS, drag a few controls to the screen and hit the compile button and see results I think that would keep them interested.

Logic was just used as a word to talk about all the code behind the drag+drop UI