D vs Java as a first programming language
Nick Sabalausky
a at a.a
Mon Sep 29 20:06:36 PDT 2008
"Chad J" <gamerchad at __spam.is.bad__gmail.com> wrote in message
news:gbs393$j44$1 at digitalmars.com...
> Hmmmm, now this may be of zero interest to the OP, but I the appearance of
> yet another programming pedagogy thread has caused me to spawn a crazy
> idea.
>
> Disclaimer: This is probably a bad idea.
>
> So what if one of the ways to institutionally teach beginning programming
> was to just institutionalize the way I learned how to program? You set up
> an Ultima Online server. Customize it to cater to macroing/botting. So
> it's kind of like robocode, but more RPGish and with some obligatory
> grindy numerical crap that has to be done before you are actually good at
> the game.
>
> First of all, make sure the students coming in actually want to play
> games, namely an RPG style game, and if they don't send them to the bland
> boring typical programming classes.
>
> The first few days of class are spent familiarizing the students with the
> game. At this stage the instructor is mostly an admin as well as a player
> that helps other players out. The students/players are allowed to play
> the game with relatively weak characters that should nonetheless be able
> to handle some fun canned activities. They should also have some
> harrowing encounters. You know; teach them their limits. During this
> time the students will ideally gain some kind of personal attachment to
> their avatars and become assimilated into whatever kind of token economy
> might be deemed appropriate.
>
> I suppose I should mention that you can safely assume that the students
> haven't played this particular incarnation of the game and that you can
> safely used canned quests and such. It will all be novel to them.
>
> After the first few days of the students being the squishy mortals they
> are, show them the power of programming. Have them use a simple easyuo
> script like this overnight:
>
> top:
> ; Hide every 10 seconds.
> event macro 13 21
> wait 10s
> goto top
>
...trimmed...
>
> OK, I've had my fun for the night. Later.
> - Chad
[*Skims over most and nods head*] I think looking at how good programmers
learned is a great way to find perspective on how to teach programming.
And yes, a great thing to do is to show them right away how code can be
useful and/or fun. Otherwise most of them will gloss over they way they
usually do when introduced to something like algebra. Your idea would
probably be great for people that are into hardcore RPGs (table-top or
electronic). It shows them right from the start that programming is all
about automating repetitive, but useful, tasks. And right away it gives them
that feeling of power.
In a similar, but somewhat more general sense, I've always thought game
development with a game-oriented tool like BlitzBasic or Torque2D is a great
way to get people started in programming without immediately loosing their
interest. Similarly, I've always felt that "High/Low number guessing game"
should be every bit as quintessential as "Hello World" for people learning
on something that leans heavily text-based (or, heck, even for the
game-oriented systems like the ones I mentioned above).
Also, I learned a lot by typing in BASIC programs (many of them were games)
from old library books, debugging the inevitable typos, and then customizing
it by making changes and seeing how those changes affect the overall
program. I think simulating that environment could be of great benefit to
beginners, particularly the "making your on changes to a simple existing
program." Among other benefits, this gives them positive early exposure to
samples of "how code should look", and the skill of reading other people's
code.
Another thing from my own programming past that I think is really good is
the interactive tutorial. My very, very first coding experiences (and
computer experiences in general) were from the AppleSoft BASIC, LOGO, and
"Getting started" tutorial discs that came with the Apple IIc. I'm very
surprised that twenty years later we still see very little of that sort of
thing (Books and group lectures are very 1800's by comparison).
More information about the Digitalmars-d
mailing list