Slashdot Mirror


Do Kids Still Program?

From his journal, hogghogg asks: "I keep finding myself in conversations with tertiary educators in the hard sciences (Physics, Astronomy, Chemistry, etc.) who note that even the geeks—those who voluntarily choose to major in hard sciences—enter university never having programmed a computer. When I was in grade six, the Commodore PET came out, and I jumped at the opportunity to learn how to program it. Now, evidently, most high school computer classes are about Word (tm) and Excel (tm). Is this a bad thing? Should we care?" Do you think the desire to program computers has declined in the younger generations? If so, what reasons might you cite as the cause?

20 of 1,104 comments (clear)

  1. Actually, I'm in high school... by Anonymous Coward · · Score: 1, Informative

    And most of this is completley correct. I am a pretty big anamoly in my average sized high school, in that I actually know how to program. (C, I bought the K and R book in eighth grade) The only programming that is done outside the eight person comp-sci class is when someone decides to put a HTML break in their myspace profile. It makes things kinda lonely for me.

  2. Well, coming from... by cshank4 · · Score: 4, Informative

    ...a current highschool student. I must say, programming is a dying art among my peers because it's seen as 'uncool, unhip and boring.' There's no drive for it any more. I'm in my Junior (Grade 11.) year and I'm just picking up some C++ and C. Granted, I learned how to program for LinguaMOO's and I picked up some HTML back in 5th and 6th grade, so it's a little easier for me. But the point is, it's been... convoluted? I guess that'd be the word I'm looking for. It's been washed out by things like sports, staying fit and doing drugs. Hooray.

  3. It's Too Hard!!! by AaronBrethorst · · Score: 4, Informative

    Seriously, the complexity associated with modern development tools is way too steep a curve for your average 14 year old to wrap their heads around. We're trying to address this to a certain extent with the Visual Studio 2005 Express Editions, but it's a tough problem. It's no longer as simple as getting a bare-bones BASIC interpreter built into your computer's ROM. I think there have been some cool advances in this space, though, in the recent past. Take the Kids' Programming Language, for example. It's is expressly aimed at the younger crowd. I've seen a demo of it (the guys from Morrison Schwartz who created it came by to give a talk on it last year), and I must say that I am suitably impressed their work. Check it out if you have a younger child who you want to introduce to development.

    --
    No, but I used to work for Microsoft.
  4. Yeah... by seabre · · Score: 2, Informative
    I recently graduated high school and am currently pursuing a math degree...My high school didn't really have any decent computer classes, and offered zero programming classes. The computer classes that we did have you could basically not do anything and still get an A.

    But I mean, you don't need a school to learn programming. I started in elementary school with the second edition of Kernighan & Ritchie's C programming language book and I've been hooked on coding ever since.

  5. VBScript by tepples · · Score: 2, Informative

    the standard OS nowadays (Windows) does not come with a readily accessible programming language.

    You mean other than JScript and VBScript, both of which run inside IE? I guess VBScript could almost be considered the descendant of the GW-BASIC that you mention.

    (I would recommend Visual Basic Express, a free download for the owner of a legit copy of Microsoft Windows, but it appears that you need to be a Passport member to acquire an activation key, and Passport members need to be 18+.)

  6. Incompetant Teachers && World of Warcraft by bhav2007 · · Score: 2, Informative

    I'm the only person at my (very small) private high school to pass the AP Computer Science test in the last couple years. In fact, I'm the only person who is even taking the second year of the class. Personally, I love programming, and I've actually written some c# which is working in a (pretty nice) live site right now. I am continually suggesting to any semi-nerdy personalities that they should give Linux a try, because I know that they might really enjoy computers if they ever bothered to learn anything about them. But every nerdy kid I know who has an ounce of talent with computers has wasted every free second in the last few years obsessively playing World of Warcraft.

    The CS course at my school only makes things worse, as the current teacher manages to make even Java extremely difficult, and the last teacher failed to teach at all. Maybe a factor in this lack of young interest is a lack of competant teaching talent? I can't speak for others, but I cannot imagine anyone continuing any work with computers if they have to learn from the people I've seen teaching them.

    And yes, I can attest that most high school computer courses now consist of (shudder) Microsoft office and frontpage. In fact, my school just added "Business Accounting" (read Excel) and another similiar class to the curriculum.

    Just my experience.

  7. Re:Degrade of Education by masdog · · Score: 2, Informative

    Kid, you're only in your second year of high school. It will, hopefully, get harder for you from here on out. Or maybe not.

    Like other posters have said, if there is something you are interested in, go buy a book and use the Internet to teach yourself. Formal education limits your ability to be creative and develop your skills in the directions that you want to take them.

    If you really want to LEARN something and be able to apply it, you have to work outside of the classroom. You'll be working outside of a controlled situation where you won't have a textbook to go back to for the answers, and you will have to learn how to diagnose a problem and be resourceful to solve it.

  8. Re:Learning curve of linear vs OO? by Temposs · · Score: 2, Informative

    Well, to me, the obvious modern answer to BASIC is Python( http://www.python.org/ ). It's about as easy as BASIC, has an easy-to-understand help library, and runs best by command line interpreter. The IDE even comes with a Windows-based command line interpreter! In fact it looks a lot like BASIC, too, but also has more modern programming concepts fully built-in. I started in on BASIC in 3rd grade and taught people BASIC in middle school, before switching to C++ and Windows programming in high school(graduated in 2000). I now have a BS in Comp Sci and am a PhD student.

    --
    Knowledge is just opinion that you trust enough to act upon. -Orson Scott Card
  9. Yes....but maybe not a lot.... by natmaster · · Score: 2, Informative

    I'm currently finishing up my freshmen year in College majoring in CS - take that into consideration with how "relavant" I am in this history. I started doing web based "programming" in 6th grade, and in 7th started doing C and C++. I quickly learned a plethora of other languages in subsequent years. So, for regards to my age generation - yes, kids still learn to program. I don't know if my recency is relevant enough for this case though. Also, I should point out that CS enrollment in universities is declining - even though demand is increasing rapidly.

  10. Re:Define Program by linguae · · Score: 2, Informative

    Reread the parent's post. HTML is not a programming language; it is a markup language. However, you still have to markup your document, kind of like how you would code a program (just without the variable setting, looping, etc.).

    As a personal sidenote, I learned HTML back when I was in 3rd grade. I was always very interested in computers, and my family just got an Internet connection. (This is in the mid-90s; keep this in mind). I got interested in creating web pages, so I scoured the Internet to learn how to do so. I ended up learning HTML and made *.gif images using Paint and typing the .gif extension (I didn't know about proper file formats at the time, so I just changed the file extentions. It worked, using Windows 95 and IE 3.0). (I wish I could show you the site [it was some comic book mide with some of the ideas of myself and my then-preschool-age brother], but it is on a long-disappeared AOL member site which hasn't been archived, even though I have some WordPad documents on a disk somewhere back at home).

    Later that year, I ended up learning QBASIC. I even convinced my parents the following year to buy Visual Basic, and stuck with that for a few years. After outgrowing that, I learned C, C++, and Java (by both independent study and by community college courses taken at the last year). Now I am a freshman computer science major.

    So, yes, getting back to the main point, HTML is a vaild stepping stone for many kids. You can't do much with the Internet without it; in fact, I use HTML every day to type these Slashdot comments, and most message boards have some HTML-lookalike for formatting comments. After learning HTML, they might learn something more challenging, like Python (which seems to be the new intro language these days).

  11. Re:No more GWBASIC by Anonymous Coward · · Score: 1, Informative
    I think the real problem lies in the fact that the standard OS nowadays (Windows) does not come with a readily accessible programming language.


    Try a Mac. It may not meet your definition of a "standard OS" but it comes with a readily accessible language: AppleScript

    Consider:
    - AppleScript comes installed on all Macintosh computers
    - The syntax is relatively clear and simple (yes, it can also be very quirky but it's not nearly as intimidating to a beginner as, say C is)
    - Variable types include strings, integers, floats, indexed and associative arrays with local and global scoping
    - Functions that can pass by reference or by value
    - Flow control statements include if/else, while, various loop constructs, error handling
    - You can get results in the GUI right away (including automating almost anything the OS can do)
    - You can use it to string scriptable applications together to accomplish fairly complex tasks (Photoshop, Illustrator, InDesign, GoLive, FileMakerPro, Cumulus, GraphicConverter, Tex-Edit Plus, ...)
    - You can even use it as a CGI scripting language

    Once you get the hang of it, you can move on to AppleScript Studio using AppleScript and the Mac OS X Cocoa (Objective-C) framwork to to create compiled applications. Then it's under the hood to start playing around in the *NIX command line environment with Perl, Python and Ruby (all installed by default as well).

    http://www.apple.com/macosx/features/applescript/

    It was definitely an easy entry point into programming for me. In fact, I didn't really consider what I was doing at the time to be programming until I started studying other languages and realized that I was already familiar with most of the concepts and constructs.

    My two cents, for what it's worth...
  12. Re:yes, they do! by earthbound+kid · · Score: 4, Informative

    Computers no longer ship with an easy to use basic that gives instant results.

    Mine did. Applications -> Utilities -> Terminal.app; % python.

  13. For Newbie Coders: Python by Garrett+Fox · · Score: 3, Informative

    I recommend Python to kids wanting to learn programming. It's free, it's very easy to get started with command-line stuff and simple programs, and it doesn't take some rediculously complex installation process just to get it working. (Although creating a shortcut to IDLE is an unadvertised Useful Thing To Do.) There's also Pygame, a library for graphics/sound/other game stuff, and I'm just starting to play with Panda3D, a Python 3D engine (that includes a copy of Python itself). I found that C/C++ gave me headaches, as did attempting to get other 3D engines working with Python bindings, while Python simplifies a lot of tasks (variable declarations, memory management) without sacrificing functionality. So, Python is a relatively easy way to get into programming.

    --
    Revive the Constitution.
  14. Re:Define Program by debiansid · · Score: 2, Informative

    Yes, HTML is a programming language.

    I'm not so sure about that. HTML is a markup language that defines what the data is and how it is to be placed.

    True, you need to have the concept of code but that doesn't make it a programming language. If HTML is a programming language then Tex would also be a programming language. But it's not.
    Among the many things HTML falls short in being a programming language, here's a few:

    * It does not support branch conditions
    * It does not have the concept of variables (you have tag ids and names but those are used by javascript/perl/php/asp for processing, not by html)
    * Data manipulation is not possible. Only display can be manipulated.

    You'll be better of calling it a Markup Language (language to define/present the data rather then use/manipulate it in any way) rather than a programming language ;-)

  15. Re:Define Program by pebs · · Score: 2, Informative

    HTML is not a programming language, it is a markup language. Javascript is a programming language.

    --
    #!/
  16. Kids do still program by jbgreer · · Score: 3, Informative

    Speaking as one who currently teaches computer science in high school classrooms, I can offer my own anecdotal evidence to the contrary: students do still program computers. That said, I agree with much of what others have said here. These days there are usually several different courses that tend to be lumped together as 'computing', although some of them have nothing to do with one another save that they involve a computer:
    - keyboarding, aka typing
    - computer literacy, aka word processing, productivity applications, etc.
    - introductory programming,
    - intermediate programming,
    - AP computer science

    The first two in the list have little if any programming component. I say little, though the second course may cover a number of use of spreadsheets and through that the use of formulae, conditional expressions, etc. [ I should note that there is a online journal dedicated to documenting the various ways in which spreadsheets can be used to teach various concepts - see http://www.sie.bond.edu.au/ for more details. ]

    The introductory and intermediate courses may have widely differing names depending upon when they were introduced into the school system; a local public system calls the second course "Data Structures", most likely because it was introduced during the Pascal heyday. Even though these two course sound like a close-knit progression of coursework, they actually may be quite different. Two of the local systems teach a different language (Java) in the second course than is used in the first course (VB.Net). The reasons for this choice are not entirely clear. Pascal was introduced into high school classrooms largely via the Apple II series; even the emergence of the IBM PC and its clone still gave access to Turbo Pascal. Not to imply that VB.Net is a step backwards, but the return in the high school classroom to QBasic, VB 6, and then VB.Net seems driven more by the availability of textbooks than other factors. I welcome a more informed explanation.

    Originally Pascal was chosen as the AP Computer Science language of choice. { Here A.P. means Advanced Placement, high school courses with an associated standardized exam; many colleges and universities recognize exam scores and award credit towards degree programs. } For whatever reason, though, that choice was relatively short lived - perhaps driven by a 'pragmatic' crowd that wanted a 'real programming language' to be taught in the high school? At any rate, Java is now the language used in the the AP Computer Science exam. There is talk of changing the exams again to use a more language agnostic format.

    A great many other tools and languages are taught in addition to or besides these, obviously. A smattering of ones that I know of or have used:

    - The TeachScheme project http://www.teach-scheme.org/ exists to provide resources for those who wish to use Scheme in introductory high school and college courses. { And DrScheme rocks.... } I personally know one high school instructor who went through their workshop and adopted their approach and who had good things to say about it. { In fairness, though, he is currently teaching Java due to his participation in an NSF-funded grant. } For those looking for a natural follow-on to Java or more 'traditional' OOP programming, might I suggest having a look at Proulx and Gray's work in
    How To Design Classes and ProfessorJ
    http://www.ccs.neu.edu/home/vkp/HtDCH/ http://www.drscheme.org/.

    - Alice http://www.alice.org/ is getting a lot of well deserved buzz, especially in light of the recent announcement that EA will be funding the development of their next major version (3.0), which will include features from the popular Sims game series. Caitlin Kelleher's work in extending Alice into a storytelling environment has also produced good results, esp

    --
    The Norton Anthology of English Literature, 4th Ed., Vol 2
  17. More than ever, just not out of need by Andabata · · Score: 2, Informative

    There are LOTS of computer-programming languages for kids. And a few don't even lose expressive power in comparison with traditional languages. And lots of kids use them. It's just that previously (80's) programming a computer was a requirement for using them at all. Check out ToonTalk (www.toontalk.com). In this animated language, you can program while the program runs, and all your programs are by language design concurrent and distributed - you get a program to run on various computers simply by copying and pasting parts of the code into and from an e-mail. Also, see the Squeak project (http://www.squeakland.org/) or the WebLabs project (http://www.weblabs.eu.com/).

  18. It's not a matter of exposure. by Nairanvac · · Score: 3, Informative

    FYI, I'm 14, and I've begun to see an inherent tendency towards ignorance in computers in schools. Not only that, but they've been taught apparently, to shy away from knowledge.

    At the slightest mention of a technical sounding term, a torrent of insults, "Shut up", and "What the hell is he talking about?" comes at me. The point is that it's not that these kids haven't been exposed enough to computers, it's just that they're not willing to accept teaching. A kid will gladly spend 4 hours playing piddly flash games and browsing MTV.com, but if you ask that same student to take 15 minutes to read a tutorial on HTML, they'll blatantly refuse, and say how that's too geeky.

    Now, I'm not going to deny that computers haven't been made boring in schools, because they have. This is due to the fact that the computer teachers and network admins at the schools are ignorant dumbasses. I once asked the admin at my school why they didn't use Linux on the school's servers, to which she replied "What is Linux?". At that point I almost lost all hope for humanity.

    And, don't even get me started on so called "Computer" class. All you do in there is either a) do math games, or b) play childish typing games. No where in that class do you learn anything about actually making use of a computer.

    Not only dot he students refuse to make use of any technical knowledge, the teachers won't let them. I once had a project I had done, and I had no blank CDs, so, I did the smart thing and emailed it to myself, only to find out the next day that you're not allowed to download any files, at all. So, that was fine, I went home the next day, went out and bought some CD-Rs, only to find out the next day, that you aren't allowed to put any discs into the school computers.

    So, in a nutsheel, kids these days are ignorant,and resist learning, the computer classes in schools are only acceptable for "special" children, and teachers refuse to let students exhibit their technical ability.

    --
    All your reading ability are belong to me.
  19. Re:Who could teach it? by AhtirTano · · Score: 2, Informative
    I agree with the general point, but not:

    Work with lazy and dumb students who disrupt class, yet can not be kicked out or even (except in Texas) spanked. Get stuck doing odd jobs like minding the bus loading/unloading area and trying to stop food fights.

    My father was the local high school programming teacher for a while in the 80s. He quit about 89/90, and he now earns >$100K. But he didn't leave because of the students. He always said that if you treated students with respect, they were easy to deal with. His lab was constantly full of students, so he was probably right. He actually left because he was tired of dealing with parents--treating them with respect didn't make much of a difference, and he wasn't paid enough to put up with their crap.

    My mother has taught K-3 since 1974. She has basically the same opinion. Students are great. Parents suck!

  20. Re:Define Program by dkf · · Score: 2, Informative
    If HTML is a programming language then Tex would also be a programming language. But it's not.
    Minor correction: TeX really is a programming language; you can (with much twisted code) write while loops in it. That means it is Turing-complete, and hence a programming language by definition. But I agree that HTML isn't a programming language; if it was, you wouldn't need Javascript.
    --
    "Little does he know, but there is no 'I' in 'Idiot'!"