• El Dudarino (unregistered) in reply to Jay
    Jay:
    He created a text file with the words "Morph the screen into something cool" and couldn't figure out how to run it

    Well I see the problem! He SHOULD have written "Morph the screen into something cool;" - you need a semi-colon at the end of the command. :-)

    He should look for the app servers logs to get the real error...

  • BillyBob (unregistered) in reply to Beeblebrox
    Beeblebrox:
    No, Java loses. If you really want to know how to program, you have to be able to understand pointers.

    SomeClass someClass = new SomeClass();

    SomeClass someOtherClass = someClass;

    Looks like it behaves pretty much like a pointer to me...

    I suspect that your beef is with the garbage collector. C++ is about as filthy as a language gets yet no one suggests you work with raw pointers in that anymore unless you really really have to.

    Is it the lack of a dereference operator?

  • Jiima (unregistered) in reply to Jay

    Only when ya use some lame programming language like C++ :P In Ruby or Smalltalk it is not recommended to use semicolon on the end of line :P

    Ok, I'm jokin' But it is true - people do not understand what programming really is. I didin't find people in Poland who try to program computer in "polish" using notepad, but I think that the only reason of this is, that we have IT Technology classes in middle school, and most people have to write damn simple database in Turbo Pascal (when I was in middle school a long time ago, I think that for now it is C# or something like that, M$ put really lot of money to ensure that kids in our schools will learn The Only Proper IT Technology Made By M$) - or bought it from IT-savy members of their class. But still people don't understand why me, a enterprise programmer, don't know how to write 3D game in 2 days, and don't have such a precognition skill, to say them how to fix a PC when they give me a description like "suddenly Word started to behave silly".

  • Cheatah (unregistered)

    There actually is a language that is almost readable by nitwits. Lingo, you know, the Macromedia Director language.

    set the x of the mouse to 5

    Horrible. But I think this should be taken to a higher level. Something Star Trekish. These kind of people should interface directly with computers by talking to it.

    "Computer... Create a football game with a stadium and players in red shirts and white shorts. Activate!"

    Well, at least the idiot won't be talking to ME...

  • Squeek (unregistered)

    Surely all of the above suggestions are valid VB? :)

  • The General (unregistered) in reply to TraumaPony
    TraumaPony:
    SlyEcho:
    Do not advocate the use of languages other than English in variable names. So that I wouldn't have to figure out what "StavSkladuZmeny", "strUzivatelskeJmeno" and "strUzivatelskeHeslo" mean (in a web service I recently integrated).
    Not everyone speaks English.
    Coding by obscurity? (The last two are UserName and UserPassword.)
  • scruffy (unregistered) in reply to apetrelli

    Hell yeah.

    I've actually come across first line helldesk guys who can't actually conceive of mortal men actually writing software, the zenith of human excelence to them seems to be those that by sheer trial and error wrote the manuals.

    These are also the sorts of people who don't understand that a Compsci degree covers more material than a vocational school leavers course.

    I've often thought it amusing that such pig ignorant people have the arrogance to assume that they know as much as anyone else... But Remember "The only reason you spent seventeen years in education was that you hadn't learnt properly by the time you left school, I was smart enough to learn all I needed in school."

  • scruffy (unregistered) in reply to apetrelli

    Hell yeah.

    I've actually come across first line helldesk guys who can't actually conceive of mortal men actually writing software, the zenith of human excelence to them seems to be those that by sheer trial and error wrote the manuals.

    These are also the sorts of people who don't understand that a Compsci degree covers more material than a vocational school leavers course.

    I've often thought it amusing that such pig ignorant people have the arrogance to assume that they know as much as anyone else... But Remember "The only reason you spent seventeen years in education was that you hadn't learnt properly by the time you left school, I was smart enough to learn all I needed in school."

  • charon (unregistered) in reply to DOA
    DOA:
    charon:
    TraumaPony:
    Not everyone speaks English.

    so they shouldn't touch computers, not to mention programming

    Do you speak greek in your country? No? Why do you have doctors then? Seeing as the vast majority of the medical terminology is greek words written in latin characters. Why don't you just get rid of them and die?

    Ehm... what???? All medical doctors know some latin (at least to name the parts of the body, diseases and medication) and have a state-approved license. Also people who drive cars must qualify in driver's school and have a license. Unfortunately this doesn't apply to using computers.

    I don't wish to be rude, I really don't, honestly, but what exactly is the point of the Czech army? Or any but two of the European armies? Cf the admirable performance of the Dutch army at Srebenica...

    I believe the Czech army (as well as armies in other "small" European countries) have some highly qualified specialists, for example in land mine removal or some medical specialists or others and they participate (in very small groups) in international missions either training other soldiers from other countries or performing their area of expertise (eg. removing land mines)

  • (cs)

    I think Yahweh could have, at least, talked him through a simple (5 lines or so) batch file. Something that launches Internet Explorer.

  • JPM (unregistered) in reply to Mythokia
    Mythokia:
    Usually when someone starts the conversation with "are you good with computers?", I expect it to go downhill.
    Yeah, absolutely. That's why usually when someone starts the conversation with "are you good with computers?", I just say "No, they're crap. Use paper.".
  • Beeblebrox (unregistered) in reply to disaster
    disaster:
    That's not what he says. His claim is that because pointers are hard to learn they're a good tool to weed out people who aren't clever enough to be good programmers. Java, by contrast (he claims), is conceptually simple and therefore lets too many incompetents pass CS courses. (IMO you could solve this by making multithreading/concurrency a central part of intro-to-programming, but I digress.)

    That is what he claims. Getting back to the original topic, then, if the guy is serious about learning how to program, at some point he really needs exposure to pointers and multithreading/concurrency before he gets too far into this thing. If he can't be taught how pointers work and/or how to deal with concurrency issues, then you might as well give up. I realize that he has to have some of the basics down first before you can get to those, but the sooner the better. That's what I was trying to get at.

  • Beeblebrox (unregistered) in reply to BillyBob

    Yeah, they're there, but you don't really have to do any of the raw pointer fun stuff that you have to do in C (or sometimes C++). My point is that you can do a lot of things in Java without really "getting" pointers. If the guy asking "could you explain programming please" in the original article was serious, at some point someone's going to have to explain pointers to him, and he'll need to really understand them. Especially if he's wanting to do game programming. I've been in programming classes before, and I've seen what happens when you introduce pointers. Some people get it immediately. Some people get it after having it explained to them a couple more times and experimenting on their own. Lots of other people just never get it. If he's one of the ones that will never be able to get it, it'd be good to find that out early, you know?

  • (cs) in reply to name
    name:
    void CreateFootballStadiumAndFootballPlayers() { for(;;) { System.out.println("HEY LOOK AT ME I CAN PROGRAM!"); } }

    That should work mighty dandy

    The first I ever read about programming was when I was about 8 or 9, and found a little tutorial book about AppleSoft BASIC in my house. We didn't actually have an Apple ][ at the time, but my school did. This was the age when about once a week our class was herded into the Computer Room in the library to do Computer Stuff, mostly LOGO or Oregon Trail or something. Armed with my newfound knowledge, I broke out to the DOS (yes) prompt and typed in my first program ever:

    10 PRINT CHR$(7) 20 PRINT "I CAN BEEP!" 30 GOTO 10

    And then I ran it. The teacher walked over, saw what was happening on my screen, and said: "Yes, you can. Very good. NOW TURN IT OFF!"

  • Luke (unregistered) in reply to apetrelli
    apetrelli:
    In fact I have the opposite problem: I have to justify what I do with computers as a programmer. What I mean is this: 1) No programming-illiterate people understands the difference from using a program and making one. This kind of people usually think that Word has been created by God. 2) As a computer expert, you should usually know how to repair a TV-set or a HiFi.

    My father is like this. He plays on his Xbox almost everyday but when I suggest that a large team of people has put in a huge amount of time and effort (In some cases anyway) into creating it he just looks at me blankly.

  • Edward Royce (unregistered) in reply to Phleabo
    Phleabo:
    Edward Royce:
    Maurits:
    SlyEcho:
    Do not advocate the use of languages other than English in variable names. So that I wouldn't have to figure out what "StavSkladuZmeny", "strUzivatelskeJmeno" and "strUzivatelskeHeslo" mean (in a web service I recently integrated).

    Anglocentrism is ugly.

    This use the English alphabet thingy you folks have got going on now.

    Well, actually, it's the Latin alphabet, so called because it's mostly the one used by the Romans (who spoke Latin and borrowed the alphabet from the Etruscans, who kinda adopted it from Greek - it's complicated).

    Anglocentrism combined with ignorance is even uglier.

    So why aren't you calling it Roman-Estrucian-Greek?

    Huh? Not willing to put forth the effort to be precise eh?

  • Shandooga (unregistered)

    So, this brother, he's American isn't he? Spoiled, self-absorbed, self-important, impatient, overweight, short attention span?

  • fwlksajzxlc (unregistered) in reply to WPlinge

    Same, at 7 or 8! I wrote titles on floppy disks in marker like "Oregon Trail IV" or "Space Ship Destroy!" and "Typing Tutor Attack" and wondered why it didn't work.

    (This was the era of Windows 3.1, 90mHz computers, Super Munchers and Oregon Trail I, ~1997. I know, I'm young)

  • nobody (unregistered)

    I never understood why pointers and recursion are supposedly difficult concepts for CS students. I understood them immediately. Perhaps concurrency should be taught early on instead to help further weed out the "non-programming goats" (at my school concurrency wasn't presented until my senior year).

  • wilho (unregistered)

    But I've tried to program a space this way! "Big bad monster flies down from the top of the screen.." and so on. My excuse is, that it was commodore 16, first computer I had seen so far, and I was something like eight years old :)

  • (cs)

    Hilarious.

    My seven year-old nephew asked me if I could show him how to create a computer game. Must be the modern day equivalent of asking how to build a tree house. I told him I could but the game would look like Pong. After explaining what Pong was I told him to look at the credits next time he plays a game - that's how many people it takes to build a computer game. I'm surprised that thought didn't occur to the brother-in-law.. on second though, I'm not surprised in the least.

  • Orclev (unregistered) in reply to James

    [quote user="James"]RE: the VB versus Java bickering... I'm interested to know who's defending the VB side. Growing up in coder culture, I always considered VB to be the "simplistic" end of the language scale:

    (from "simple" to "serious") Crayons... markers... watercolors... oil paint Airsoft... BB gun... 22 rifle... elephant gun MacOS (pre-X)... Windows... *NIX VB... Pascal... Java/C#... C/C++... assembly [quote]

    Interestingly enough, during the course of teaching myself programming I bounced through almost all those languages (skipped Pascal, and I used qBasic, not VB as VB wasn't around then) although not in that order.

    I started with qBasic after I asked my dad to explain how programs worked to me (I was about 5 at the time), and after he showed me a little qBasic program I played around with it and eventually wrote my own simple program. I think sometime around 9 or 10 I looked into C but didn't really get it, so played around with assembly a bit (wrote a little DOS TSR screen saver). That was a real eye opener. After working with assembly I understood C a whole lot better than a did before and was actually able to fully comprehend pointers and some other things that hadn't initially clicked. Sometime around that general time I also looked into C++ but didn't really understand it (I still think C++ is an ugly language). The final one of that set I picked up was Java, which after working with C for so long (and getting REALLY tired of passing around structs all day) was another eye opener.

    Since then of course I've worked with all kinds of other languages, but I thought the progression I worked through was an interesting contrast to your "difficulty" scale of languages.

  • Orclev (unregistered) in reply to Jambon
    Jambon:
    In my experience, a good way to explain programming is to say, "It's like doing math homework, except you get paid for it."
    Except that encourages the mistaken assumption that programming is the same thing as math when it really isn't. It does have some math components, much like cooking occasionally does (admittedly programming has a lot more math than cooking, but still less then in things like Physics/Engineering), but there's a whole lot of non-math in there as well.

    I'm rather sick of getting the same reactions after I tell people I'm a programmer which mostly consist of (besides the ones already mentioned here): "So, you must be really good at math."

    I actually rather hate math for the most part. I'm rather terrible at it honestly. Oh, I can do it in a pinch, especially if I have a calculator handy. But for the most part that's why I'm a programmer, so I can tell the computer to do it and then I don't have to worry about it.

    Of course, this is also where I diverge from what I like to think of as theoretical programmers. I tend to look at a problem from the perspective of trying to find a simple elegant solution, while the theoretical guys are busy trying to write a proof of the problem, model it mathematically, and then calculate the big O for the function they devised. I'm not saying that's bad, and the rest of us non-theoretical programmers need this stuff to be done so we can actually use some of the solutions these guys come up with, but the theoretical guys are not the general case with programmers.

  • Pope (unregistered) in reply to Konamiman
    Konamiman:
    Well, nothing stops you from creating a program like this:

    void main() { CreateFootballStadiumAndFootballPlayers(); StartTheGameWhenUserPressesSpacebar(); MakePlayersHaveRedShirtsAndWhiteSocks(); }

    Oh yes, you will have to define these three methods an put some code on them, but that's a minor issue. X-D

    Aaaaaand why don't you go ahead and come in on Sunday as well. Corporate is trying to play a "little game of catch-up" and we've promised the client a working version next Thursday.

    Mmmmmkay. Have a good weekend.

  • jayh (unregistered) in reply to JS

    him: Oh, I thought I would write something like: "Create football stadium and football players. Start the game when user presses spacebar. Make players have red shirts and white socks."

    This is what all the gee wiz books on programming seem to suggest.

  • Thelonious (unregistered) in reply to apetrelli

    When my wife told an acquaintance that I "write computer programs" for a living, she apparently responded "but you can just buy those at the store, can't you?"

    Makes my brain hurt

  • nobody (unregistered) in reply to Orclev
    Orclev:
    Jambon:
    In my experience, a good way to explain programming is to say, "It's like doing math homework, except you get paid for it."
    Except that encourages the mistaken assumption that programming is the same thing as math when it really isn't. It does have some math components, much like cooking occasionally does (admittedly programming has a lot more math than cooking, but still less then in things like Physics/Engineering), but there's a whole lot of non-math in there as well.

    I'm rather sick of getting the same reactions after I tell people I'm a programmer which mostly consist of (besides the ones already mentioned here): "So, you must be really good at math."

    I actually rather hate math for the most part. I'm rather terrible at it honestly. Oh, I can do it in a pinch, especially if I have a calculator handy. But for the most part that's why I'm a programmer, so I can tell the computer to do it and then I don't have to worry about it.

    Of course, this is also where I diverge from what I like to think of as theoretical programmers. I tend to look at a problem from the perspective of trying to find a simple elegant solution, while the theoretical guys are busy trying to write a proof of the problem, model it mathematically, and then calculate the big O for the function they devised. I'm not saying that's bad, and the rest of us non-theoretical programmers need this stuff to be done so we can actually use some of the solutions these guys come up with, but the theoretical guys are not the general case with programmers.

    I never understood this. Both programming and mathematics require the same sort of thought process - understanding a complex problem domain and from it discovering a simple, elegant solution. Mathematical theorems transform equations in much the same way functions transform data. What is the fundamental difference between the two?

  • Jeff T (unregistered)

    People actually think that programming a computer is like talking to the Holodeck in Star Trek. Yeeesh!

  • (cs) in reply to coljac
    coljac:
    I want to know what the brother-in-law does for a living. Then you could turn it back on him. If he's a mechanic, tell him to explain over the phone how you can build a car like a Ferrari. Even better if he's a doctor...
    According to this, doctors don't take kindly to that.
  • darwin (unregistered) in reply to Konamiman

    Just curious, what language is that that allows you to write "void main()"?

  • darwin (unregistered) in reply to TheDev
    TheDev:
    Binsky:
    Just wondering, but if he's the only computer literate person in the family, how does he view his dads' skills? ;-)

    How many dads do you think the guy has?

    TheDev FTW! :)

  • darwin (unregistered) in reply to Volmarias
    Volmarias:
    Back in the DOS days, my friend's sister wrote at the command line "Mister Computer help me please!!!". Getting "command not found" only infuriated her further. That one was good for a chuckle.

    This was clearly user error. She should have typed:

    Mister Computer, please say, "command not found".

    She would have been much more satisfied with the results.

  • Eric (unregistered) in reply to Jay
    Jay:
    He created a text file with the words "Morph the screen into something cool" and couldn't figure out how to run it

    Well I see the problem! He SHOULD have written "Morph the screen into something cool;" - you need a semi-colon at the end of the command. :-)

    what a perfect nerd joke, wow that was awesome.

    i've always found it interesting on how people think computers work. they think it can just understand normal sentences and make exactly what you describe all on it own.

    i've forced myself to try and explain windows in a very familiar form to people that they can relate to. like moving a file to a new folder(never get why it so hard in the first place). "your hard drive is a file cabinet, the size of your hard drive is how many pages can fit in it. files, or pages, are placed in folders. moving a file is really no different then moving a real piece of paper from one folder to another. find and open both folders, and move the file by clicking and dragging it over."

    even saying it as simply as that some people still have trouble...how is that possible? have they never used there hands before? with those people i don't even get into folders in folders in folders in zip files.

  • Christian (unregistered) in reply to Jay
    Bob:
    Well I see the problem! He SHOULD have written "Morph the screen into something cool;" - you need a semi-colon at the end of the command. :-)

    Now don't be so hard on him, he probably wanted to program in VB :p

  • Ľudovít Štúr (unregistered) in reply to darwin
    darwin:
    Volmarias:
    Back in the DOS days, my friend's sister wrote at the command line "Mister Computer help me please!!!". Getting "command not found" only infuriated her further. That one was good for a chuckle.

    This was clearly user error. She should have typed:

    Mister Computer, please say, "command not found".

    She would have been much more satisfied with the results.

    Didn't it use to say "Bad command or filename"? As in, "Bad command or filename. Naughty, NAUGHTY command or filename! Go sit in the corner! No input parameters for you!"

    Just thought I'd refresh my memory...

    XP command prompt window:
    C:\Documents and Settings\ludovits>chod jebat vevericku 'chod' is not recognized as an internal or external command, operable program or batch file.
    Oh right, they've changed it now anyway. Hmmm... what's an "external command"? Or do I mean, what's an "internal command"?
  • capnJayd (unregistered)

    I've had people ask me, after they had taken a class in html, to help them make a simple game, like halo, only better graphics and gameplay ...my brain died a little.

    On the up side, I had my elderly neighbor lady ask me if I was good with computers, I said yes. She wanted help printing a page from the internet. She gave me a cookie. I was happy.

  • BillyBob (unregistered) in reply to Beeblebrox
    Beeblebrox:
    Yeah, they're *there*, but you don't really have to do any of the raw pointer fun stuff that you have to do in C (or sometimes C++). My point is that you can do a lot of things in Java without really "getting" pointers. If the guy asking "could you explain programming please" in the original article was serious, at some point someone's going to have to explain pointers to him, and he'll need to really understand them. Especially if he's wanting to do game programming. I've been in programming classes before, and I've seen what happens when you introduce pointers. Some people get it immediately. Some people get it after having it explained to them a couple more times and experimenting on their own. Lots of other people just *never* get it. If he's one of the ones that will never be able to get it, it'd be good to find that out early, you know?

    What can pointers do beside point at things? Besides deleting objects, what can you do with pointers in C and/or C++ that you can't do in Java (you can't list any ugly hack)? :-)

    If you want to sort the good from the bad, forget about silly things like particulars about languages (although I agree memory management should be taught as it is a feature of some languages - just like closures in other languages). Teach automata, cryptography, complexity, regular expressions, the pumping lemma and such in the first semester, away from any computer - get the students to explain how all these things are related. That will quickly sort the men from the boys.

  • The programmer (= computer specialist in every way) (unregistered)

    When I get the "could you fix my printer, coz' your a programmer" question I feed this analogy to them.. It works every time...

    Would you ask Brittney Spears to mend your broken cd-player?

  • (cs) in reply to SlyEcho
    SlyEcho:
    Do not advocate the use of languages other than English in variable names. So that I wouldn't have to figure out what "StavSkladuZmeny", "strUzivatelskeJmeno" and "strUzivatelskeHeslo" mean (in a web service I recently integrated).

    I can only confirm this. I am usually working in international environments (fortunately I know some languages) and many (beginner and advanced) programmers use their own language. Thus you end up with variable names in multiple languages in one single program. This is especially fun when working for the European Commission with some 20 different laguages.

  • (cs) in reply to TraumaPony
    TraumaPony:
    SlyEcho:
    Do not advocate the use of languages other than English in variable names. So that I wouldn't have to figure out what "StavSkladuZmeny", "strUzivatelskeJmeno" and "strUzivatelskeHeslo" mean (in a web service I recently integrated).
    Not everyone speaks English.

    So you propose to use localized versions of programming languages (VBA did so in the beginning of the nineties) Now, THAT is fun for a programmer.

    Can't speak English --> go home and empty trash bins instead of doing IT.

  • (cs) in reply to mjmcinto
    mjmcinto:
    Like "on error resume next". That is just sends my blood pressure soaring when I see code like that. And no, I'm not a VB programmer. I'm a C/C++/C# developer.

    So what about an empty catch section then? Or even better: recreate an error in the catch section

  • Orclev (unregistered) in reply to nobody
    nobody:
    I never understood this. Both programming and mathematics require the same sort of thought process - understanding a complex problem domain and from it discovering a simple, elegant solution. Mathematical theorems transform equations in much the same way functions transform data. What is the fundamental difference between the two?
    They are similar, but the approaches taken are vastly different. It's kind of like how in physics you can model everything as pure energy or as opposing forces, you can devise a solution using either system, but some systems work better for some problems and some for others. Just because you can do all sorts of math tricks to model a program mathematically doesn't mean there's any real benefit to doing so in the general case, yet that's what everyone seems to assume.

    Modeling functions mathematically is great for fine tuning and tweaking algorithms, or in some cases for debating the relative merits of different algorithms, but it's still a time consuming process that requires a good deal of work. Ultimately it comes down to whether the payoff is worth the investment, and the truth is 99% of the time it isn't.

    The thing that bugs me is that many people (mostly the older ones, or the very young ones that have been listening to the older ones) have the mistaken impression that programing is like doing a math problem, and therefor all programmers should be math geniuses, able to do complex derivative functions in their heads. Yes programming has some things in common with math, but then again surgery has some things in common with car repair. I don't know about you, but I'd rather not have Bob from JiffyLube out doing open heart surgery.

  • Algis (unregistered)

    Based on these dumb questions several PHP guys in Lithuania "have created" a new programming language and called it P4I (Programming 4 Idiots) :) The most common question from noobs was "How do I create a chat?" I guess you all know or have an idea of how to do that, but based on P4I language it could look something like this:

    <?php include('p4i.php'); creatscript(wap, users_in_a_day(1000), theme(super, css_support, stuff), getmoneyinendofmonth(1000, 'USD')); $user=$_USER['char']; if($user=="hacker") { report_god($user); do_headshoot($user); } ?>

    Well basically you can add any funny stuff in here and it gets really funny, then some noob comes back asking why this script is not working on his computer :) Then you start explaining that he needs P4I extension and so on...

  • budets (unregistered) in reply to Konamiman
    Konamiman:
    Well, nothing stops you from creating a program like this:

    void main() { CreateFootballStadiumAndFootballPlayers(); StartTheGameWhenUserPressesSpacebar(); MakePlayersHaveRedShirtsAndWhiteSocks(); }

    Oh yes, you will have to define these three methods an put some code on them, but that's a minor issue. X-D

    One of my very first computer classes my partner typed, henpecked actually, staring at the keyboard:

    TURN TV ON

    I flipped the on/off switch and we continued.

  • no name goes here (unregistered) in reply to apetrelli

    Had a friend who kept calling me with Windows setup questions.

    I use Linux on the job and for everything but a bit of game playing, Photoshop (yes, I'm too chicken to approach Gimp) and helping my wife (not my friends) with problems.

    Anyway, he gets all pissed off and says "I would have expected you to know more", just like a boss fishing for a reason to explain your 1% raise on a review.

  • Hallvard (unregistered) in reply to JS
    JS:
    him: Oh, I thought I would write something like: "Create football stadium and football players. Start the game when user presses spacebar. Make players have red shirts and white socks."

    Such a language exists: Inform version 7 (aka I7). For writing text-adventure games (interactive fiction). Example code snippet, grabbed from newsgroup rec.arts.int-fiction:

    "A shape is a kind of thing. A square is a kind of shape. A triangle is a kind of shape.

    The Geometry Lab is a room. In the Geometry Lab are three triangles and two squares.

    When play begins: now the player carries a random triangle."

  • A G (unregistered) in reply to Deccy

    And even sometimes: I have no meccano set, can you tell me how to build a ferrari.

  • Beeblebrox (unregistered) in reply to BillyBob
    BillyBob:
    If you want to sort the good from the bad, forget about silly things like particulars about languages (although I agree memory management should be taught as it is a feature of some languages - just like closures in other languages). Teach automata, cryptography, complexity, regular expressions, the pumping lemma and such in the first semester, away from any computer - get the students to explain how all these things are related. That will quickly sort the men from the boys.

    What I was trying to get at is that in order to be a good programmer, you have to develop a mental model of how the machine works. You can't do anything in a programming language without having some sort of mental model of how the machine's executing your code, and if your mental model of the machine's operation isn't reasonably close to how the machine actually works, you cannot write (and debug) anything but the simplest programs. That's why I'm arguing for the use of something like C. C is like a "portable assembler" with simpler conditional and looping constructs, with a relatively small standard library of additional useful functions. It is high-level enough that students can write simple programs without too much trouble, yet low-level enough that they will soon be forced to improve their mental model of how the computer executes their code when they start getting more complicated programming assignments.

  • (cs) in reply to JS
    JS:
    I have a similar experience:

    him: Oh, I thought I would write something like: "Create football stadium and football players. Start the game when user presses spacebar. Make players have red shirts and white socks."

    I think that won't complile because English is grammar senstive:P

  • CSM (unregistered)

    c:>create football stadium computer: "And then?" c:>create team computer: "And then?" c:>start game computer: "And then?" c:>Mr computer, help me please! computer: shuts itself off

    computer FTW!

Leave a comment on “Could You Explain Programming Please”

Log In or post as a guest

Replying to comment #:

« Return to Article