Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
Education Programming

Ask Slashdot: What To Tell High-Schoolers About Computer Science? 315

First time accepted submitter lsllll writes "I got drawn (without my intention) into three 20 minute sessions, talking to high school students about computer science and programming, and am wondering what are some of the things I should talk to them about. I have previously done the same thing for a forty minute period, and all the students wanted to talk about game programming. My only game programming experience dates back to the late '80s and programming a few games (some which ran on top of Novell's network) in Turbo Pascal. Since then I have done lots of database design, web interface programming, and systems configuration and integration. I am pretty fluent with Windows and Linux, but my contemporary programming skills are somewhat limited to Coldfusion, PHP, Javascript, SQL and bash scripts. Should I talk to them about different aspects of computer science, what it's like to work full-time in the computer industry, or do I make the sessions just question and answer, since 20 minutes might not allow me to talk and do question and answer?"
This discussion has been archived. No new comments can be posted.

Ask Slashdot: What To Tell High-Schoolers About Computer Science?

Comments Filter:
  • Tell them this (Score:2, Informative)

    by gatkinso ( 15975 )

    If they are passionate about it it is a fun and rewarding career, with lot's of job opportunities.

    They won't get outside much, they will need to stay active after work to not get fat, and that programmer != sys admin.

    • by karnal ( 22275 )

      Agreed with this. The one thing I learned in starting my career is that I don't like programming full time for someone else. Especially when they don't have a decent workload to throw my way. At that point I switched to various duties under the sys admin part, then got into network administration. Now I've got too much to do but love my job.

    • Re:Tell them this (Score:5, Insightful)

      by Groink ( 887306 ) on Saturday October 22, 2011 @11:07AM (#37804312)

      If they are passionate about it it is a fun and rewarding career, with lot's of job opportunities.

      They won't get outside much, they will need to stay active after work to not get fat, and that programmer != sys admin.

      I'd especially tell them what it ISN'T. There are a lot of misconceptions about what computer science actually is and a lot of is perpetrated by well-meaning adults who tell kids "go learn about technology" and glom computer science into that extremely broad category of "tech".

      I work for a youth organization, and I always have kids watching what I do and going "Cool, can you teach me how to hack?" Invariably, they get disappointed when I show them how to ssh into a remote machine and recompile the kernel instead of breaking into a DoD mainframe and launch missiles at China or something. And anytime I do try and generate interest in actual programming, it is hard to get past the "How do you program games?" point. Let's work past printf and scanf first, junior.

      It's a toughie. IANACS, but I've taken programming and numerical theory classes and it can be tedious and detail oriented. It's hard to put that up against a generation who has a lot of instant gratification when it comes to their experience with anything technology related.

      • Re:Tell them this (Score:5, Interesting)

        by starfishsystems ( 834319 ) on Saturday October 22, 2011 @12:18PM (#37804804) Homepage
        Hard to put that up against a generation who has a lot of instant gratification when it comes to their experience with anything technology related.

        Man, you have a true gift for words.

        When I was a CS undergrad, it was a small and somewhat exotic discipline. Exactly one course was offered at the first year level. Anyone wanting to get into the program had to first pass through the course. It began with a lecture that basically warned us to expect several times the effort in this course compared to the other sciences. That was no exaggeration. It meant that not too many people went into the program who didn't love it for its own sake. We were happy to put in the time. This was the spirit of folks like Dennis Ritchie.

        The dot com boom felt horrid. The industry was massively invaded by greed and competitiveness and impatience and fascination with all things shiny, more the spirit of Steve Jobs. But you can't get around the fact that science is a discipline. It entails a lot of work. If I were trying to expose kids to computer science today, I'd talk to them about this reality. I wouldn't mind scaring a lot of them away, frankly. But I'd also present some simple examples of why I find it so beautiful and appealing. Binary numbers and simple operations. I'd say, "This might seem boring, but this is where it all starts. All we have to work with at first is O and 1. They're our Legos. And we're building an entire universe with them." I'd let my enthusiasm speak for itself. A few in the class would sort of get it. That's all that matters.
        • When I was 40, I went back to university to do a DippAppSci, a 12 month course roughly half the value of an MSc.

          A 3 credit Computer Science course took more than 3 times the effort of a 6 credit 'Management of Innovation' paper I did at the same level!

          Debugging is often very tedious and time consuming, but you still need to stray awake and keep your wits about you.

          If you can not tolerate being outside your comfort zone for more than a minute, then don't attempt CS. At times, I spend days outside you
        • Re:Tell them this (Score:4, Insightful)

          by Reservoir Penguin ( 611789 ) on Sunday October 23, 2011 @03:19AM (#37808426)
          I'm sorry but you are doing it wrong. There are many approaches to teaching and for younger kids it's not necessary to start with such formal fundamental things. I learned English as a second language not by first learning what a verb is and what tenses there are but by reading websites and watching movies.

          There is nothing wrong or impure about showing kids a python or basic based easy to use development environment, teaching them some basic operators and letting them get immediately into creating games.
      • When the talk starts with kids asking about programming games, it's not so hard steering it towards actual computer science. Because game engines are nothing but linear algebra, general algebra, graph theory, artificial intelligence and advanced image manipulation. That's pretty much computer science in a nutshell. Except that actual computer science is about inventing new stuff in those areas while games are mostly about applying what we already know.

        BTW, I'm sure there's a lot of cool stuff you can do wit

      • It's hard to put that up against a generation who has a lot of instant gratification when it comes to their experience with anything technology related.

        And I had to walk uphill both ways to school... Some of you are proposing you spend 20 minutes with the kids speaking down to them from an ivory tower, using such words as "scary", "don't", "can't". If your aim is to turn off kids to computer science that is a good approach. Yes it is true, you must work hard and display patience. This should not be news to them and if they don't embrace this at some point they will not be successful at anything. So lets not pretend we are special.

        You can tell them t

      • Rather than killing the interest by jumping right into the primitive stuff and saying "you start here," you might hold their attention if you start with the shimmering end goal of H4X and peel back the onion, little-by-little to ultimately reveal why they have to learn the primitive stuff. You know what I mean? Like give them a broad idea of the journey before you start in with the tedium.

        If you want to weed out the faint of heart or the lazy, starting with printf sounds like a sure-fire way to ruthlessly

      • by Kjella ( 173770 )

        And anytime I do try and generate interest in actual programming, it is hard to get past the "How do you program games?" point. Let's work past printf and scanf first, junior.

        No, let's not. If you can create even a simple "whack-a-mole" game flipping an image, mouse click to whack and a high score you've given that kid 100x the interest rather than printf and scanf. Are you trying to scare them away or just really that stuck in the 1980s?

      • Right after I learned a few basics of the C16 (C64 was for rich kids) I programmed a small game. Granted it wasn't much, dodge missles in a balloon but it was a game. And it was within a weekend. Instant gratification was a LOT easier back in the days. Only thing that gotten close was knocking up a light organ with Andruino and a robot that tries to stay within a given distance of your hand. Also quick knock-ups although they were done based on years of programming experience.

        We had it easier as oldies when

      • by pxc ( 938367 )

        I work for a youth organization, and I always have kids watching what I do and going "Cool, can you teach me how to hack?" Invariably, they get disappointed when I show them how to ssh into a remote machine and recompile the kernel instead of breaking into a DoD mainframe and launch missiles at China or something. And anytime I do try and generate interest in actual programming, it is hard to get past the "How do you program games?" point. Let's work past printf and scanf first, junior.

        This won't help OP, b

    • Re:Tell them this (Score:5, Insightful)

      by sneakyimp ( 1161443 ) on Saturday October 22, 2011 @12:46PM (#37805004)

      Telling them that programmers make good money is definitely a way to generate interest. Computer Software Engineers [myplan.com] make about twice the average salary in the United States and salary growth has been consistent for years. It probably wouldn't hurt to point out some of the folks who have made a fortune in the software business.

      I wanted to program games when I was about their age and still do. I remember that I found the prospect of learning a language quite daunting and didn't understand why all the cosine/sine/tangent functions were necessary. Having since programmed some crappy little games, I realize that the motion of objects on a screen is all about trigonometry or geometry. Had someone explained to me back then why I would need all those weird mathy functions, it would have done me a great service I think. Uh, I'm rambling. I guess my point is that math is extremely helpful when programming games. You might want to also explain how stuff like databases or other technical stuff are really important and useful too. For example, storing high scores (or inventories of weapons/armor/whatever) are easily accomplished with a database. If you spend some time explaining why they have to learn the "boring" stuff by giving examples of how it's used, they might be more inclined to slog through it to actually become a game programmer.

      Another thing they might find extremely useful to know is what technologies might get them started without having to shell out money for an integrated development environment or a server. For instance, all you need is a browser and a text editor to start working with HTML and Javascript. If they want to write a game, perhaps you could demonstrate some simple code that listens for keystrokes and moves a DIV tag or image around the screen.

      And lastly, you might want to point out how there's a huge difference between being a computer scientist and just building websites for a living. It can be a simple vocation or it can be an abstract, theoretical endeavor.

    • Also that programmer != computer scientist
  • Society and CS (Score:5, Interesting)

    by hrdo ( 1558935 ) on Saturday October 22, 2011 @10:44AM (#37804124)
    I think it would be a good idea to discuss with them how computer science effects different aspects of society. I think the reason they like to focus on game programming is because that is the only exciting thing about CS they soft of understand. Here's a few things you could talk about application wise: - Control systems (aviation, industry, trains, subways, superfast cars, etc.) - Trading robots - changing market dynamics - Open source and the web Just a few ideas. Q&A is fine if they are up for it, but give them some focus points up front. Cheers!
    • Re: (Score:2, Interesting)

      by Anonymous Coward

      I agree - I think it would be important to talk about how pervasive computers have in our economy and society - it's hard to imagine an aspect of life that has not been affected by the digital revolution - and then explain the role that CS has within that revolution.

    • by shalla ( 642644 )

      I think it would be a good idea to discuss with them how computer science effects different aspects of society. I think the reason they like to focus on game programming is because that is the only exciting thing about CS they soft of understand.!

      I wish I had mod points for this.

      The stock market wouldn't be what it is today without computer science! Er, wait. Maybe you shouldn't mention that. How old are these kids, and are they likely to be more Tea Party or Occupy Wall Street types? :P

    • Re:Society and CS (Score:5, Informative)

      by MacGyver2210 ( 1053110 ) on Saturday October 22, 2011 @01:06PM (#37805132)

      I got heavily into Game Dev during school, and it made for a more fun way to learn intricate programming and neat tricks to get the code to do things you never imagined you'd need. There are some aspects you will need to go deeper into outside of the game mechanic side of things, such as machine architecture and extremely low-level coding, but all of the game-related school programs I have seen include courses for these other fields.

      It also gives you a great understanding of the graphics pipeline, 2D/3D math and collisions, physics, and calculus. This means that - while it's not usually necessary - you can build your entire application engine from the ground up if you need to, instead of vaguely understanding how a third-party library or API works.

      If you REALLY want to go program, Game Dev is a fun way to learn CS.

      (IAACS)

  • Show them a program that can play Texas Hold'em. Tell them about crypto and the cool things that are happening with that (disclaimer: I am a grad student whose research is in crypto). Show them stuff about robotics. Show them how more information can be extracted from medical scans because of advances in image processing.
  • Don't go for gaming. (Score:5, Informative)

    by LinuxIsGarbage ( 1658307 ) on Saturday October 22, 2011 @10:51AM (#37804182)

    Be sure to tell them that the gaming industry is the worst possible CS career path. Expected 100 hour work weeks for peanuts, and usually not working on fun stuff either. And that testing isn't fun either because it doesn't mean you're playing the game for fun, but instead trying to break it.

    • by Hentes ( 2461350 )

      This. Game development is flooded with applicants, and there aren't many jobs, so the companies can easily select the ones who will work like slaves for mediocre pay. If they are interested in game development, do it as a hobby.

    • I don't know what studio you work for, but that is not my experience at all. Yes, the hours are long, but instead of being tedious they are filled with "Oh shit, how do we make this happen without rewriting about 10 pages of code?"

      It is a difficult, time-driven industry, but it is a lot of fun if you really want to go that route. Don't take into it lightly though, the 100 hour work weeks are not far off, and it is frequently shotgun programming to fix a collision bug for 5 hours straight.

      Testing is typicall

    • by pjt33 ( 739471 )

      I hate the way so many people seem to think the entire industry is like that. There's more to the games industry than EA.

  • by NFN_NLN ( 633283 ) on Saturday October 22, 2011 @10:52AM (#37804194)

    I got drawn (without my intention) into three 20 minute sessions, talking to high school students about computer science and programming, and am wondering what are some of the things I should talk to them about?

    Warn them that a career in almost any area of computing science will be high stress, high workload and have few long term options as they age. Apologize on behalf of society for a system that doesn't value real work and instead tell them to think of their future and what makes most sense. Then steer them towards jobs in high finance and save them a life of grief.

    • by Bost ( 1395581 )

      Then steer them towards jobs in high finance and save them a life of grief

      You're not from Greece, right?

      • by NFN_NLN ( 633283 )

        Then steer them towards jobs in high finance and save them a life of grief

        You're not from Greece, right?

        It's not the people in high finance that are going to get the hardest shafting in Greece, I assure you.

        Take portfolio managers for example. What other job can you lose boat loads of money, not hit your target and STILL take home a bonus?
        That would NEVER happen in any field of computing.

        "Four top executives of the Canada Pension Plan Investment Board pocketed nearly $7 million in bonuses this year despite losing $24 billion of taxpayers' money in bad investments, according to the board's annual report relea

    • by Surt ( 22457 )

      They'll arrive in high finance just in time to be up against the wall, good career choice!

    • by Dunbal ( 464142 ) *

      a career in almost any area of computing science will be high stress, high workload and have few long term options as they age.

      Perhaps they should go back to their original idea of studying medicine? /sarcasm - I'm a doc.

    • by epine ( 68316 )

      It will be 2050 by the time these kids are entering their golden years. If you've been following the hollowing-out of the labour market into winners (few) and losers (many), your insightful brief can be successfully compressed to read:

      Warn them that having a career will be high stress, high workload and have few long term options as they age.

    • "Tell them the truth...."
      You mean that they'll never get laid?
      (I kid, I kid!)
      ((Not really.))
      (((Heh)))

  • Quote the Good Book (Score:4, Informative)

    by Sponge Bath ( 413667 ) on Saturday October 22, 2011 @10:53AM (#37804198)
    Read them some Dilbert [dilbert.com] cartoons.
    • by Will.Woodhull ( 1038600 ) <wwoodhull@gmail.com> on Saturday October 22, 2011 @11:49AM (#37804592) Homepage Journal

      Yeah, put together an arsenal of Dilbert cartoons. Use them to season the presentation-- especially effective when you can put an appropriate one on the screen in (partial) response to a student's question.

      Lead off with a Dilbert cartoon. Then spend the first half of the first session doing a general presentation on Javascript and PHP, how they fit together, how much they influence the student's lives, and how students could get involved in using them. Be as interactive as possible. Show a lot of code snippets but keep the discussion at about 10,000 feet: no detail, but low enough to talk about the similarities and differences between the languages. Basically use the server - browser as a concrete example from which you can discuss the larger issues of security, conformity with conventions, dealing with weaknesses in a language, etc, etc.

      Use the last half of the first session as a discussion session, with you asking them what topics they would like you to talk about in the next two sessions. Give them a list of general topics that you could talk about and encourage them to hash it out amongst themselves. Possibilities include design and implementation issues, debts incurred during schooling and salaries and job security, dealing with PHBs and other external job pressures, handling collaboration issues. Use the results to figure out what to do with the following sessions.

      If you run into dead spots, put up a Dilbert cartoon and try to get some discussion going about it. So go in with maybe 100 or so cartoons on tap, with the intention of showing only a few as part of the presentation but with the rest a click away, to be brought in as needed.

      Handouts: No handouts in this day and age. Give them access to a web page written by you for this presentation that has links to basic tutorials on Javascrpt and PHP, and to more material on the subjects you choose to cover in the 10,000 foot overview. Get the student's input on what kinds of things should go on this web page (it should be working by the last session, but it does not have to be finished before then).

      An experienced teacher who knows their subject and their students will need 40 minutes to prepare for each 20 minute session. You know the subject, but you do not know the students and presumably you do not know how to teach (or you would not have asked Slashdot for input). So give yourself an hour to prepare for each 20 minute session, and use feedback from the first session to shape the second and third sessions.

      Let us know how this goes.

  • Programming? (Score:5, Insightful)

    by mmcuh ( 1088773 ) on Saturday October 22, 2011 @11:01AM (#37804256)
    If they want to know about game programming, then obviously they are at the wrong talk. Programming is not computer science.
    • However, you need to know to program ...
      1, to get your CS degree
      2, to do anything with your degree outside of academia

    • by Surt ( 22457 )

      Programming is just what 9/10 computer science degreed grads do for a living. Anyone considering a career in computer science wants to know what they'll actually do.

    • Programming is a huge part of Computer Science. It's not all of it, but most of the remaining parts of CS which aren't directly programming related are in support of programming.

      A computer is something that does exactly what it's told, and programming is the art of telling it what to do. Understanding how the chips inside work, and how the numbers are moved, stored, and processed is neat, but is secondary to the primary skill of being able to manipulate the user-side of the computer in any way you'd like.

      • Re:Programming? (Score:5, Insightful)

        by Missing.Matter ( 1845576 ) on Saturday October 22, 2011 @02:29PM (#37805586)

        Understanding how the chips inside work, and how the numbers are moved, stored, and processed is neat

        No that's not just "neat" it's the essence of computer science. Algorithms, information theory, theory of computation, computer architecture, AI, robotics, etc... all these aspects of computer science I can study and research without touching a programming language. I'd say programming is necessary most applied computer science, but CS is a very rich field without it.

  • ...they're looking to you to tell them what's in it for them
    What is it?
    Who does it?
    Why are you still doin' it?

    Computer Science catchall breaks down into:
    Math Whiz's - Computer Scientists who can write an Algorithm for that
    Programmers - wannabe ComSci guru's who can't
    SysAdmins - ComSci guys who don't care they just love all the new toys

  • I think it would be most helpful if you covered the entire field of computer science and the IT profession in general. As you said, a lot of kids have a distorted perception of what it may mean to be in the field, and it is important to flesh those things out a bit. Also, talk about your passion for what you do: perhaps the technical challenges you face, the joy of working with technology, etc. You could cover all these things in about 10 minutes, and open for another 10 for questions.
  • CS10 : The Beauty and Joy of Computing [berkeley.edu] (Give them the "big ideas" on one hand, and allow them to "peek under the hood" (do some visual programming with Scratch/BYOB/Snap) on the other. :)
    • "Visual Programming" is the opposite of Computer Science. Telling someone those tools are related to CS is like correctly hooking up your cable modem and declaring you are a networking genius.

      If you want to get some real, visually-integrated programming going on, I recommend something like C# or VB.NET. The code side of things is a lot easier than a non-managed language, and there is the visual element of "Drop this button where I want it on the form, and then double-click it to code what happens when someo

  • Twenty minutes to demonstrate binary sort by tearing apart (literally!) phone books to find a person listed there, is how CS50 opens its classes. Take a look at the opencourseware site cs50.tv. It's practical, it's interactive, and it really shows the computational aspects that we take for granted. Twenty minutes to demonstrate selection sort and merge sort might be a bit tight though.

    I think a discussion of the more "non-computer" parts of computer science would keep an audience more interested than a discussion about programming languages, which could easily lose people in the first five minutes.

    • That does sound like a good example for high school kids. I think the biggest problem I see with high school kids (my girlfriend teaches HS), is that the kids really have no understanding of basic privacy, and security, and how they can ruin their lives for a long time through digital technologies. Of course, if you're teaching this to a class of computer nerds, you probably don't need to cover these subjects. But just having a discussion on how computers do everything for us, and how the internet never

      • I should add that she also coaches college volleyball and the girls on her team can't even grasp how Facebook can cause problems not only for themselves, but the team and the university. And that is after many discussions on the topic!
    • If CS is the 'theory' (as in piano theory, not big-bang theory) behind programming, then the programming side of things would be what to show them. The high-level conceptual stuff is great for developing algorithms and solving theories(the big-bang type) if you have a lot of background and a firm grasp, but actually seeing something come to exist from a string of text is what really yanked me into the CS world big time.

      The first time I compiled an actual non-interpreted .EXE and was able to give it to a fri

  • That's not enough time to do anything technical. How about spending part of the time on ethical and political issues? Anonymity, piracy, privacy, that sort of thing? I have a two-hour spiel I use for first-year college students - with a good group, you can get some interesting discussions going...

    • But none of that is computer science. It's what Slashdot discusses, and what a good portion of computer science people care about, but one thing it isn't is computer science.

  • by Sduic ( 805226 )
    Decide what you want them to take away from the session:
    • What is Computer Science?
    • Why might someone want to pursue Computer Science?
    • What is a typical career in IT-related fields like?
    • What are your motivations and experiences?

    You could also describe a (typical?) high-level problem and work through the basic steps you would use to solve it.
    Keep it brief, as initial interest in the area is not a given.

  • Talking about games (something they're familiar with and interested in) gives you a springboard for:
    - Graphics (screen drawing, rendering, vector math)
    - Physics simulations (particle physics, gravity, collisions)
    - Interfaces (Kinect, controllers, touch)
    - AI
    - Databases
    - Networking

    Even thought they're interested in games because they're "cool" and "fun," you can use that interest to direct them to the deeper topics behind games. Games intersect with lots of hard, interesting CS topics.

  • by nlawalker ( 804108 ) on Saturday October 22, 2011 @11:29AM (#37804430)

    Do the Q&A.

    The most valuable thing you can give them is insight about your experience, not just as as someone in the technology field, but as someone who has had a long career in any field. They are high-school students - they go to football practice, go home and Facebook and play video games every night, they have no idea what it's like to find or to have a career. Ask the teacher to introduce you in a way that stresses that you have been in an important and growing industry for decades and you know what things are like out there, and to remind the students that they are all going to need to find jobs and really need to think about what they want to spend their future doing. Give a 3 or 4 minute introduction of yourself and what you do and then open it up for questions about anything the students are willing to ask, about technology or otherwise.

    This way, you at least give students who want to draw from your experience the opportunity to do so. Not to make any assumptions about your presentation skills or ability to put together an engaging demonstration, but anything you do (especially related to computers) will put most of the class to sleep. I watched Steve Wozniak lecture to a classroom of 200 college students and I think about three of them were even remotely interested in anything he had to say - a not-Steve-Wozniak in a high school classroom will be lucky to do that well unless the students realize they have an opportunity to learn how they are going to survive and enjoy a life without Mom and Dad in a few years and can capitalize on that opportunity.

    • by bgat ( 123664 )

      Do the Q&A.... Give a 3 or 4 minute introduction of yourself and what you do and then open it up for questions about anything the students are willing to ask, about technology or otherwise...

      Fail: Not until you help them understand the material enough to know what to ask. Your response amplifies your misunderstanding of the context of the OP's appearance, and your example with Woz confirms it.

      The OP is appearing because the students want him to tell them what THEY should be interested in. The only way they could ask productive questions on this would be if they knew the answers already--- in which case there would be no need for a presentation.

      • My bad then. I didn't get any of that context from "I got drawn (without my intention) into three 20 minute sessions, talking to high school students about computer science and programming," which is all he said about why he's there.

        The only other context I have to draw on is my own experience speaking on front of students, where what most of the students want is to not be sitting in class.

  • I'd explain to them the wide variety of things people tend to do with a CS degree. From continuing on to advanced degrees and entering academia to doing corporate R&D to the myriad of shades of programming. When I was that age I really had no concept of all the things "computer scientists" and/or "computer programmers" actually do.

    Most likely an in depth discussion of "game programming" won't be beneficial for most students.

  • "Software patents will prevent you from doing anything *really* cool anyway."
  • by bgat ( 123664 ) on Saturday October 22, 2011 @11:43AM (#37804546) Homepage

    I doubt a high-school student really cares about the "theoretical foundations of information and computation" [wikipedia.org]. As you suggest yourself, your audience is more interested in the things they can DO with computers--- which is more about Engineering than Computer Science.

    I suggest that you spend the first 5-10 minutes helping your audience see the fact that they are literally surrounded by computers, and that SOMEONE needs to learn how to program them. The real excitement in computing is found in embedded systems, not games or tablets. But unless you get people to see all these invisible computers, they have no idea that it's a viable and meaningful career choice.

    Then give them a demo of an Arduino, preferably one connected to the guts of an R/C car or the like. Something tangible. Of course, if you can't do this yourself then you have an obvious skills gap that needs to be addressed.

    After that, leave the rest of the presentation to your audience. You will not have any trouble filling the time allotted, I assure you.

  • by cjonslashdot ( 904508 ) on Saturday October 22, 2011 @11:44AM (#37804552)
    That "programming" is merely the current paradigm for computing; and that even the term "computing" might become obsolete in not too long. That computer science should be about tackling the hard problems and putting their solutions into practice, including how to create reliable and trustworthy (secure) systems, how to engineer and deploy systems quickly, how to design flexible systems, how to design usable systems. Hacking out programs is not "computer science" and should not be confused as such. It is merely "hacking".
    • And he'd be happy if one person would be inspired by that. As a CS student myself, "hacking out programs" (e.g., applied computer science) seems to be what most of the people here want to do, excepting the very theory-oriented ones who'll most likely continue up through a PhD. Assuming that all people are like that when the education is catering to both types is just plain wrong. Being a nerd, I certainly understood the difference between abstract and practical research and engineering by that age. What sho
      • Yes, very astute way of putting it.

        By way of example, I have written three computer related books. All three were published by reputable publishers (Prentice Hall, Addison-Wesley). The first two did really well. They were programming books ("Advanced Java Development For Enterprise Applications", and "Advanced Java 2 Development For Enterprise Applications"). The third book was called "High-Assurance Design: Architecting Secure and Reliable Enterprise Applications". It did extremely poorly. I found out that

  • Tell them that game design is LOTS of math for collision detection, gameplay physics, etc., and it's really, really hard. Explain how it's much easier and more rewarding to make database-backed CMSs for porn sites. :-)

  • Half the people they work for won't appreciate them, the other half will be sitting around thinking of ways to outsource them. You'll be pretty much done with your career by the time you're 45 and get replaced by people who speak English with difficulty on an H1-B visa.

    You'll also be scoffed at by younger contemporaries who will suggest that if you had kept your skills current, you'd still have a job. That while listening to employers gripe in the media about not be able to find qualified applicants.

  • by MpVpRb ( 1423381 ) on Saturday October 22, 2011 @11:50AM (#37804606)

    Simple guide..

    Computer science = an academic discipline that explores the theory and limits of computability. Hard to get a job unless you are really good, and at least a little lucky.

    Programming = somewhere between an artform and an engineering discipline, can turn into a deathmarch of long hours.

    IT = maintenance, troubleshooting, helpdesk, market research, vendor negotiation, corporate politics, high stress, even longer hours

    Yeah, they all involve computers, but in practice are totally different.

    • by kikito ( 971480 )

      That definition of "IT" is local. In other countries, IT encompasses all information technology; from the highest-level algorithmic design to the lowest-level "my printer doesn't work-fix it" job.

  • math (Score:4, Informative)

    by spottedkangaroo ( 451692 ) * on Saturday October 22, 2011 @11:57AM (#37804654) Homepage
    Tell them it's math. Everything else is programming, sysadmining, networking, or otherwise not computer science (which is math).
  • If they have an aptitude for math, they should look at "harder" sciences than CS, because there's not enough college students studying those right now, so there will be a shortage by the time they are employable. If they cannot do the math then they need to reevaluate why they are looking at CS in the first place.
  • Discuss different approaches to shuffling and re-ordering a deck of cards. If they can't get excited about that then they don't deserve to be programmers.
  • Tell them this:

    Information Technology is a lot like plumbing and electrical work, except you don't get too dirty, it's not dangerous, and it's non-union. You run pipes, hook them up to boxes, and get frantic calls to fix stuff that breaks. Lots of jobs, the pay is poor, and you get little respect. 2-year college plus specialized courses plus OJT.

    Computer science is about the theory behind how computers work. You need to be good at math for this, and actually like math. And you need to go to a good scho

  • Back in the day for my hardware class at the university, I brought in an old computer I had laying around and took it apart for the class, and passed around the individual components (RAM boards, hard drive, processors) so they could see what we were actually talking about. I didn't really care if it got fried in the process, but the last thing I did in class was put it all back together and power it up, and it still worked fine!

    20 minutes isn't a whole lot of time, but if they want to talk about Game Pro

  • First of all, they should learn how to drawl: Ya want fries wizzat? ...since that is most probably where they will end up working.
  • I would answer the kid that in today's world most of the jobs that require a CS degree either go to foreign work visas or are outsourced to Asia and the best bet to get a job is anything in medical!

  • Problem solving in the real world that is.

    Problem: how to predict the water flow over different shaped nuclear fuel rods
    Approach:

    • a) build many differently shaped fuel rods; measure water flow
    • b) use algorithms from Computational Fluid Dynamics to model/simulate

    Solution: which approach gives the easiest way to tweek a shape?

    Problem: Predicting weather
    Approach:

    • a) have multiple weather stations reporting data, manually predict based on previous experiences and limited algorithmic models
    • b) use
  • I would discuss what skills are required and beneficial. Also the duos learning experiences in the profession, such as basic political issues and best practices. A good place to point them to learn more is WiBit.net [wibit.net]
  • 1. The Bastard Bible: The Tome From Hell.
    2. The Compleat BOFH.
    3. Kama Sutra

    Pop quizzes every Friday. Tardiness punishable by 2 days in the comms cupboard. Unexcused absences punishable by cattle prod.

  • You'll get the "how do I hack?" "how do I make games?" questions no matter what. But if you do the talk about right, those will be flippant jokes rather than serious questions.

    Basically you need to open with your way of saying "everything you've seen on TV or in movies is wrong. There are no falling columns of Matrix code controlling everything, and there is no 'hacking' by flying through 3D cities or typing for 30 seconds. World of Warcraft took sixty million dollars and three years to build. Whoever fried

    • Other people in other lands that are more passionate and hungrier than you are going to eat your lunch. If you're not passionate, you're going to be out of a job or paid to be a fungible code monkey.
    • If you're not passionate already at this point, you probably won't be, or it'll be an uphill battle.
    • It's not glamorous. Unless you work with Windows exclusively, it's slogging through a lot of text. No flashing lights, no hauwght hacker chix in spandex.
    • Long hours, especially when something goes wrong, your b
  • Rather than ruining their dreams, you make this an opportunity to make them realize how important math and science is in CS. If you know a little graphics, you could start by describing how a 3-D model is represented and how it is converted to a 2-D image. If you want a realistic simulation of the world, then you need to compute the physics correctly, meaning trig, algebra, calculus, forces, etc.
  • Hacking. Porn. Drugs & alcohol howtos. How to bypass to censored websites. Being free from ones parents. These are the things a kid is interested in. These are the things you won't be talking about.

    However, they'll be plenty of kids interested in these thing. If they think you are just alluding to any of those things they will stay on in lunchhour, even if it's mixed in with more mundane stuff. But like a granny who gives the grandchild sweeties, be careful.

  • Well the first thing you need to clarify is this: If you aren't smart enough to research it and figure it out for yourself, to hit the door, you are in the wrong place.

    Second with that said, share a few pearls of wisdom with them. Not a lot, so that you don't bore them. Then you open it up for Q and A.

    One pearl you can share is that networking is most important, and I don't mean with computers, but people. People resource management is key to success in projects. You need a team of people to get stuff done.

  • by prefec2 ( 875483 ) on Sunday October 23, 2011 @04:56AM (#37808678)

    Looking at our students at university, most of them, especially the male students, have a total misconception of computer science (CS). Their motive is often: I play with computers all day and computers are cool. Therefor I study computers. But CS is not playing with computers it is not programming. These are only some minor parts of CS. The central element of CS is information, that's why it could also be described as Informatics. The interesting questions in CS are: "How do you get the information?", "Who tells me what to do with it?" and "How can I do that?". The first two questions are answered by the domain of application, which means some none CS person tells you what the do and what they want. And you as as computer scientists have to learn and understand their domain. So communication skills and people skills are as important than logic skills.

    In my life, I had to learn to communicate with South African business men, with German business men, with electrical engineers, and mathematicians working in the railway business as developers. They are all different, and you have to know a lot about social group behavior to understand what is going on when you talk to people. So being a total nerd only helps you through the classes at university, but it will not help you to be a good computer scientist.

    As CS is considered a male thing, the few women who study it, have given that decision more thought. And in average they are better in that field. This is very similar to the male performance in so called female fields. There men outperform women (on the average), as they given their decision more thought.

    And the most important thing to do: Invite real computer scientists, but do not invite the nerds. Nerds are nice people (mostly), but they do not represent the majority in CS especially above ground level (as they live below ;-).

To do two things at once is to do neither. -- Publilius Syrus

Working...