Slashdot Mirror


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

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?"

315 comments

  1. Tell them this by gatkinso · · Score: 1, Informative

    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 am very small, utmostly microscopic.
    1. Re:Tell them this by Anonymous Coward · · Score: 0

      I would tell them that it is the best way for somebody with work experience and no degree to land a decent-paying job. You're right about the fat part though. :(

      -- Ethanol-fueled

    2. Re:Tell them this by karnal · · Score: 1

      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.

      --
      Karnal
    3. Re:Tell them this by Anonymous Coward · · Score: 0

      I agree with both of those posts. I've done programming and network stuff. Coding for someone else isn't the same as "the good times you've had coding your own stuff for fun".

    4. Re:Tell them this by Arancaytar · · Score: 3, Insightful

      Work experience and no degree

      The headline said "computer science", which is an academic discipline and therefore all about degrees and not at all about work experience.

      However, it is true that many former programmers decide to acquire a degree in computer science, and many former computer scientists decide to start a career in programming rather than finishing (or after finishing) a degree. Both fields have their advantages and can be quite lucrative and rewarding, but mistaking them for each other is an error.

    5. Re:Tell them this by Groink · · Score: 5, Insightful

      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.

    6. Re:Tell them this by Anonymous Coward · · Score: 0

      it is hard to get past the "How do you program games?" point.

      Well then, send them off the deep end. Show them a simulation in a game that uses fluid dynamics (i.e. smoke)... then show them the math. Job security for the rest of us :D In case you find a real geek, tell them that if they find a smooth solution for this that they win $1 million.

    7. Re:Tell them this by starfishsystems · · Score: 4, Interesting

      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.

      --
      Parity: What to do when the weekend comes.
    8. Re:Tell them this by next_ghost · · Score: 2

      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 with real hacking. Compiling kernel is not very interesting to teenagers (except for ubergeeks who need no more convincing). But when they see some tedious task which would take them hours to solve and they sometimes run into it themselves solved in seconds, now THAT is cool. Show them for example how to download a webcomic using simple script or some other mass data manipulation they ask about themselves.

    9. Re:Tell them this by sneakyimp · · Score: 4, Insightful

      Telling them that programmers make good money is definitely a way to generate interest. Computer Software Engineers 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.

    10. Re:Tell them this by Anonymous Coward · · Score: 0

      This idea is probably aimed at a younger audience, but here goes. A buddy (also a fellow computer scientist) tells kids that computer science is a lot like playing with legos. You create complex structures for an intended purpose, and get to have fun in the process. The only difference is you get to create the individual lego blocks :D

    11. Re:Tell them this by ynot_reprise · · Score: 2

      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 that computer science is not an elusive club. That their story does not have to include TRS-80's and main-frames and being geekier than the next. Given the time allowed and audience I'd speak on higher levels. Such as computer science is really fascinating because it is constantly evolving, as such you are constantly personally evolving. New challenges keep things fresh and create a wonderful sense of satisfaction. Tell them about what makes you successful in computer science, and be passionate and positive. I trust that if you do this both you and the students will wish you had 20 more :)

    12. Re:Tell them this by sneakyimp · · Score: 1

      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 kill any hint of enthusiasm.

    13. Re:Tell them this by MacGyver2210 · · Score: 1

      Programming is a subset of Computer Science. In fact, most "computer scientists" are programmers.

      On that note, I have been programming for over 15 years though I have only had my CS degree for about one.

      --
      If the only way you can accept an assertion is by faith, then you are conceding that it can't be taken on its own merits
    14. Re:Tell them this by Anonymous Coward · · Score: 0

      Programming is a subset of Computer Science. In fact, most "computer scientists" are programmers.

      I wouldn't say it's a subset so much as "applied" computer science.

      CS covers theory of computation and the properties of algorithms. Programming is how you test and implement theory. Building computers is too, but that's really an engineering discipline.

      In a nutshell, if you can't program you won't be able to do compute science, and if you program, CS enables you to know what you're doing!

    15. Re:Tell them this by Anonymous Coward · · Score: 0

      Also, programmer != software engineer

      Definitely important to actually like it though, couldn't imagine being a software engineer if you didn't enjoy it - that would be torture, LOL...

    16. Re:Tell them this by Kjella · · Score: 2

      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?

      --
      Live today, because you never know what tomorrow brings
    17. Re:Tell them this by Missing.Matter · · Score: 1

      Also that programmer != computer scientist

    18. Re:Tell them this by Anonymous Coward · · Score: 0

      No form of "scientist" is "all about degrees". There may be attitudes that try to push that point of view, but plenty of important scientists have either been self-taught or working outside their discipline. Academic != Scientist.

    19. Re:Tell them this by ldobehardcore · · Score: 1

      I would put it this way:

      CS is to Programming
      as
      Physics is to Engineering

      --
      Hectice, baby, Mercator says hello to you
    20. Re:Tell them this by pxc · · Score: 1

      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, but I know that sometimes what it takes to get someone to realize what computer science really is a full computer science course. When I was in high school, I took a total of 5 computer science courses, three of which were for college credit. Although I definitely had ‘making video games’ in mind when I signed up for my first computer science course, but it wasn't long until I learned that what made programming fun for me wasn't the type of product I was building. By my second computer science course (the first with any real coding), I grew out of my ‘dream’ of being a video game programmer because I so enjoyed the problem-solving and algorithmic design aspects of ‘boring’ projects like text parsing, implementing data structures, storage formats (cheesy little text-based ‘databases’).

      I doubt whether they can get it from a 20-minute talk, but I know that high-schoolers can certainly learn what computer science is really about, and also that the fundamentals of computer science and programming are more satisfying subjects in themselves than any video game.

    21. Re:Tell them this by pipingguy · · Score: 1

      You sound like what used to be called a draftsman.

    22. Re:Tell them this by pipingguy · · Score: 1

      Computer Software Engineers make about twice the average salary in the United States...

      Piping designers in Calgary earn up to $120/hour (not me, mind you), with the average probably being around half that for 10 years' experience.

      Paul
      calgary.spedweb.com

    23. Re:Tell them this by Chuck+Messenger · · Score: 1

      You say "... many former computer scientists decide to start a career in programming rather than finishing (or after finishing) a degree."

      Are you saying that "computer science" is limited to academia? If so, are you saying science in general is limited to academia? Surely not. Then, are you saying that computer science isn't really a science? That seems reasonable - in that science is all about probing the truths of nature via experimentation (i.e. the scientific method).

    24. Re:Tell them this by Nivag064 · · Score: 2

      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 your comfort zone when moving into new phases. Every time I get into multi threading, there are new requirements to implement - and there have been at least 3 major changes/improvements in thread handling provided by the Java libraries.

      In software development, you have to keep running just to stay in the same place.

      Scary, I once met a 25 year old who thought he was too old to learn programming. In the last 5 years, I've programmed in 3 new languages: Python, Groovey, and Octave (since I completed my DippAppSci).

      In this business you gotta keep learning!

    25. Re:Tell them this by starfishsystems · · Score: 0

      Like.

      --
      Parity: What to do when the weekend comes.
    26. Re:Tell them this by Anonymous Coward · · Score: 0

      And anytime I do try and generate interest in actual programming, it is hard to get past the "How do you program games?" point.

      Simple. You do what my teacher did and use Game Maker lite.

      Granted, it won't teach you anything about computer science, and half the kids in the class won't be able to use it a home, and you won't be able to use basic data structures or do things that would be one-liners in SDL, but I'd say it's definitely the Right Thing to do.

      Oh, and have you tried VB6 lately? All the cool kids are (still) using it.

    27. Re:Tell them this by AlXtreme · · Score: 1

      But when they see some tedious task which would take them hours to solve and they sometimes run into it themselves solved in seconds, now THAT is cool

      Talking about tedious tasks, show them how they can automate their homework. Now that WILL get their attention... and probably you'll never be invited again.

      --
      This sig is intentionally left blank
    28. Re:Tell them this by datavirtue · · Score: 1

      I hit the gym at 5:30 to 6:00 AM. Otherwise I feel like shit the rest of the day. After work isn't an affective time to work out. It requires energy and your metabolism is already clocked in for the day. Also, don't eat anything but fruit/raw vegetables all day--you never get tired. The first week or two is rough but after a while you can go the whole day without eating and not feel bad at all (depending on your metabolism) if you need to. If you have "irresistible" cravings it is because your gut has old food lodged in it--you REALLY should abstain at that point. Yogurt (Greek) is a good protein with your fruit too. On my days off I eat like a freakin pig.

      --
      I object to power without constructive purpose. --Spock
    29. Re:Tell them this by geezer+nerd · · Score: 2

      That's the secret to a long career! You always have to keep learning and doing. I am retired now, turned 69 a couple of weeks ago. I took on my last job in 2004, when I was 61. Most of my co-workers at that company were in their 20s and 30s. In that job I was constantly learning new technological things, largely by talking to co-workers and by buying and reading lots of books, and by reading lots of code. Learned PERL and VXML and XSLT. I had learned Java in my previous job (from age 58), and designed and implemented a plug-in for Eclipse. Since retiring in 2006, I have dabbled a bit still with Eclipse, and helped some local activists build a website. Learned and used PHP (why do /.'ers badmouth PHP so?) to do it.

      If you love doing it, keep stoking the fires and shovel in all the learning you can. You do not have to be over the hill at 40.

      As for what to tell young people about CS: I found that all the things I knew about CS (self-taught) were enriching to my thought processes, and discrete mathematics often gave ideas for programming solutions.

      The one consistent answer I have always given to any student who asked me "what should I study?" is "Learn to write clearly". After all, your legacy will be the writings you leave behind.

      I believe I have shared before on /. my story about battling a production system that automatically restarted itself every midnight and had an O(n^2) process embedded in the startup sequence (no, I did not put it there) which worked against an ever-increasing set of data. Eventually the startup time was clearly headed to become 24 hours+. CS knowledge certainly helped solve that one, though it took several all-nighters to do.

    30. Re:Tell them this by Anonymous Coward · · Score: 0

      You are a douche! Of course it is an elusive club you fucking tard! Jesus H fucking Christ! What are you trying to do to us? the real geeks will be recessed into a black hole of society in future years working with embedded systems and creating things. TRS-80? GOD DAMNIT I JUST WANT TO FUCKING BASH IN YOUR STUPID SKULL!!!! What a bunch of happy horse shit. I can't even collect my thoughts right now.

    31. Re:Tell them this by datavirtue · · Score: 1

      You cannot curtail those who are interested. If they are not interested I do not want them working on, near, or around me on anything that would require competence.

      --
      I object to power without constructive purpose. --Spock
    32. Re:Tell them this by datavirtue · · Score: 1

      Money is an extrinsic reward and is sure to kill their interest in short order.

      --
      I object to power without constructive purpose. --Spock
    33. Re:Tell them this by drunkennewfiemidget · · Score: 1

      More importantly, if they're passionate about it, great.

      If they just figure, "meh, I'll do it because there's nothing else, and I use facebook all day", please don't bother. The programmers who care already spend enough time unbreaking the shit you wrote.

    34. Re:Tell them this by Anonymous Coward · · Score: 0

      For more complete truth in advertising, show them this clip: http://www.youtube.com/watch?v=lL4wg6ZAFIM

      Its engineering, not science. But then nowadays, most "science" is pseudoscience, not limited anymore to the nutitional nutters, but the pseudo-scientists have taken over the journals. Oh help...

      http://www.youtube.com/watch?v=VPunpjeFaiQ (Feynman again)

    35. Re:Tell them this by xero314 · · Score: 1

      There is a distinction many programers don't understand and falsely call themselves software engineers. I'm not saying you need to have a certification to be an engineer, but that the art of Engineering is far different from the art of Programing. Engineers might program from time to time, but programing is not engineering. It's like calling an Electrician an Electrical Engineer. Both technicians (electricians, programers, etc) and Engineers are important to a high quality product of any large scale, but they are not the same.

    36. Re:Tell them this by germansausage · · Score: 1

      Software Engineer is a (very) small subset of Programmer. Can you guarantee your code is bug free? Can people trust their lives to it working correctly? Or, at the very least, can you guarantee that if your code fails, the system will always go to a more safe state rather than a less safe state? If so, you might be a software engineer. If not, you probably aren't.

    37. Re:Tell them this by Anonymous Coward · · Score: 0

      I got hooked on calculators. Then I got my first (yay 8 bit!) Timex Sinclair 1000. I read the whole manual 30 times, and wrote 1000 programs, usually most not more than 100 lines. Then the VIC20, then the Amiga1000. Then I studied Electronics for 2 years. Then I went to university and studied CS for 4 more. Damn TS1000! I've mostly been on Linux since 1995, and been running custom kernels for most of that time. Algorithms, networks, operating systems, databases, Geographical Information systems integrated with live GPS tracking, digital radio networks, cryptography, artificial intelligence. To do it, you first need to get hooked on your first Timex Sinclair 1000. Damn TS1000!

    38. Re:Tell them this by Reservoir+Penguin · · Score: 3, Insightful

      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.

      --
      US-UK-Israel: The real Axis of Evil
    39. Re:Tell them this by Anonymous Coward · · Score: 0

      Exactly! When you're younger, you don't necessarily want to know what you want to do for the rest of your life. You could go on to a great career somewhere within the entire computing industry... It would be an awesome project to look back on to say that you programmed a crappy little javascript game back in the day... just have fun!

    40. Re:Tell them this by Gripp · · Score: 1

      I thought the fluid dynamics problem was solved a couple of years ago. Some Russian who turned down the money or something along those lines...

    41. Re:Tell them this by Anonymous Coward · · Score: 0

      Telling them that programmers make good money is definitely a way to generate interest. Computer Software Engineers 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.

      it != cs

    42. Re:Tell them this by lsatenstein · · Score: 1

      CS is a wonderful career. I am in it for 50 years, and I would do it again. One advice for those choosing to enter the career, that is to be prepared to never stop learning. What you know two years ago is history, and the industry never stops moving forward.

      Good luck to the next generation. It is a wonderful profession and trade.

      --
      Leslie Satenstein Montreal Quebec Canada
    43. Re:Tell them this by Anonymous Coward · · Score: 0

      As a teacher I say get them to participate some how.

    44. Re:Tell them this by starfishsystems · · Score: 1

      And of course, being science, it's based in truth, not fashion. When technology is rapidly changing, it helps a lot to be able to see past the technology and into what is actually going on. You're correct to say that what you know as a technologist has become history in two years. What you know as a scientist has far more enduring value. If nothing else, that makes it easy to see past the hype and know which new technology has real potential and which is ultimately doomed.

      The other learning aspect of this young field is that we get exposure and practice in all of it, or at least, as much as we're willing to take on. Other fields such as medicine are rigidly specialized. In the academic discipline of computer science, of course there are areas of specialization such as numerical computation and distributed systems. In the industry, it's more typical to bring a broad synthesis of these to the job, but for the application of that knowledge to take many different forms.

      Best of all, you're not just analyzing data. You get to build stuff! And, if you do your work well, you can go back after twenty years and see that what you've contributed is still vitally alive in the DNA of that organization. An idea rooted in science transcends its implementation. I've seen it many times. I'm sure you have too.

      --
      Parity: What to do when the weekend comes.
    45. Re:Tell them this by musicalmicah · · Score: 1

      This is sort of how I learned. I was 8 years old when somebody showed me qBasic on the family's 386. It changed my world. My first three years of programming were animated ASCII stick figures, simple story games ("You see a spaceship. Do you want to use missiles or lasers?"), and very basic graphics (like string art using line functions). I had a tacit sense of many programming concepts before I was able to define them.

      When I got to traditional computer science courses in college, I realized that they're typically taught the other way around: here's a definition, THEN here are some examples and related puzzles. That's a great format for an academic paper, but it's not exactly "joy of learning" material.

    46. Re:Tell them this by starfishsystems · · Score: 1
      I'm sorry but you are doing it wrong.

      To clarify, you disagree with my opinion because yours differs from it. That's perfectly fine. However, that does not make it wrong. Moreover, nobody is doing anything. We're talking about what we might do. Your analysis seems flawed on several other points as well:
      • Indeed there are many approaches to taching younger kids. However, we're not talking about younger kids but high school students. Do you have any teaching experience with either age group? If so, you're welcome to share it.
      • Indeed it may not be necessary to start with formal number theory. Nobody remotely suggested that it was (though, come to think of it, that is where computer science historically had its beginnings.) What I said was that I personally would like to approach it in this way, implying that I believe such an approach ought to be sufficient. It would also provide a realistic look into what computer science is like as a discipline. If you're not a computer scientist yourself, you may not understand the distinction.
      • You learned English informally. Fine. I learned French and Swedish formally, and German informally. In other words, a personal experience on your part does not invalidate the experiences that others may have.
      • Indeed there's nothing impure about learning Python. What a bizarre premise! I don't see anyone claiming that. But Python is not an introduction to computer science, any more than driving a car is an introduction to engine design.
      --
      Parity: What to do when the weekend comes.
    47. Re:Tell them this by Anonymous Coward · · Score: 0

      Wow. If they're asking "how to hack" they've already failed.

      True hackers are innately curious and are motivated to understand how something works, obstacles be damned.

      The hacker mindset is not limited to computing or compromising security. In fact, if these are the only subjects that one thinks "hacking" applies to, then one does not have or does not understand the hacker mindset.

      The fact that you're showing them "how to hack" suggests you've forgotten this about hackers, or you've never truly understood it yourself.

    48. Re:Tell them this by quadelirus · · Score: 1

      Dijkstra said something about computer science being as much about computers as astronomy is about telescopes. Programming is a necessary skill for doing computer science (although, that may be somewhat debatable in some areas of computer science, like many areas of theory), but it is not a subset of computer science. Just as operating a telescope is not a subset of astronomy.

    49. Re:Tell them this by quadelirus · · Score: 1

      "science is all about probing the truths of nature via experimentation" That is the narrow more recent definition of science. The broad definition has only to do with reliable and reasoned study of an area, which is why mathematics, computer science, library science, political science, etc. are all called sciences. The scientific method based definition is only one type of science.

    50. Re:Tell them this by ynot_reprise · · Score: 1

      Please excuse me for not being a completely jaded, tormented sad sack, piece of shit like yourself.

  2. Society and CS by hrdo · · Score: 5, Interesting

    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!

    1. Re:Society and CS by Anonymous Coward · · Score: 2, Interesting

      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.

    2. Re:Society and CS by shalla · · Score: 1

      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

    3. Re:Society and CS by MacGyver2210 · · Score: 4, Informative

      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)

      --
      If the only way you can accept an assertion is by faith, then you are conceding that it can't be taken on its own merits
  3. Show them cool things by betterunixthanunix · · Score: 1

    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.

    --
    Palm trees and 8
    1. Re:Show them cool things by Anonymous Coward · · Score: 0

      Show them a program that can play Texas Hold'em. Tell them about crypto and the cool things that are happening with that

      And bore them to death.

      (disclaimer: I am a grad student whose research is in crypto).

      how sad for you.

    2. Re:Show them cool things by plover · · Score: 1

      You're wrong about the topics that a random stranger should share with a bunch of kids, but you are on the right track.

      The real trick is to talk to them about whatever personally excites you. If it's design, talk about design patterns. If you're into security, talk about stuxnet, or botnets, or honeypots, or about hacking into a client site. If you're a network engineer, tell them about a complex data center you helped build and keep running. If you're a coder, talk to them about clean code, or software quality, or performance, or unit testing, or whatever floats your boat.

      It also helps if you can let them in on a "secret" tip for success: "Here's a secret for you guys: one thing I wish I'd learned earlier was X (or the most helpful class I took was X). When you guys get to college, be sure to keep an eye out for a good class on X, and learn it right away if you can, because it'll help you with your homework." This kind of approach resonates with kids who are unsure of what they'll be taking in school.

      In twenty minutes there isn't enough time to get into more than one example, but try telling them about a daunting problem you faced, the dire consequences of failure, the dedication you demonstrated in solving the issue, and the exciting solution you came up with. Maybe tell them about how your understanding of many different fields all came together to help you save the day. Maybe it was teamwork, and how cool it was to be working with a whole group of geniuses, and how you held your own right in the middle of them. Again, find the part that excited you, and share it

      Finally, remind them that computers change faster than anything else in the world. Tomorrow's computers might not even be programmed by today's languages. If they want to be successful, they have to keep learning their whole lives. They have to learn how to keep learning.

      If you show them your honest passion, some of them will respond. You may get some who take a little nap. Completely ignore them. You may get some who want to ask deeper and deeper questions. Unfortunately with only 20 minutes you have to be kind of ruthless in shutting them down, but do it gently, and let them know how they can contact you later for some followup.

      Good luck and have fun!

      --
      John
  4. Don't go for gaming. by LinuxIsGarbage · · Score: 4, Informative

    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.

    1. Re:Don't go for gaming. by maxwell+demon · · Score: 1

      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.

      Some people are trying to break things for fun.

      --
      The Tao of math: The numbers you can count are not the real numbers.
    2. Re:Don't go for gaming. by Hentes · · Score: 1

      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.

    3. Re:Don't go for gaming. by Surt · · Score: 4, Informative

      Unfortunately, he's not even right about testing trying to break the game. Mostly testing is following script after script to try to exercise every path through the game. It is truly mind numbing tedious work with an enormous turn over. Burnout average is less than a year (at the 3 large, well-known companies I know for sure).

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    4. Re:Don't go for gaming. by Anonymous Coward · · Score: 1

      I wouldn't tell them this. Stick to the positives, not the negatives. It would be detrimental to the presentation's quality which is HUGE when dealing with teenagers. Possibly worse than executive level expectations/attention levels.

    5. Re:Don't go for gaming. by Anonymous Coward · · Score: 1

      You know, that's true some places, but I've been in the game industry for 11 years and I work an average of maybe 45 hours a week and am quite well paid. I love my job and would never even consider any other type of work again. I'll grant you, when I spent a year doing banking software I made myself fairly rich, but I hated every second of it and I spent all my nights writing games anyway. Some people really, truly are made to make games, so don't call it the worst possible career path. Just call it not all fun and games.

    6. Re:Don't go for gaming. by MacGyver2210 · · Score: 1

      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 typically not that fun because it doesn't pay well, and the studios seem to treat the testers with the same urgency and challenge as the programmers who will make probably twice as much. If you don't have a degree, and you don't mind playing the same level of Mario Kart 400 times in a row, you might make a fantastic tester.

      --
      If the only way you can accept an assertion is by faith, then you are conceding that it can't be taken on its own merits
    7. Re:Don't go for gaming. by pjt33 · · Score: 1

      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.

    8. Re:Don't go for gaming. by kikito · · Score: 1

      Wouldn't it be more efficient to have the machine do those scripted tests instead of a human?

      That's what they are for.

    9. Re:Don't go for gaming. by Anonymous Coward · · Score: 0

      I've been a professional game programmer for coming on 5 years now, at two different companies. Sometimes you have to crunch, but often you don't. I've loved 80% of what I worked on, and when I didn't like it anymore, I moved on to a different company. We're also not paid poorly, we're just paid less than we would be doing a similar complexity job outside of the game industry.

    10. Re:Don't go for gaming. by The+Archon+V2.0 · · Score: 4, Insightful

      Wouldn't it be more efficient to have the machine do those scripted tests instead of a human?

      Building a robot to open and close a DVD tray for 16 hours a day that signals when the tray fails costs a good bit of money, requires maintenance, and will ultimately be made redundant and never used again.

      Building a program that plays a game nonstop for 14 hours because a bug only manifests in hour 15 would be a coding challenge more complex than the game itself.

      Meanwhile, there's thousands of people who will work minimum wage and do the same thing in the vain hope that this is the way to become a developer. And when they break or obsolete, you just get rid of them and replace them with a new human, no extra costs.

    11. Re:Don't go for gaming. by The+Archon+V2.0 · · Score: 1

      Some people are trying to break things for fun.

      Not if they're beta testing for pay they don't.

      Trying to break things for fun in a game is like a kid with a hammer and a pane of glass. Trying to break things for pay is like a kid with a hammer and a pane of glass, except the glass is behind an impenetrable fence and instead they have to use the hammer to hammer and then extract a nail from a board 500 times, stopping to write down how bent the nail is each time.

    12. Re:Don't go for gaming. by Surt · · Score: 1

      If you could build a machine that would recognize when a graphics artifact occurs, sure. I think this is absolutely something that will be done by computer in 50 or 100 years.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    13. Re:Don't go for gaming. by Belial6 · · Score: 1

      Planning to be a successful games developer is a little like planning to be a successful NBA player.

    14. Re:Don't go for gaming. by xero314 · · Score: 1

      The problem with automated testing is that you need to test the automation. For long lived applications that go through minor changes the automated approach is very good for regression testing. For short lived applications, such as games, it's almost futile as it would take as much effort to develop the tests as it would be to program the application it self, and most likely the tests would be prone to at least as many bugs as the final program.

      Automated testing also only works well on fully predictable systems. Once a system has any form of randomness or intelligence then automated scripting because nearly impossible and absolutely unreasonable. While a it's easy to have a human cary out the script "open door, shoot and kill all enemies in run, loot room" It's much harder to get an automated system to do that, since the enemies, in modern games, don't follow scripts but act according to the situation.

      As much as automated testing seems like the cure to all ills in software, it's just a fact that systems designed for humans require humans to test them.

    15. Re:Don't go for gaming. by musicalmicah · · Score: 1

      I had a friend that was a professional game tester, and he hated it. This article pretty much sums it up.

  5. don't take this approach by Anonymous Coward · · Score: 0

    Connect your laptop to a slide projector, log onto dilbert.com, and then spend 40 minutes walking through as many cartoons as you can.

    Why not? Because we'll tell the kids that by the time they graduate, the industry will have gotten much better. And if it hasn't, we'll prepare a software service pack to fix all of the major problems.

  6. Tell them the truth... by NFN_NLN · · Score: 4, Insightful

    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.

    1. Re:Tell them the truth... by Bost · · Score: 2

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

      You're not from Greece, right?

    2. Re:Tell them the truth... by Surt · · Score: 1

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

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    3. Re:Tell them the truth... by NFN_NLN · · Score: 1

      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 released yesterday."
      http://www.thestar.com/news/canada/article/642330

    4. Re:Tell them the truth... by Anonymous Coward · · Score: 0

      Well cheer up, that's just Canadian dollars. Wait, is the US dollar still worth more?

    5. Re:Tell them the truth... by Anonymous Coward · · Score: 0

      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.

      Just like any other job. There's 7 billion people in a global economy, high stress and high workload is a fact of modern life. Long term options for aging? Why would anybody still be holding onto that fantasy. Once the boomers are through there will be nothing left of old age security, and with market volatility as it is there's a good chance many will lose their savings too.

      You think a job in high finance is low stress and low workload? Do you KNOW anybody who works in finance? The people I know have hot mugs of coffee thrown at them if they screw up. I can do without that, and without the juvenile tantrums of the type A every-man-for-himself pricks who work there.

    6. Re:Tell them the truth... by Anonymous Coward · · Score: 0

      Well, if you want to kill off the middle class's pensions, what better way than to order their pension program to fail? Then provide million dollar bonuses to your lackeys, and turn public opinion against the organization as a whole.

    7. Re:Tell them the truth... by Dunbal · · Score: 1

      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.

      --
      Seven puppies were harmed during the making of this post.
    8. Re:Tell them the truth... by Dunbal · · Score: 1

      Today's exchange rate: 0.9908 US dollars for 1 CDN dollar. But crude oil is currently headed up (which is good for CDN and bad for USD). As a Canadian I can say that I never expected the Canadian dollar to be a "petrodollar" but hey, why not. Makes up for putting up with years of "har har har Canadian dollar is monopoly money" from Americans... don't worry we'll still sell you our oil.

      --
      Seven puppies were harmed during the making of this post.
    9. Re:Tell them the truth... by Anonymous Coward · · Score: 0

      Sounds like somebody has a case of the Mondays!

    10. Re:Tell them the truth... by mikael · · Score: 1

      Who says the pension fund program is failing?

      The portfolio managers shift the poor performing shares and funds onto the pension funds, and keep the high performing funds for their company and themselves.

      Bingo! The pension funds make a loss, and the fund managers get their bonuses.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    11. Re:Tell them the truth... by epine · · Score: 2

      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.

    12. Re:Tell them the truth... by Anonymous Coward · · Score: 0

      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.

      and overseas. Unless you're programming US missiles, all the programming jobs are overseas. Only thing left here is sys admin.

      Steer them towards medical. We're all getting older, we need as many nurses and doctors as we can get and it will be a cold day in hell before a robot can run in and save a life the way a nurse or doctor can and you can't outsource a nurse from India.

    13. Re:Tell them the truth... by bryan1945 · · Score: 1

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

      --
      Vote monkeys into Congress. They are cheaper and more trustworthy.
    14. Re:Tell them the truth... by Anonymous Coward · · Score: 0

      I think the high stress / high workload part is dependent on the person (as it is in any field). People need to set their own boundaries, your boss only has as much power as you allow them. Developers who follow good programming practices, keep up to date with current technologies and design methodologies, and have a commitment to their companies can push back on their boss' unreasonable demands with ease. I do it every day. If your boss is reasonable they will understand, and if they aren't then they won't last long if their good employees start to leave the company.

    15. Re:Tell them the truth... by Anonymous Coward · · Score: 0

      Warn them too that a career in computer science seems to make the graduates not value anyone else's work. So they pirate software and music and decide to pay what they think is the right amount.

    16. Re:Tell them the truth... by Anonymous Coward · · Score: 0

      Maybe tell them about the opportunities to travel.

      Tell them that there are jobs out there (I'm a freelance web developer) where you can earn just enough to live on anywhere in the world!

      I wouldn't say there is a huge future for my career at present but I'm making ends meet and I live in the French Alps and get to ski, mountain bike, paraglide whenever I want (almost, I average a 30hr week which I can plan around the weather).

      This sort of possibility, to a teenager, might be enough to persuade them that CS CAN be 'cool'.

      Some explanation of my circumstances might help persuade them (or not?):

      Age now: 36
      Age when I started in the industry: 23ish
      Age when I moved to the mountains to ski: 24ish
      Age when I was earning enough to live on (JUST by web dev work): 31ish (before that I was doing labouring/construction work to make ends meet)
      My income: Living on the bread-line, if I want to save I have to stay in-doors and not drink.
      Security: I'm a European citizen so my health benefits are reasonably good even without going private.
      Future: If I want a pension I have to stop drinking (see above) but if I don't stop drinking I won't need a pension ;-)

      My motto: Choose lifestyle over money.
      My mental age: 18ish ;-)

    17. Re:Tell them the truth... by Anonymous Coward · · Score: 1

      then realize that memorization and running tests can be done by a computer.

    18. Re:Tell them the truth... by Dunbal · · Score: 1

      Yeah, I used to think like that. Then I found out that medicine has not much to do with memorization (that's what cheat sheets, palm pilots and now smart-phones are for once you graduate) and everything to do with observation, emotional intelligence/social skills, problem solving and common sense. It really has nothing to do with what you see on medical shows, you know, where they try to brute force a diagnosis with endless tests, or run through lists of differential diagnoses for a whole hour. Medicine is not as algorithmic as non-medical people think it is.

      --
      Seven puppies were harmed during the making of this post.
    19. Re:Tell them the truth... by Anonymous Coward · · Score: 0

      Yeah, tell them about everything except the things they need to know.

    20. Re:Tell them the truth... by Solandri · · Score: 1

      If world reaction to the death of Steve Jobs vs. Dennis Ritchie is any indication, tell them to go into marketing. I've come to realize that most people never learn who designed the modern toys they use, but they come to idolize the guy who sold it to them. The only reason people remember Edison is because he was as good a marketer as he was an engineer/scientist.

    21. Re:Tell them the truth... by bzipitidoo · · Score: 1

      This advice is 15 years too late. Wall Street is so yesterday. They're struggling not to implode under all the fraud that still hasn't been cleaned up. The pendulum is swinging against them. You always want to be ahead of the next game, whatever that is, and I'd say it's not Wall Street. Wall Street won't be a good playground again until the toxic waste is cleaned up and polluters are actually held accountable and made to really hurt.

      --
      Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
    22. Re:Tell them the truth... by Anonymous Coward · · Score: 0

      Well, you can always set up a special visa program to bring the nurses here, I mean, they have done it for teachers, why not nurses?

      Any time wealthy silicon valley types donate to a campaign, er.. I mean any time a candidate sees a need we can start talking about importing some cheap(er) labor.

    23. Re:Tell them the truth... by RzUpAnmsCwrds · · Score: 1

      I'm a new software engineer for Google. My job is low-stress, my workload is reasonable, and there are many different options for the advancement of my career, regardless of whether I want to write code on a day-to-day basis long term. The pay and benefits are also good, and I get to travel quite a bit.

      One of my friends is also a new software engineer, but he started out at a small company that made medical software for smartphones and the web. He decided that he didn't like the company, and now he's at another startup working on software to help consumers monitor and reduce their energy consumption.

      I have another friend at Microsoft, and one at Amazon. They are also paid well, enjoy their jobs, and feel that they have many, many options.

      Maybe my peer group is not representative of the software world as a whole. I am well aware that there are crappy software companies out there, but the reality is that you are still much better off going into CS from a versatility and marketability standpoint than most other degrees. Nearly every product or service involves software, and someone has to write it.

  7. Quote the Good Book by Sponge+Bath · · Score: 3, Informative

    Read them some Dilbert cartoons.

    1. Re:Quote the Good Book by Anonymous Coward · · Score: 0

      yes, yes, yes! Warning, warning, Will Robinson!

  8. Teach them about the need for constant learning by Anonymous Coward · · Score: 1

    but my contemporary programming skills are somewhat limited to Coldfusion, PHP, Javascript, SQL and bash scripts

    I'd suggest you use yourself as an example to demonstrate that if you don't keep learning, you'll end up an obsolete toolbag who gets stuck talking to schoolkids. ;)

  9. Difference between the subfields by Anonymous Coward · · Score: 1

    It would be an excellent opportunity to explain to them the differences between Computing Science, Software Engineering and Information Technology before they start applying to colleges.

  10. Tell them the truth by Anonymous Coward · · Score: 1
    You'll be constantly "upgrading" your skills, that is "learning" how to do the same things as before but with a new language, on your time and your dime, while your employers make all the money. There will never be a sense of finality, or that something works and is good enough. A constant race of new languages, new ideas, new this, new that, and yet nothing really changes. All the while the real progress on the hardware side allows the fiesta of virtual OSes, abstraction layers, millions of languages and you'll still never understand how any of it really works.

    And then you'll blame the hardware when something's too slow.

    1. Re:Tell them the truth by Sperbels · · Score: 2

      And then you'll blame the hardware when something's too slow

      Or the guy who quit last week.

  11. CS needs scientific method by Anonymous Coward · · Score: 0

    Troubleshooting, problem solving, algorithms, and the target platform. If you don't know what you are going to run the software you create on, how can you make judgements on the best way to design the software? Best practices, know your OS.

  12. FlowCharts can be very useful by SpectateSwamp · · Score: 1

    Talk to them about flowcharting:

    http://www.telusplanet.net/public/stonedan/pict01.jpg
    http://www.telusplanet.net/public/stonedan/pict02.jpg

    When you have a nasty task, a simple flowchart can be a big help.

    The above 2 charts are the flowchart for hi-liting TEXT search results.

    http://www.telusplanet.net/public/stonedan/source.txt Follow the logic in the source code

    Once I threw out a program I was struggling with and did a flowchart that evening. The next day the program ran first try. That doesn't happen often. By the time I decided to throw it out and start again, I knew the problem inside out.

    --
    Challenge: I have better access to my Video, Music, Pics and Text than anyone on Earth.
    1. Re:FlowCharts can be very useful by mdf356 · · Score: 1

      In 10 years of professional experience writing system software, I've never drawn a flowchart. In the 7 years of college and grad scholl prior, I didn't either. Code with comments can be very clear. Well-designed and documented data structures, with simple methods for manipulating them, are how I get my job done most days. I'm not saying that they aren't useful for you, just that they're not a panacea and they may not click for other people.

      To the OP, there's such a wide variety of possibilities in both programming, software engineering, and computer science that you can talk about just about any subset for hours. The most useful thing, probably, for high-schoolers is (1) some overview of the different options, and (2) a few suggestions on what they could do today to try them out, to see if they're enjoyable.

      --
      Terrorist, bomb, al Qaeda, nuclear, yellowcake, kill, assassinate. Carnivore is dead... long live Echelon.
    2. Re:FlowCharts can be very useful by Dunbal · · Score: 1

      The more time you spend on a flowchart the less connected it becomes to reality.

      --
      Seven puppies were harmed during the making of this post.
    3. Re:FlowCharts can be very useful by mikael · · Score: 1

      A function call tree seems to be the most practical thing these days. Especially will all the different API layers that an application can have.

      Given the complexity of most code these days, a flow-chart would only be able to document a single function.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
  13. Programming? by mmcuh · · Score: 4, Insightful

    If they want to know about game programming, then obviously they are at the wrong talk. Programming is not computer science.

    1. Re:Programming? by platypusfriend · · Score: 1

      Agreed! Programming is neither science or the commonly-understood definition of engineering. It's more like "painting efficiently" using words.

    2. Re:Programming? by sourcerror · · Score: 1

      However, you need to know to program ...
      1, to get your CS degree
      2, to do anything with your degree outside of academia

    3. Re:Programming? by Surt · · Score: 1

      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.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    4. Re:Programming? by MacGyver2210 · · Score: 1

      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.

      --
      If the only way you can accept an assertion is by faith, then you are conceding that it can't be taken on its own merits
    5. Re:Programming? by Missing.Matter · · Score: 4, Insightful

      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.

    6. Re:Programming? by Belial6 · · Score: 1

      True. Programming is not science. It is a 'Trade'. I tell people this all the time. My job is very much the same as a plumber or electrician. We take a plan that depending on the size of the job is either created by an architect, or is just a spec described by the customer. We figure out how hook things together so that the data (as opposed to electricity or water) flows properly from one point to another. How we specifically do it is largely up to us, as long the inputs and outputs function as expected. We then cover our work with a nice looking cover (just as plumbers/electricians do with sheetrock) and make sure the UI functions as expected. If we hacked it together, no one is likely to notice until some kind of maintenance needs to be done.

    7. Re:Programming? by russotto · · Score: 1

      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.

      You can't study algorithms without a formal language which might as well be a programming language. Theory of computation is all about programming as well. Of those you've listed, only information theory can be studied without involving some form of programming.

    8. Re:Programming? by mr+exploiter · · Score: 1

      Please those are implementation details. Algorithms (programming) is a core CS topic. Robotics on the other hand isn't, it's interdisciplinary.

    9. Re:Programming? by Missing.Matter · · Score: 1

      Maybe I made a mistake by conflating "programming" and "programming languages" in my previous post, but I was responding to the assertion that "Programming is a huge part of Computer Science." Programming languages can all be reduced to mathematics and logic, which is the basis practically all science. But the act of programming is very different, and a lot of computer science, is done without it.

      I went through several algorithms courses without touching a computer. Yes of course we used a formal language, but it's a language of mathematics and logic. Automata theory, complexity, and the limits of computation... these were all studied before there was such a thing as a "programmer." Alan Turing introduced the Turing Machine in 1936! AI and Robotics is my field, and for some of my research the only computers involved were a calculator and the computer to write the paper.

    10. Re:Programming? by Missing.Matter · · Score: 1

      Understanding how we move, store, and process numbers is pretty much the purpose of computer science. CS has many branches and sub-fields and applications. I'm arguing that programming/software development is more like an application of computer science rather than its essence, as the grandparent argued.

    11. Re:Programming? by catmistake · · Score: 1

      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.

      You're almost, but not quite, entirely incorrect. Read the GP's post. Believe it. Computer Science is not programming. Programming is programming... Computer Science is Mathematics.

      Here... let's use a metaphor to show how you have flubbed up the meanings of words:

      Construction is a huge part of Engineering. It's not all of it, but most of the remaining parts of Engineering which aren't directly construction related are in support of construction.

      Now, if you can't see your folly, chances are you are a programmer. A computer scientist would never make that mistake.

    12. Re:Programming? by catmistake · · Score: 1

      All three of you are wrong, GGP, GP, & P.

      "Understanding the chips..." == NOT COMPUTER SCIENCE... that's Computer Engineering/Electrical Engineering. You don't need a computer to do computer science. In fact, CS has little, if anything, to do with the machines we call computers. Computer Science relates to physical computers the same way Mathematics relates to physical computers... but only because Computer Science is actually Mathematics.

      You absolutely CAN study algorithms without a formal [programming] language. Ask yourself... what is an algorithm? What language is it in? If you can communicate with the spoken/written variety of natural language, you can study algorithms with no knowledge of any formal [programming] language.

    13. Re:Programming? by Eli+Gottlieb · · Score: 1

      Just noting, but programming languages are also an aspect of computer science. You can research and study them without ever touching a mainstream industrial language, if you like.

    14. Re:Programming? by Reservoir+Penguin · · Score: 1

      Theory of algorithms is about Turing machines and theory of recursive functions, the course I took never included any programing or pseudo-programming. May be you meant some applied course on algorithm analysis.

      --
      US-UK-Israel: The real Axis of Evil
    15. Re:Programming? by Anonymous Coward · · Score: 0

      If they want to know about game programming, then obviously they are at the wrong talk. Programming is not computer science.

      Wrong. Programming IS CS. CS, however, is not necessarily programming.

      Further illustration- Architecture is part of Civil Engineering, but Civil Engineering is not necessarily Architecture.
      Further illustration- Football is Sports, but Sports are not necessarily Football.

      CS is what you learn at college, IT is what you learn at a votech or trade school. If you want to design an OS, get a CS degree, if you want to install an OS on a computer, go to a school which offers an IT program. (Note that the term "IT" can refer both to a profession specifically, but also can refer to the computer industry in general. I'm using it in the specific, not general sense)

    16. Re:Programming? by mr+exploiter · · Score: 1

      To most computer scientist the implementation details of the computer hardware are of no concern. How to move, store, and process numbers is pretty much outside of computer science and part of electronic engineering. Most CS papers deal with algorithms that are hardware and language independent.

    17. Re:Programming? by benhattman · · Score: 1

      Wrong!

      Without any form of programming (even inputting binary codes), a computer is not a computer. If you can't change it's behavior programmatically, you're now talking about finite state machine science. If you want to argue that the field is rich without delving into any specific language, or even a generic higher level language, then I agree. But, try holding an interesting discussion on what a register is without bringing up the fact that a command exists to put a value into that register, or explain the power of an ALU while avoiding explaining that different commands cause it to produce different results.

    18. Re:Programming? by Missing.Matter · · Score: 1

      I thoroughly disagree. I don't think I mentioned anything about implementation details and hardware. Why do you insist moving, storing, and processing numbers has to be hardware and language dependent? Pretty much every algorithm I've studied has to do with one or some combination of the three. Sorting, searching, data structures, graph theory, networking... all very core CS topics and all deal with the manipulation of information and can studied abstractly.

      I'm curious... if you don't believe computer science is about how we move, store, and process numbers, then what is its purpose?

    19. Re:Programming? by Missing.Matter · · Score: 1

      It is important to differentiate the abstract programming (creating a set of formal instructions for a computer to execute) from the occupation programming. The latter is what this thread is about.

    20. Re:Programming? by xero314 · · Score: 1

      If computer science has anything to do with how the hardware works then someone needs to tell that to nearly every university in the US and likely the world. I have worked enough CS grads to know that they never learned a thing about hardware. I can say for a fact that I have never met a CS grad that knew how to construct a Look-Ahead Adder. Hardware is a mater of Computer Engineering not Computer Science. Sure they can reinvent a Linked List or one of many sorting algorithms, but when it comes to "how the chips insider work" they haven't a clue.

      On the other hand, you are correct that CS has nothing to do with programing, at least from what I have seen. Of the CS grads I have had the pleasure of working with few new how to program and none knew how to do it right. Most of them where too busy trying to reinvent the wheel.

    21. Re:Programming? by mr+exploiter · · Score: 1

      I'm sorry discussions about semantics are very boring to me, but I don't know why are you so fixated in numbers, CS is about processing (or computing of) information. The way you put that in the other posts seemed to me like referring to computer architecture, witch is part, but not the same, of computer science.

    22. Re:Programming? by alexo · · Score: 1

      "Computer science is no more about computers than astronomy is about telescopes."
      -- Edsger Dijkstra

  14. You're the adult_ by ElitistWhiner · · Score: 1

    ...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

    1. Re:You're the adult_ by Anonymous Coward · · Score: 0

      Comp Sci is a degree, alone.

    2. Re:You're the adult_ by Anonymous Coward · · Score: 0

      Fixed that for you.....

      Math Whiz's - Computer Scientists who can write an Algorithm for that
      Programmers - wannabe ComSci guru's who can't
      SysAdmins - wannabe ComSci guru's who can't program

  15. Cover the field by bbasgen · · Score: 1

    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.

  16. Facebook by Anonymous Coward · · Score: 0

    It's easier to be interested in something if it relates to you. For teenagers of the past that used to be games, but there is non-game genre of software that is very relevant to high school students today: the Facebook ecosystem. Those PHP, JavaScript and SQL skills could be put to very good use building add-ins for sites like Facebook.

  17. Tell them to do their math homework. by Joshua+Fan · · Score: 1

    A strong math foundation laid in high school and earlier will be fundamental to their success in computer science later. The function of a computer really is to mathematically transform data sets from one format to another. Especially in games, where trigonometry is foundation of physics, no matter how basic. See Xbox Live's Trueskill formula if you don't believe me.

  18. Re:if they aren't asking: nothing by rrossman2 · · Score: 4, Insightful

    That's a good point.. most people think you just go and flush, and don't realize how much stuff goes on behind the scenes. Planning/designing of the plant, permits required to build (since most are built along rivers in flood zones, so include the impact studies for flooding, etc), grinders inline to chop up the solids, pumps to push the sewage along and up hills, the straining tanks, chlorination and UV to kill germs, controlling and monitoring the particulate outputs, etc, etc.

    It's much like programming. Those who don't know think there's not much too it.. but there is quite a bit that goes into making a good program. The initial idea, planning, finding out what regulations your project must comply with (HIPAA, SOX, etc), designing the flowcharts, settings time lines, cost planning, marketing, etc, etc.

    So, as much as you were trying to be a smart ass, you inadvertently brought up a good example.

  19. What's the point of this? by GameboyRMH · · Score: 0

    If they aren't interested and experienced in computers by that age they're not going into the industry. We don't need any more PHBs, clueless coders and buzzword bingo players, thanks. It'll be better for them too, IT/CompSci has an awful education:pay ratio. My sister woke up one day a few years ago and said "I think I'll work in interior design" and now she makes almost as much as I do at my job that requires a BSc and more (and she needs all the money she can get, she's terrible at managing it).

    --
    "When information is power, privacy is freedom" - Jah-Wren Ryel
    1. Re:What's the point of this? by mdf356 · · Score: 1

      I don't think I'd heard that the education costs compared to salary were bad for computer science. For IT this may well be possible, but I went to a state college, had a small stipend in grad school, and made more in 2006 than my dad, who was a Mechanical Engineer with 30 years experience working at NASA.

      So I think it depends what you do with the degree. Working in IT may not pay well, but systems programming will probably put your household in the top 10% of income within 10 years. Pay at IBM, EMC, Amazon, Microsoft, Google, etc., are all pretty comparable.

      --
      Terrorist, bomb, al Qaeda, nuclear, yellowcake, kill, assassinate. Carnivore is dead... long live Echelon.
  20. Show them the Beauty and the Joy... by __aanuaj6178 · · Score: 2

    CS10 : The Beauty and Joy of Computing (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. :)

    1. Re:Show them the Beauty and the Joy... by MacGyver2210 · · Score: 1

      "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 someone clicks it".

      --
      If the only way you can accept an assertion is by faith, then you are conceding that it can't be taken on its own merits
    2. Re:Show them the Beauty and the Joy... by Anonymous Coward · · Score: 0

      Scratch? A programming language where, if you have multiple objects of the same kind, you need to COPY the code for each one! Sounds like an example of computer science gone really UGLY. To make matters worse, if you actually have many objects performance goes to hell. Where is the JOY in seeing your project to run at snail speed?

    3. Re:Show them the Beauty and the Joy... by Nivag064 · · Score: 1

      "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 someone clicks it".

      No way!

      Point and click does not help you understand things in depth, and does not scale well to non-trivial systems.

      Even for GUI work, beyond the most trivial, visual designers tend to suck and the code they generate is abysmal. The only exception I've found is in a report generation tool.

      C# and VB only work on Microsoft platforms (ignoring mono).

      I have a friend who is an extremely experienced .Net developer, he uses Linux at home and is in the process of moving over to Java at work

      Java is cross platform, as are most languages to some extent - other than C# and VB. Also Java has an IDE that runs on several platforms called Eclipse.

      Linux will be the dominant platform in less than 10 years.

      Linux is already the dominant O/S in the mobile and server spaces. Hints: what is Android based on?, what O/S is used in eBooks?, in smart TV's?, what O/S is on over 90% of the top 500 super computers?

      So in less than 10 years Microsoft will be a legacy O/S that will attract no new development, and the company will be much smaller (even assuming it is still around)! I am being pessimistic, it may be as short as 5 years.

      I starting programming in the early 1970's, so I have watched O/S history unfold. At one time CP/M was the dominant O/S - how many people now have ever heard of it?

      There may be other O/S's besides Linux (highly likely), but Microsoft O/S families will not be there to any significant extent.

      So get skills that are useful on Linux, and preferably cross platform.

    4. Re:Show them the Beauty and the Joy... by __aanuaj6178 · · Score: 1

      "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.

      Rather than feed a troll without question, I'll give you a few links, and then we can discuss your plan to frighten every non-CS major away from learning about CS.

              A high-school teacher from one of our last events reflects on his bias against visual programming as "real" programming:

      http://itmoves.wordpress.com/2010/12/08/cs-ed-day/

              Here's the factorial block that he mentions:

      http://www.aggroculture.com/cal/cs10/factorial.gif

              An example of what's available in BYOB (Build Your Own Blocks, an enhanced version of MIT's Scratch):

      http://www.aggroculture.com/cal/cs10/BYOB+tools.gif

      (You'll probably have to zoom in on this one. I don't have a lot of time to split it up into pieces right now)

              Check out the lectures that are associated with the class, which have both "big ideas" as well as some fundamental CS concepts (E.G. algorithmic complexity, abstraction, recursion, etc.):

      http://www.youtube.com/playlist?list=PLECBD29A17AAF6EF9

              And if you feel it isn't too beneath you, why not give it a whirl?

      http://byob.berkeley.edu/

              Here's a tutorial video about Lists and Higher-Order Functions (since you probably want to jump straight into the .. "genius" .. stuff):

      http://byob.berkeley.edu/BYOB3-Tutorial2.mov

  21. They need the company of like minds by platypusfriend · · Score: 1

    Steer them toward a tech-related college, along the lines of UAT or Full Sail. Don't tell them about the negatives; they need to find them out for themselves, in the context of their own future experiences. Encourage them to develop a passion for programming, as if it were an emotional connection to others, in their own spare time.

  22. Computer Science as a Problem Solving method by lavalyn · · Score: 2

    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.

    --
    Doing the Right Thing should not be preempted by making a buck.
    1. Re:Computer Science as a Problem Solving method by jittles · · Score: 1

      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 forgets, can be useful knowledge for kids that aren't ever going to be interested in programming.

      In my opinion anyone can learn to program. However, only certain people have the right mindset to solve problems in a logical way. Those are the kinds of people that should be encouraged to learn about computers. The rest just need to know enough to understand how the technology affects their lives.

    2. Re:Computer Science as a Problem Solving method by jittles · · Score: 1

      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!

    3. Re:Computer Science as a Problem Solving method by MacGyver2210 · · Score: 2

      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 friend to try out, I was hooked.

      --
      If the only way you can accept an assertion is by faith, then you are conceding that it can't be taken on its own merits
  23. Interactive session, actually develop! by trcollinson · · Score: 1

    I know that 20 minutes is pretty short, but I have found that the most impact from a presentation like this is when I actually give them the knowledge they need to start developing something on their own. A little research before the session (much like you are doing right now, kudos to you!) can produce a half page sheet on how to set up a development environment, a short tutorial to solve a real problem, and even some links to further tutorials.

    In a high school setting I am sure you will get a huge mix of people who range from very interested all the way down to super bored. With 20 minutes, play to the interested learners and show them the real deal. If they always seem interested in game programming, make sure to have a link on your half page to a game programming tutorial.

    1. Re:Interactive session, actually develop! by Anonymous Coward · · Score: 0

      God no, not in 20 minutes. You'll confuse half the class, and bore the other half.

      I've done something like this before, though I had twice as much time to do it, so let me offer some tips.

      * You're not an ambassador from mars. They know what programming is for. They know Facebook doesn't run on magic fairy juice. You're there to talk about what YOU do, as a living breathing example of a subject that they're only being taught in abstract.

      * If what you do is really boring, focus on the fun parts of your job. If your coworker seems to have a more fun job, talk about what he does. And it should go without saying, don't complain about your job.

      * Allow at least half the time for questions. If no one has any questions, have some material to talk about instead. In other words, don't lecture, then save questions for the very end, mix it up a little bit.

      * Practice your delivery, but remember high school is a tough room. They hate being cooped up and being a captive audience as much as you did when you were their age. If the teacher doesn't have ironclad control, half the class will be carrying on their own conversations while you talk, so make sure you talk clearly enough.

  24. Ethical and political issues? by bradley13 · · Score: 1

    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...

    --
    Enjoy life! This is not a dress rehearsal.
    1. Re:Ethical and political issues? by Joe+Jay+Bee · · Score: 1

      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.

    2. Re:Ethical and political issues? by xero314 · · Score: 1

      One of the big things that sets Computer Science apart from engineering, and why there should be true Software Engineering majors, is that CS does not consider ethics, while Engineering course always include ethics.

  25. Learn programming even if you don't go into CS by Anonymous Coward · · Score: 0

    Tell them that knowing just a little programming can get them very far in certain industries. I have no formal CS training aside from a C++ class I took in high school, but programming is a huge part of my job. Even for those who won't actually program in their jobs, chances are that nearly everything they do will happen on a computer. Having a good knowledge of how computers work (i.e. the logic and conventions), above and beyond knowing how to use an operating system, makes a person more productive and will benefit his/her career, not to mention his/her mind.

    I honestly think that, given the degree to which computers permeate our society, we should be giving kids CS training at much younger age.

  26. KISS by Sduic · · Score: 2
    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.

    --
    *this space intentionally left blank
    "One of the four pointers saying 'come and see', and I saw, and beheld a white
    1. Re:KISS by DerekLyons · · Score: 3, Informative

      You, like most posters here, confuse Computer Science with Information Technology. They aren't the same thing, any more than Materiel Science and Welding is.

    2. Re:KISS by Sduic · · Score: 1

      I'm aware of the distinction. You might note that I listed both, but did not conflate them as you suggest. As an aside, a general knowledge of Material Science is of little use if your Metallurgy knowledge is limited, or non-existent.

      My advice was meant to imply that practical skills should be backed up by relevant theoretical knowledge, as the complement is stronger than either alone.

      --
      *this space intentionally left blank
      "One of the four pointers saying 'come and see', and I saw, and beheld a white
    3. Re:KISS by Tablizer · · Score: 1

      My advice was meant to imply that practical skills should be backed up by relevant theoretical knowledge, as the complement is stronger than either alone.

      I have to put a big caveat on that. If you are too logical, you can't relate to your managers. You'll talk and think above their head and they will ignore you. Bullshitting is a far more useful skill. Get practice first by selling crappy smartphones to suckers and learn to ignore the guilt. BS-ing will take you much further.

      -Messenger

    4. Re:KISS by Anonymous Coward · · Score: 0

      You, like most posters here, confuse Computer Science with Information Technology. They aren't the same thing, any more than Materiel Science and Welding is.

      The OP isn't confusing CS with information management(FTFY). Read the GP's post, this is precisely what they are talking about - not soldering parts onto Atmel boards and any engineering on a CS level.

      Disclaimer: IAMA real computer scientist, I make the fins steer towards the target.

    5. Re:KISS by DerekLyons · · Score: 0

      I'm aware of the distinction. You might note that I listed both, but did not conflate them as you suggest.

      Had you not conflated them, I wouldn't have made the comments I did. Duh.
       

      As an aside, a general knowledge of Material Science is of little use if your Metallurgy knowledge is limited, or non-existent.

      As an aside, if I thought you were clueless before...
       

      My advice was meant to imply that practical skills should be backed up by relevant theoretical knowledge, as the complement is stronger than either alone.

      The problem of course, being that it implied no such thing. If it had, I'd have not made the comment before.

  27. So tell them about game development by Geckoman · · Score: 1

    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.

    1. Re:So tell them about game development by Anonymous Coward · · Score: 0

      yeah, a crash course on 80s pascal programming for dos would actually benefit them the most.

      it would also show them that computers are just machines, fairly simple machines that just happen to do a lot of logical things in succession that makes them look like magic to them.

    2. Re:So tell them about game development by Geckoman · · Score: 1

      Yeah, that's a great point, and one well worth emphasizing:

      Computers don't do anything magical or mysterious, they just do lots of simple things very, very quickly.

      If you could somehow slow execution down to the point that they could see individual lines and screen sections being redrawn, pointer positions being calculated, text lines being positioned, etc, it would be a lot less impressive.

    3. Re:So tell them about game development by Anonymous Coward · · Score: 0

      mod parent up! this is the single most insightful response to this question

  28. Embedded microcontrollers .. by n5vb · · Score: 1

    .. and all the things they end up in.

    If you can bring enough stuff to set up a small Arduino lab for the Q&A, and let them play around in the IDE a bit, that'll definitely wake a few of them up ..

  29. Flowcharts aren't hard once you know the app by SpectateSwamp · · Score: 1

    One other time I needed a flowchart. We were making changes to a property management system to give it budgeting capabilities. The oiginal programmer (working at a different ministry) said "Don't touch that code" I charted it out and passed it by my supervisor. We tested it and it worked. I was the maintenance contractor after that...

    --
    Challenge: I have better access to my Video, Music, Pics and Text than anyone on Earth.
  30. Do the Q&A by nlawalker · · Score: 2

    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.

    1. Re:Do the Q&A by bgat · · Score: 2

      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.

      --
      b.g.
    2. Re:Do the Q&A by nlawalker · · Score: 1

      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.

    3. Re:Do the Q&A by bgat · · Score: 1

      I might have been unnecessarily harsh. :)

      --
      b.g.
  31. that is not word and excel by Anonymous Coward · · Score: 0

    People today have a misconception today that equates computer science to secretary school. Hopefully Raspberry Pi will change that.

  32. Purpose by roman_mir · · Score: 1

    Tell them about the purpose of computers outside of private communications devices and gaming platforms. Talk about the reasons we use computers, what they are for and how they are used.

    I think that's more important if they are looking for a 'job' advice.

    Ask anybody if they are just interested in doing stuff to see if they can, and tell them that the best way to learn is to try and build their own computers and languages, maybe they can invent something that we haven't really tried yet.

  33. Re:if they aren't asking: nothing by Dunbal · · Score: 2

    Those who don't know think there's not much too it..

    Unless of course you live in a rural area and have a septic tank. There is really not much to a septic tank. A hole, a couple 36 inch concrete tube sections, a drainage trench filled with gravel, and a cover. As my dad used to tell me back when I was a little boy and he had a big construction company: "shit eats itself".

    --
    Seven puppies were harmed during the making of this post.
  34. Tell them about open source opportunities by Anonymous Coward · · Score: 0

    Tell them they can get their feet wet in projects like Wesnoth.

  35. Re:What they all really wanna know about by mmmmbeer · · Score: 2

    Don't be silly. They already know that.

  36. Passion and programming by Anonymous Coward · · Score: 0

    I've been in a similar situation some years ago. Kids are always into games, so couching your talk in terms that they are interested in would be appropriate in order to keep/hold their attention. In any case, games are very object-oriented, so an introductory talk (10 minutes or so) into how using object models helps to define the elements of a game would be appropriate. Then, display some examples of game object classes (environment, character, properties, etc) and how they interact (methods). This lays the foundation for modern game development. Finally, open the session to questions, but try to constrain them to questions as to how to use these models to formulate their game universe. Keep the students on topic, so to speak.

  37. thoughts by buddyglass · · Score: 1

    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.

  38. "Don't bother" by Dwonis · · Score: 1

    "Software patents will prevent you from doing anything *really* cool anyway."

  39. Demo with Visuals by perlith · · Score: 1

    You have twenty minutes to present to an audience who has little to no information about your topic. Within 2 minutes, grab their attention or you'll lose them for the remaining 18 minutes. An interesting visual to begin with will be helpful.

    One of the best demos I remember seeing was Cisco presenting their work on the Playstation2 networking components. They popped a disc into the Playstation2 and started messing around with the innards. They had my attention for the remaining hour.

    For this specific group, do NOT give detailed explanations or definitions, they will not care. Show them what the field is capable of doing with recent examples (the Watson computer on Jeopardy, the recent innovations with automotive technology, iPhone/Android apps, etc.), and, a bit of your own personal work. Finish up by saying "without computer science, none of this would be possible". Leave 5 minutes for Q&A ... you'll have a few folks genuinely interested.

  40. "Computer Science" is a misnomer by bgat · · Score: 4, Insightful

    I doubt a high-school student really cares about the "theoretical foundations of information and computation". 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.

    --
    b.g.
    1. Re:"Computer Science" is a misnomer by Anonymous Coward · · Score: 0

      I second this, Start off with a quick demo of what you specifically do with Computer Science, then what is possible with it (More demos of tactile amazing things the better)

      After each demo give them a fast glimpse of what makes it possible and any time left open for questions. If they're consecutive sessions, then you can do the entire q&a as the last session. first one is demos and second one being your typical day in the life or whatever.

      I'm certain goal is NOT to discourage them with warnings or belittling other CS career paths but instead to inspire them to be awesome people with an eye towards CS regardless of what they decide to do.

    2. Re:"Computer Science" is a misnomer by Anonymous Coward · · Score: 0

      Show them the Pololu 3pi robot. It's affordable for a professional ($100), easy to program in C and comes with demo programs to do fun things like following a line or solving a maze made of electric tape (easy to demo in a classroom). Plus then you a cool robot to play with!

      http://www.pololu.com/catalog/product/975

      I bought one and added an infrared receiver. I programmed the robot to receive commands from an old IR remote control that came with a helicopter. So now my robot can be driven around by the students as well as do autonomous tasks like solving mazes. It was a great success when I showed it in school.

  41. That CS is not "programming" by cjonslashdot · · Score: 3, Insightful

    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".

    1. Re:That CS is not "programming" by Securityemo · · Score: 1

      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 should be communicated is the way to get to the place on the spectrum you want to work at.

      --
      Emotions! In your brain!
    2. Re:That CS is not "programming" by cjonslashdot · · Score: 1

      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 only a very, very small percentage of IT developers are interested in building reliable and secure systems. Based on the success of my earlier purely programming books, I have concluded that most developers are indeed just interested in hacking things out. Your experience confirms this.

      And there is nothing wrong with people who just want to "hack things out". That is a tinkerer's mentality, and we need tinkerers. Tinkerers are the people who build things (using someone else's design). Tinkerers are the people who fix things when they break. The problem is, we have computer science classes filled with a mix of tinkerers and analytical thinkers - and the two do not benefit equally from a computer science curriculum.

      Computer science should be for people who design things. Software Engineering is for the rest.

      In the sciences in general, there is a sharp philosophical divide between the "theorists" and the "experimentalists". The former are the analytical people. The latter are the tinkerers. We need both. But the two camps generally do not appreciate each other. And it is true that a good theorist must be able to tinker a little bit, and a good experimentalist must know the basics of theory - even if they are not very interested in it.

      So I think that we need far more people enrolled in Software Engineering, rather than Computer Science. Computer Science should be for people who want to design complex and reliable systems, and for people who want to figure out better ways of designing systems. And as a corollary to that, the task of designing complex and reliable systems should be reserved for people with an adequate knowledge of computer science.

    3. Re:That CS is not "programming" by Nivag064 · · Score: 1

      Do you have a free copy of your 3rd book I can scrounge? :-)

      I would like to read it, but don't have the budget. :-(

      I became a better programmer, after I became a Systems Analyst and considered things from a wider perspective.

      I remember being asked to provide some notes about the Software Development Life Cycle, about 10 years after starting programming. I wrote down about a dozen lines, then about 20 minutes later I inserted a line in the middle about coding and testing. If I had been asked that in my first 3 years, that one line would have been expanded to be the major part!

    4. Re:That CS is not "programming" by cjonslashdot · · Score: 1

      No, I have no spare copies. But on Amazon you can get it for $35.86.

      I know that it costs a-lot to buy books. The publisher gets most of that: I get only $2 on the sale of each book. Publishers need to rake in a large percentage because most books are a money loser once you factor in all the production and distribution costs. (The distributor, whether it is Amazon or Barnes & Noble, generally keeps about half of the sale price.) The few best sellers make up for that and make their business profitable. For a highly successful technical book, one is usually talking about sales of 10,000 copies per year, with a run of a few years. Contrast that with a successful novel, which might sell millions of copies. For most technical authors, writing a book is a labor of love: there is no real money in it. Just as in basketball, only a very, very tiny fraction of the "players" (authors) make any real money, and in the arena of technical books even those "players" don't get rich.

      So when you look at a technical book, realize how much effort went into it (typically about three years of someone's life), and when you consider that they have put their most valuable knowledge and experiences into the book, it then seems like quite a bargain!

    5. Re:That CS is not "programming" by mr+exploiter · · Score: 1

      Absurd, you don't give a 20 minute talk about a field and start discussing paradigms that aren't likely to change for the next 50 years.

    6. Re:That CS is not "programming" by cjonslashdot · · Score: 1

      Actually, some people think that the end of the programming era is not far off: http://www.thinq.co.uk/2011/8/22/dr-dharmendra-modha-cognitive-computing/

      But my main point was that computer science is not programming, and programming is not computer science. To equate the two is like equating the study required of a car mechanic with the study required of an automotive engineer.

    7. Re:That CS is not "programming" by mr+exploiter · · Score: 1

      It's more like equating the study required for building a car with the study required of an automotive engineer... It's not the same, but it's not so different either. I don't thing any real CS scientist can work without knowing hot to program.

    8. Re:That CS is not "programming" by cjonslashdot · · Score: 1

      Yes, you are right about that. Practical, hands-on knowledge and experience are essential if one wants to be able to design buildable things.

      Also, I don't mean to disparage people who are self-taught (i.e., who do not have a formal CS or SE degree). Some of the best software architects I have known were self-taught. But those are people who had deep curiosity. They were not hackers. E.g., one of them, who had been a spoken language researcher (as in French, Italian, etc., not computer languages) took up computer science on his own and, as he described it, endeavored to "write every type of program". So, e.g., he wrote a small operating system, he learned how to write compilers (read Aho & Ullman) and wrote a few, wrote a text editor, etc. (This was many years ago, before distributed programming was important.) He taught himself the concepts of computer science, rather than just hacking out programs using gut instincts.

    9. Re:That CS is not "programming" by Nivag064 · · Score: 1

      I was being deliberately cheeky in asking for a copy! :-)

      I actually have spent over a $1000 on technical books over the last 5 years.

      Thanks for the background on technical book economics.

  42. Easy. by sootman · · Score: 1

    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. :-)

    --
    Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
  43. Tell Them The Truth by HangingChad · · Score: 1

    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.

    --
    That's our life, the big wheel of shit. - The Fat Man, Blue Tango Salvage
  44. Ask them what their favourite game is. by rashanon · · Score: 1

    Then do a little dissection into the game. Is it a shooter. some of the best are running on their own created engines, so if you are making models, you usually need an understanding of sculpture, painting, lighting, human anatomy. weaponry needs physics for reactions, math for mass and damage.

    Gaming is a damn sight more then just computer programming. you need a lot of other interdisciplinary skills. i know one of the earlier ID employees and Kens skill was sculpting monsters. you need more then just programming. I bet you find the games they like the best are the ones that are the top titles, and they are made to look like complete worlds. so you need to understand how the real world works. get out there and explore it, because if you expect to help create a digital version of it, you better understand how it works.

  45. Dilbert, Javascript, PHP, Dilbert by Will.Woodhull · · Score: 4, Insightful

    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.

    --
    Will
    1. Re:Dilbert, Javascript, PHP, Dilbert by Anonymous Coward · · Score: 0

      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...

      So, talk about facebook?

    2. Re:Dilbert, Javascript, PHP, Dilbert by UBfusion · · Score: 1

      Before you go, don't forget to advise them to always use NoScript in their browsers!

    3. Re:Dilbert, Javascript, PHP, Dilbert by Anonymous Coward · · Score: 0

      Whatever you do, don't do what's suggested above. There's a saying in book publishing that for each equation you put in your book, you lose half your audience. It's the same thing with code snippets in presentations. The Dilbert stuff may be OK (although I think it may also end up being like putting Peanuts cartoons in a presentation when we were kids - lame). And don't talk about any one specific technology like PHP or Javascript. Those will pretty much be irrelevant to the generation you're talking to. It would have been like someone coming into our class and telling us about COBOL. Perfectly reasonable to a professional in the industry at the time and completely useless to us.

    4. Re:Dilbert, Javascript, PHP, Dilbert by Will.Woodhull · · Score: 1

      Most of parent post's points are disagreements on style of presentation, and can be summed up by saying "If you do not know how to use certain presentation skills, do not use them." Which I certainly do not disagree with. That is most certainly true with using code snippets as jump-off points to discuss similarities between languages, the logic that underlies all programming, etc. If all you know how to do with a code snippet is to analyze the damn thing, then do not use them.

      I do take issue with parent post's objection to using PHP and Javascript. These are very accessible to high school students RIGHT NOW, and the author of TFA states he is comfortable with them, so they are the logical choice. In 3 sessions of 20 minutes each, this is not going to be about learning how to program; It will be about much more general questions. Probably variants on "When I grow up and go to college, would I really like to take courses in computer science?"

      --
      Will
    5. Re:Dilbert, Javascript, PHP, Dilbert by Anonymous Coward · · Score: 0

      Am I the only one who noticed the irony after seeing the newest Dilbert comic strip?
      http://dilbert.com/dyn/str_strip/000000000/00000000/0000000/000000/00000/2000/700/2734/2734.strip.gif

    6. Re:Dilbert, Javascript, PHP, Dilbert by Anonymous Coward · · Score: 0

      dilbert fucking sucks.

    7. Re:Dilbert, Javascript, PHP, Dilbert by Anonymous Coward · · Score: 0

      dilbert fucking sucks.

      I cannot say, I have never taken him to bed with me.

      But I think the A.C. who posted parent needs to find someone who will explain to him that fucking generally does not involve sucking, which is more commonly associated with blow jobs. I think until that distinction is thoroughly mastered, A.C. is going to have a very disappointing love life.

      Then again, he is posting on slashdot so there probably is no love life anyway.

  46. CS != Programming != IT by MpVpRb · · Score: 4, Insightful

    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.

    1. Re:CS != Programming != IT by xyourfacekillerx · · Score: 1

      Came here to say this. Leaving satisfied, props to poster.

    2. Re:CS != Programming != IT by Anonymous Coward · · Score: 0

      Agreed except that your definition of computer science is too narrow. You've defined computer science theory. Computer science more generally is the development of new computational techniques. Besides complexity theory and basic algorithms, it encompasses programming language and compiler design, systems, AI, computer vision, numerical methods, computer graphics, networking, etc. Not all is math-heavy although some math is always required and often the more you know, the better you do.

    3. Re:CS != Programming != IT by kikito · · Score: 1

      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.

    4. Re:CS != Programming != IT by da8add1e · · Score: 1

      I think in the context the OP is meaning Computer Science in the broader meaning, in either case I'd tell them to study something else, graduate employability for IT related degree's is terrible, they (the teaching profession/minister for education etc..) are always hammering on about the need for more computing students and how we are lagging behind (in the UK at least) but it's a complete falsehood (that's politician for lie), according to the BCS (British Computer Society) since 2000 IT related degree's have exceeded all other discipline's in terms of numbers of graduates, this means that the IT related degree is the 'default degree' (formerly it was Business Studies), as almost half of all degree's (ok.. 44%) are now IT related (as of 2010) So the IT related studies degree has become the replacement of a ordinary or common garden business degree, why does that matter?... well it hasn't worked well for most graduates as 22, 000 graduate positions available and 260k graduates per year (the average from 2000-2010) is not a good employment rate in fact only media studies and the "Arts and humanities" fare worst for employment. It's rather amusing to see that the default common garden business degree it replaces fares extremely well now and has over 90% employability for graduates. so my advice to them - study something else.. anything else really :D

    5. Re:CS != Programming != IT by alantus · · Score: 1

      That might be true in your country, but in other countries IT is a broad term that also applies to programming and computer science.
      In my IT department we have programmers, network administrators, helpdesk, etc.

      Think of it as something similar to football, which has a different meaning in the US than in the rest of the world. Are you also trying to teach people from other countries what football really is?

  47. The 2ndbestest program doesn't need a flowchart by SpectateSwamp · · Score: 1

    For simple things no flowchart is needed ever.

    I'm saying look at the 2 page flowchart of the print logic. That was the only tuff thing in doing a Search Engine. A search finds text and hi-lites it. First and formost. Then if the next line has a pic or video or song. Stand back and Look out. you are on your way with flowcharts.

    --
    Challenge: I have better access to my Video, Music, Pics and Text than anyone on Earth.
  48. Office Space by Anonymous Coward · · Score: 0

    Have them watch Office Space... it's a great documentary on the life of a software developer.

  49. math by spottedkangaroo · · Score: 3, Informative

    Tell them it's math. Everything else is programming, sysadmining, networking, or otherwise not computer science (which is math).

    --
    Imagine if you weren't allowed to use roads because a bus company complained about your driving 3 times. --skunkpussy
    1. Re:math by Anonymous Coward · · Score: 0

      It really isn't. Computing Science is a hybrid discipline. I work on applying computing to biology. I have friends doing networks (graphs). I have others looking at accessibility and use of technology by the elderly or blind. Others like at interactive art displays. Others looking at dance. Others looking at security.

      There are some who spend their time doing hard core algorithm design. Those doing formal proofs. But computing science is a broad church, and has many different skills sets within it. This is the best thing about it. The maths, for me, is not. I stopped doing maths at 16.

  50. if they are smart, there are better opportunities by prgrmr · · Score: 1

    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.

  51. That the real money by Anonymous Coward · · Score: 1

    Is in the trades. There will always be a need for carpenters, plumbers, mechanics, etc. If they want to make money they should go to a trade school and forget about going into a profession that has been effectively taken over by countries whose people will work for a fraction of the cost of an American programmer.

    1. Re:That the real money by alexo · · Score: 1

      The real money is in the trades.

      Interesting.

      Can you point me to a site that shows the median income for different kinds of trades?

  52. About Passion and Commitment by Anonymous Coward · · Score: 0

    Maybe if you start by reminding them that about the world they live in it will help them understand where you will go from there:

    1. Ask them to pull out their cell phones and ask them what these 'things' do. Then, how the phones do it.
    2. Ask them why they use *acebook and *witter.
    3. Ask them how they would do their home work if they didn't have access to *oogle.

    Answer to 1. will help you tell them that CS is not just about games.
    Answer to 2. will help you tell them that they see CS as an essential part of their social diet.
    Answer to 3. will help you tell them that CS is making their lives easier in many ways.

    In short: CS already rules their world.

    Another important thing here, is that you make them realize that CS isn't just programming, it's also a form of engineering (developers et al. are building the information bridges of the future... and just like real bridges, we don't want those bridges to fall).

    Talk about the history of CS... it wasn't born yesterday.
    Talk about the women of CS ( Ada Lovelace, Barbara H. Liskov are a great examples ).

    Show the technology, If you wanna show off easy to learn languages, you could go from a methodology pov... Scheme vs. Ruby vs. Pascal... I think you could come up with real simple examples you can showoff in a 15 minute demo.

    Finally, programming is a very powerful tool for creation and in the words of a contemporary genius:

    " When you don’t create things, you become defined by your tastes rather than ability. Your tastes only narrow and exclude people. so create. "
    — Why the Lucky Stiff

  53. from a CS teacher by Anonymous Coward · · Score: 1

    I teach high school computer science and I wish I knew how to answer that question. I can offer a few tidbits however.

    Tell them that computer science is about solving problems. It is not about computers. ("Computer science is no more about computers than astronomy is about telescopes.” - Edsger Dijkstra) My school also offers a slew of engineering courses. I tell them engineering is about solving physical problems and CS is about solving virtual problems.

    I frequently walk through an example about how it would take a single person to calculate the GDP by adding everyone's salaries up by hand, but that a computer could do it in a matter of seconds to illustrate that in CS we may approach problem solving differently.

    I tell them the most common way CS solves problems is by writing programs. I present them with some problems and ask if they can name a program that solves that problem. The last problem I usually suggest is boredom which leads to games.

    I would have to second the suggestions to steer away from video games. I used to promote my program by having the kids learn Java in the Greenfoot environment. Unfortunately, this attracted the wrong kind of student. They weren't interested in creating "simple" games. I would explain to them that their favorite games took teams of developers years to create, but they still weren't satisfied. My program was defunded (and ironically replaced by game design which will almost certainly fail for the same reasons). I now focus my attention on recruiting engineering students from our robotics program into the AP Computer Science class I am allowed to teach.

  54. Tell them the truth by JasonDT · · Score: 0

    Move to india...we don't do science here in 'merica...even if you do choose a career in it, you will spend your entire career trying to find a job that hasn't been outsourced and that pays enough to pay to at least the minimum on your ridiculous student loan balance... But I'm not a cynic....

    --
    "It's not that I don't understand what your going through. Its that I just don't care"
  55. Hello World by quickgold192 · · Score: 1

    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.

  56. Tell them it's OK, but no longer great. by Animats · · Score: 1

    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 school. Check out colleges very carefully in this area. 4-year degree is entry level, MSCS is typical. PhD needed only if you want to work in academia, although it's a nice status symbol if you can afford it.

    Programming is making new apps and services. There's a huge range in programming, from very easy to very hard, and a wide range of specialized skills. Few people program much beyond age 40-45, so be prepared to move into management. College degree usually required, but a 2- year college may qualify you.

    Game programming is near the harder end of programming, but pays like the easier end, because too many people want in. It's like the movie industry in that way. Big teams, frantic deadlines, unpaid overtime. It's not about playing games. Some jobs require a lot of math, but that's less true than it was 10 years ago because most games now use purchased solutions to the hard graphics and physics problems.

    Software engineering is about making big apps and services, with a lot of pieces that have to work together. It's about design and team management. Few schools have really good training in this. Look around.

    Outsourcing is when your job gets sent to China or India. You're in wage competition with low-wage countries.

  57. Don't let them grow up to be sys-admins by Rev+Saxon · · Score: 1

    Warn them to say the hell out of Sysadmining. AKA the place where your considered a cost center, constantly under threat of downsizing, and basically only remembered when you need to spend money or something goes horrifically wrong. I hate to say it but I wish someone had sat me down 15 ago a years ago and warned me out of the whole IT field.

    --
    I am that much more enlightened and proportionally disillusioned
  58. shhh - nothing! by Anonymous Coward · · Score: 0

    letting the younger generation think that making a facebook page or blog or something IS programming is my (working-) retirement plan :(

  59. I Like The Hands On by Greyfox · · Score: 1
    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 Programming, take them through how you'd design a simple game. You don't need to write any code, just break the whole problem down to its component parts. Use Tic-Tac-Toe or something and shoot to spend about 10 minutes or so breaking down Tic-Tac-Toe so that you can tell the computer how to do the various parts. Once you have the whole design down, mention some possible features that you might consider adding in your typical computer science class, such as having the computer learn to play instead of using a set of hard-coded rules.

    Then suggest that they consider the average game they play and try to break it down to the component pieces like you just showed them with Tic-Tac-Toe.

    The road ahead for them is a long one and you can only show them a few steps along it. You don't need to sell them on working with computers for a living, you just need to help them see what it'll be like so they can decide for themselves if they want to.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  60. Truth! by Anonymous Coward · · Score: 0

    Just be honest.

    Spend $40,000 to get a degree and you can have a job that might or might not be interesting. Mileage may vary; not available in all states. Proof of purchase required.

  61. Get them interested in Math by mercnet · · Score: 1

    I found this tutorial great for showing how linear algebra relates to gaming: http://blog.wolfire.com/2009/07/linear-algebra-for-game-developers-part-1/ I wish my linear algebra teacher taught this way, we never got any real life examples, just straight plug and chug linear problems. I went to Virginia Tech, freshmen math classes are a big disappointment there.

  62. Re:if they aren't asking: nothing by Tsingi · · Score: 1

    what do you teach high school students about sewage networks?

    The first rule of civil engineering "Shit flows down hill."

  63. Talk from experience by Anonymous Coward · · Score: 0

    Whatever you do, stay within your experience, and pick a topic you are passionate about. What you tell them is probably secondary - they will get a lot of information about computers and programming from different sources. But if you can tell what you do, why you do it, and why it matters to them, that is more than most teachers will ever achieve.

    I agree with the warnings about the gaming industry. You could even stretch it from talking a popular game, and telling them how it is supported by a database system. And tell them they could be working long hours on low pay developing a database system for a new game :-). I am sure that would leave some impression.

  64. What To Tell HighSchoolers About Computer Science? by Lisias · · Score: 1

    RUN

    After typing what follows:

    10 for i = 1 to 10
    20 for j = 1 to i
    30 print "*";
    40 next
    50 print
    60 next

    (this was my first program ever. I still remember it after 25 years)

    --
    Lisias@Earth.SolarSystem.OrionArm.MilkyWay.Local.Virgo.Universe.org
  65. All that stuff on Facebook and Youtube? by Anonymous Coward · · Score: 0

    Someone writes the computer programs that make your computer and those web sites work, so that you and your friends can post funny and entertaining stuff! (And so companies can get access to all sorts of personal data about you.) Um, wait, did I just say that part aloud?

  66. I'm a highschooler by Anonymous Coward · · Score: 0

    As a highschooler, let me start off by saying we are all not nit-wits and oblivious to the technology around us, as some previous posters are implying. If someone is attending your session and they care enough to pay attention, you don't have to cover the absolute basics. If someone were to give me a 20 minute session I would want to know some of the following things (slashdot, feel free to answer them for me):

    How important is programming to overall computer science, what else does computer science entail, is it worth it to get a masters or doctorate in computer science, if I wanted to get a part-time job today working with computers where can I go, and is everyone in the industry a nerd?

    Some other topics to speak about might be: Real life applications they can use today (Write something that can take their list of vocab words, get the definition and spit it out, then show some of the basics of how you wrote it), Artificial intelligence, where you see computer science heading towards in the future, and the experiences you've had along the way (everyone likes hearing a joke now and then about a terrible boss.)

    There are many places you can take the discussion, I just urge you not to under-estimate them just because they are young.

  67. McJobs by flyingfsck · · Score: 1

    First of all, they should learn how to drawl: Ya want fries wizzat? ...since that is most probably where they will end up working.

    --
    Excuse me, but please get off my Pennisetum Clandestinum, eh!
    1. Re:McJobs by arkane1234 · · Score: 1

      So let me get this straight... every high school graduate will end up working at some place that sells fries?
      No wonder we have such a high unemployment rate.... there CAN'T be that many jobs like that.

      --
      -- This space for lease, low setup fee, inquire within!
  68. Did that yesterday, twice... by MauiJerry · · Score: 1

    I gave two 40 min talks about computer engineering, etc yesterday to 9-10 grade kids at Kihei Charter School (Kihei Maui Hawaii USA). I also work weekly with the robotics club a the King KeKaulike HS (Makawao Maui HI). I am an IEEE Certified Software Development Professional (CSPD) with over 30 year experience in areas like animation, virtual reality, multimedia search, desktop UAV control apps, etc. I dont do much computer science - more applied practice aka software engineering. What I talk to the kids about, and show examples of, is physical computing -- arduino based projects. These move, light up, make noise, sense and report, etc. And are very easy to program/wire. I include examples like the Makerbot, eggbot, and other CNC devices found in a FabLab or makerspace. These grab the kids attention and imagination ... well some of them. Expect that some kids will be snoozing or otherwise occupied - they are teens in school, not something we all loved. I related some of my experience with the robotics club too. Generally these clubs use VEX, Lego and First equipment, which is pretty much the same as arduino based projects... microcontroller, sensors, actuators. I started teaching arduino to the club last month and the kids ate it up... the girls were especially taken with some of the creativity it offers (blinkin lights). So, I don't know whether comp sci by itself is going to grab the kids attention and get them interested in computer development. The problem solving aspects of deep programming wont really grab them until after they've gotten experience and learned their way around the basics.

  69. Study something else by HawaiianToast · · Score: 1

    At this point, I would say: If they want to be a programmer, tell them not to waste their 4 years getting a CS degree. Study something else entirely and write code on their own time. If they truly enjoy programming, they'll learn far more by just doing and reading all of the vast resources out there, on the Internet and in libraries, as they need them to solve problems. Then when they do graduate, they won't just be another code monkey - They'll have a good start towards some domain expertise and be able to model it with their coding skills.

    1. Re:Study something else by Tablizer · · Score: 1

      Domain expertize is under-valued in the tech field for some reason. I still haven't figured out why.

    2. Re:Study something else by prefec2 · · Score: 1

      If you want to become a programmer, than you should not study computer science. It is like becoming an architect just because you like to lay bricks. Yes architects have to learn that, but their primary target is to design the whole house. And the art of programming is not part of a CS program. They only learn one or two languages as university to understand the basics. It often is Java and Scheme or Prolog or something like that. The primary job of a CS is to understand foreign domains to an extend so they can develop a model from it and apply the required transformations on that information to fulfill the customers needs. Therefor they have to understand the customer. So a full nerd who is not able to speak to other people should probably first study something else to learn how to communicate with other people. I did for that purpose classes in adult education. It told me a lot about group behavior, group management, presenting, and communication of thoughts. And that mainly by doing so. They gave us some background theory, but the real learning was the doing.

  70. Just get the females. by Anonymous Coward · · Score: 0

    Split the boys up from the girls. Tell the boys it's hopeless and that there are no fun jobs left anymore. Tell the girls it's the best thing in the world. We need more girls in our profession.

  71. HFT by nerdyalien · · Score: 1

    I think High Frequency Trading (HFT) is a good topic to talk about, considering the recent media attention on financial meltdown, new NYSE trading facility in NJ and occupy wallstreet and what not. It covers most CS topics like 'algorithms/math' to maximize profit, 'data mining' to beat the competition, 'IT infrastructure' to minimize latency, and 'global influence' in terms of market impact, fat-cat bankers and boom-bust economy (you may consider positive phrasing on last 2 points).

    Finally, I remember reading here in slashdot, a C++ native dev who writes algorithms for one of those HFT firms, who earns 1/2 million per annum. Now that is serious money right ?

  72. CS degree, or (Can I get a job?).. by Paracelcus · · Score: 1

    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!

    --
    I killed da wabbit -Elmer Fudd
  73. CS is really problem solving by Amigan · · Score: 1
    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 same data and have very complex mathematical algorithmic model(s) that represent weather where each of the inputs is a different variable, calculate results

    Solution: refining the model used in b is easier as it is much more fine grain

    Very few people work in pure Computer Science.

    jerry

    --
    "Software is the difference between hardware and reality"
  74. Your experiences by revjtanton · · Score: 1

    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

  75. Say this by Anonymous Coward · · Score: 0

    Computer Science is different than Computer Programming.

    A lot of Computer Scientists can't program. A lot of "professional" programmers can't, either.

    What they learn in classes-- especially the hardest ones-- is actually useful, but it's up to them to make
    something of it. They shouldn't expect getting a job and a college education to correspond. If they want
    a job, mess with Linux, not with college. If they want an education, take school seriously.

  76. Required Reading..... by IHC+Navistar · · Score: 1

    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.

    --
    Knowing Google's lust for data collection, the Soviet Union is still alive and well inside the psyche of Sergey Brin....
    1. Re:Required Reading..... by Larryish · · Score: 1

      Now Simon, we mustn't kill off _everyone_ else in the building.

      Someone has to clean the loo, after all.

    2. Re:Required Reading..... by IHC+Navistar · · Score: 1

      Right! Get on it. You will need to get the cleaning chemicals out of the tape safe.....

      --
      Knowing Google's lust for data collection, the Soviet Union is still alive and well inside the psyche of Sergey Brin....
  77. Keep it fairly abstract by evilWurst · · Score: 1

    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 Iran's uranium centrifuges, wink wink, took years of planning."

    You don't really have time to go in depth, nor do they have the background for you to show them actual code. So don't worry about those. The key is to pick examples that they'll already be at least a little familiar with and that you're comfortable with, and realistically de-magic those examples a bit.

    I'd recommend two flavors of examples before you open for questions. The first one is based around "this is what I do in real life". You can very easily tie your database stuff to, well, every big popular site the students have ever used. Facebook, Google search and maps, any webmail, ebay, Amazon, itunes, 4chan, Slashdot, and so on. All of that is based on gathering, sorting, storing, and searching through vast amounts of information. You can do the old dictionary example - use a physical dictionary, solicit a word from the crowd, and then look it up quickly right in front of them. Then point out how it'd take all day if you had to read every line in order from the front or the back. Then point out that Google's database printed out as dictionaries wouldn't fit in the entire internal volume of the school - floor to ceiling, wall to wall, all the rooms and hallways and the cafeteria and gym and auditorium and so on - and yet Google needs to do millions of lookups per second. All that is math. Not Einstein's rocket ship time machine math, but stuff not much harder than what they'll see next year in Precalculus. But without the math, it's like the warehouse at the end of Indiana Jones, where cool things go to die (because no one can ever find them again).

    The second one would be any common-but-hard problem in games. Something like pathing AI. You don't need to have actually written those programs; the idea is that you can explain it's too complex to calculate every possible path and pick the best one. The gamers in the crowd will grasp this fairly well, because they've all seen games where the pathing sucked, or where the third person viewpoint kept blocking them, or where the AI enemies seemed to cheat, or where the interface was poorly designed and you could never find what you needed in its maze of nested sub-menus. Again, it's all math. But it's hard-but-interesting math. The computer can do the calculations, but you need to know what its limits are, what calculations need to be done to do the work you want, and how to tell the computer to do those. You cannot say "computer, make me a sandwich"; you've got to write it a cookbook first.

  78. CS knowledge can make a star into a superstar by Anonymous Coward · · Score: 0

    Not on it's own of course.

    Knowledge of computers, their capabilities, and how to access these capabilities through programming can make a member of any professional field into a superstar of that field. I am a chemist, but one of my most valuable skill-sets right now is my knowledge of programming and my ability to learn new languages and apply them to automation of tedious to interpret data. Another example is in the financial sector; other than the executives, the biggest pay goes to programmers.

    Look at any high paying field and you will find that people with dual skill-sets that include programming will earn more money and have more opportunity than their programming deficient peers.

    Tell this to the students. Tell them that in today's economy they should foster an interest in computers to compliment their future profession.

  79. Don't bore them by Anonymous Coward · · Score: 0

    They can learn all the dry topics once they decide computer science is something they like. Speak to what they seem interested in. You may not nail it on the first couple days of class but it shouldn't be too difficult to figure out some portions of computer science that already have their interest.

    With that being said, you mentioned you are big on SQL. If you students seem technical enough, try to introduce them to The Schemaverse (http://schemaverse.com). If game development is what they are interested in then they can play the game by each making their own interfaces in php/js, java, python, whatever you prefer to teach. They will learn the basics of how to connect and query against a database and, if they get really into it a lot of very advanced database concepts. Full disclosure makes me mention that they game is mine and you should take what I'm saying with a grain of salt but I would have loved to be introduced to something like this in high school. Kids are competitive and this lets them learn and battle against each other at the same time.

    -Abstrct (posted anon because /. won't let me login)

  80. Random thoughts on what to tell kids by DuctTape · · Score: 1
    • 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 business head overpromises, or you get bullied by your project manager to cut your estimate.
    • Maths. Gotta have the maths, especially if you're going to do algorithms.
    • If you're going to strike out on your own, you're going to have to have an entrepreneur streak and/or business acumen. If you don't strike out on your own, your path to riches are going to be confined to being at the right place at the right time at the right startup with the right people that aren't going to screw you out of your fortune.
    • Along with the business acumen, network always so that the pump is primed for when the well goes dry (or whatever your favorite metaphor is).
    • If you work for a big company or the government, be ready to work on antiquated hardware and old versions of software because they don't want to upgrade. It's cheaper in their eyes to have you work longer, since you're exempt, than to pay for a new machine or new software.
    • Beware working for a small company that will never go public or doesn't give you equity. They'll overwork you, underpay you, and dangle big promotions for when they get bigger. Which they won't; or they'll give the good stuff to the outsider buddy of the C*O they just hired.

    No, I'm not bitter.

    DT

    --
    Is this thing on? Hello?
    1. Re:Random thoughts on what to tell kids by prefec2 · · Score: 1

      The best is to tell them. Don't become a code monkey. You will be out of business if you reduce CS to that. CS is about models and the understanding of the customers domain and the customers needs. programming is only done by a few and it is only done in certain parts, as most things come nowadays from generators out of models. Yes you have to write transformations and templates, but that is something completely different than average coding.

  81. Tell Them to Learn Math by scruffy · · Score: 1

    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.

  82. Eheh by SmallFurryCreature · · Score: 1

    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 if you weren't rich you HAD to code your own stuff because you couldn't afford bought games or even to load them from tape in a cassete drive which you didn't have.

    Anyway, if you want to get kids down, just remind them that for every scientists there are dozens of people running the same test time and time again all over the country. For every top programmer there are dozens of people writing the same HR program or website over and over again.

    Maybe it is better to not tell them. Let them dream.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

    1. Re:Eheh by Spugglefink · · Score: 1

      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.

      It was easier to accomplish something satisfying in those days for sure. I had a TRS-80 Color Computer, and I wrote this cool fishing game where you controlled a little boat with your arrow keys to try to intercept and skewer fish, and every so often this giant fish would jump out of the water and eat your boat. It was so cool, and I wrote the whole thing in BASIC.

      What was really shocking was how many years it took PCs to catch up. I got my first PC a few years after that, and I ported my program to some version of BASIC that was available on PCs of the day, GW BASIC, I think. The game was orders of magnitude slower, and not remotely playable, which actually killed my interest in programming for that platform for the longest time. They didn't have any decent way to produce sound in those days either. Before the soundcard revolution in about 1989 or so, you could do much more with a CoCo or a C64 than you could ever dream of on PC.

      I got involved with PC sound very early on. I remember Creative when it was just some bunch of guys in Singapore, and you had to pay big long distance charges to talk to them on the phone. Who could have guessed what they would become, or that they would stop being terribly relevant not so long afterwards.

      Ah, the good old days. Now get off my lawn, you damn kids!

  83. Computer Models Are Not Reality by pipingguy · · Score: 1

    As a board-trained draftsman, I know that fancy computer models are not necessarily representative of reality. Start there. And yes, I've done my own bit to "do something about this" by co-authoring a book (The Planning Guide to Piping Design), my websites and involvement with local and international CAD and engineering-related organizations.

  84. Anything not allowed by jago25_98 · · Score: 1

    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.

  85. Don't give the talk! Find someone else! by Anonymous Coward · · Score: 0

    I recommend against *you* giving that talk.

    Find someone who *can* do video game programming, and ask that person to give the talk.

    Listening to a description of software engineering from the perspective of someone whose primary experience is with Coldfusion, PHP, Javascript, SQL and bash scripts, is just going to seem SUPER LAME to those high school students. So why waste their time and your time?!

  86. lecture plan by Anonymous Coward · · Score: 0

    first 20 minutes: dip into topics that the students are familiar with, or should be: game programming, google, facebook, twitter, wikipedia, slashdot of course, windows, linux, browsers, internet infrastructure, etc. a few well-chosen sentences on each, things that they might not know and that might interest them. how many servers does google have? how many programmers? bill gates, linus torvalds, others. there's only time to tantalize the students about the topics you bring up, and the point is to get them to want to know more and to start doing their own browsing and research.

    second 20 minutes: hardware, especially processors. spend more than half the time introducing how a processor works and how designs are evolving. the students might be intrigued to hear about the code names for current and upcoming intel architectures. then spend a few minutes on memory, disk, graphics, other i/o, etc.

    third 20 minutes: programming, especially programming languages. assembly, C, and higher level languages of your choosing. suggest how to get started programming. maybe (just maybe) begin with a pair of languages, one higher-level and one lower. for example, either python or ruby, and C.

  87. please mention the GPL and other licences by Nivag064 · · Score: 1

    Please mention the GPL & LGPL and their significance, along with the Apache & BSD licences. Make sure they understand the importance of software licences in general, especially the benefits and dangers. For promoting standards, an Apache/BSD style licence is probably best; but for an important piece of software (Linux kernel) you want to keep free, then the GPL style licence is probably best.

    Ensure they know how licences affect end users, the software developers, and other parties.

    Not to mention the nature and danger of software patents, groklaw.net has resources to cover this (& the GPL).

  88. Explain by Anonymous Coward · · Score: 0

    Give them a quick overview of what Computer Science is, what programming is, and examples of occupations in the spectrum. Everything from security, forensics, digital art, movie making, games, accounting, statistical analysis used in sports, medical research, etc.) List some skills and personality needed for those occupations, along with the money and competition they will likely find in each area. I'd show a slide of dozens of areas where they would find CS being used, in various aspects. Then pick 4 that might interest them (maybe gaming, online companies (amazon, FB, google), sports, movies, hardware) and list out the info.

    The thing to get across is that computers are used nearly *everywhere* for nearly *everything* and with the proper interest and "mad skilz" can make their own occupation.

    You might also want to cover IP, copyright, patents, theft, etc.

    Maybe you can also talk about being an entrepreneur, how companies are started, what funding means, stock, and money. money money money. :)

  89. Abstract = Lost Attention by Anonymous Coward · · Score: 0

    Kids these days are more distracted then ever. They want you to teach them how to create World of Warcraft in 10 minutes from text. Kids need to know, more than anything else, that computer science is extremely complicated and it involves looking at everything they love in a completely different fashion. 90% of kids that are interested in CS lose that interest very quickly when they find out just how involved and complicated it really is.

    Someone previously pointed out that Game Testing is actually a really unfun job. And it's true, and kids need to know that. The first thing any good teacher should do is crush the false beliefs that lead so many people down a path they are not properly suited for in the first place.

  90. databases by Nivag064 · · Score: 1

    Ensure that they have some notion of what a database is, and the relative strengths and weaknesses of different RDMS's.

    For example contrast MySQL and PostgreSQL: the former is much more widely used, but the latter is more secure and has greater reliability & performance.

    I have worked with both; but I find PostgreSQL easier to work with, both as a DBA and a developer.

    Also mention normalisation, and what it means.

    1. Re:databases by Tablizer · · Score: 1

      Dude, mentioning specific brands is too much detail for that audience. You need to cover the forest before covering specific trees. Besides, when they graduate, things may be all different.

  91. Explore New Worlds by glorybe · · Score: 0

    Perhaps you might suggest to them that by the time they get out of college there will be huge changes coming ever faster and faster and it will be a strenuous but perhaps high paying path. I think we are still in the first seconds of the age of computation and expect radical progress and sudden changes.

  92. mention other languages, such as C/C++ and Java... by Nivag064 · · Score: 1

    The Linux kernel is written in C, and many applications are written in C++.

    Python is a fine language, many useful applications have been written in it. Unfortunately it does not scale well when you need to use multi core processors and multi-threading.

    I did my DipAppSCi (about half the value of an M.Sc.) using C, with a little C++. Many moons ago I also got paid to write FORTRAN and COBOL, but I would not recommend them now.

    For serious Enterprise work, nothing beats Java, and some games have been written in Java.

    Java is cross platform, scales well for complicated systems, and has awesome Just-in-Time compilers, plus extensive libraries. It also has a very good IDE named Eclipse.

    Java is now my preferred programming language.

  93. This is for the parents to decide. by Anne_Nonymous · · Score: 1

    Telling students about CS will just encourage them to try it.

  94. enough time to actually MAKE a game by the+agent+man · · Score: 1

    you have some options:

    A: talk about CS concepts through PowerPoint slides. Result: you will bore them to death.

    B: have them build a game. Yes, this actually can be done. I know this because we have been doing this with thousands of kids and have been training teachers to do the same. Here is an example activity: http://scalablegamedesign.cs.colorado.edu/gamewiki/index.php/Frogger_Design

    I just visited one of the first schools in Brazil implementing Scalable Game Design. Its working wonderfully!

  95. Well, the first thing you do... by lexsird · · Score: 1

    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. If you can't be a good chief then be a good Indian; but by all means, be apart of the "tribe" and pull your weight and help the others as much as you can.

    Second; specialize, but try to be a jack of all trades. You will never be master of all of them, but it sure doesn't hurt to try. But ultimately pick one aspect and shine at it, but don't fall out of touch with "the big picture".

    Contracts, get to know them, know yours, if you don't have one at the moment, and you are working, something is damn wrong. It's a fast moving industry, in fact humanity has never seen anything that moves like this. Traditional thinking of "lets buy the expensive house with the pretty wife and make a nest" can be like throwing a boat anchor with a chain on it behind you as you are trying to run. You need to be nimble and mobile, but if you find something good, don't be stupid, drop anchor and set up camp.

    The military AFTER you have some school isn't such a bad idea. Get as much rank as you can from the start from your education. Go for an MOS, (Military Occupational Skill) that is marketable and lucrative in today's world environment. Get the training you want/need and make some contacts, then bounce out to the private sector where the real money is. That is unless you really dig what you do in the Military and the perks are priceless, or if you think you might have "moral conundrums" working in those fields in the private sector.

    Ultimately, the big cheese, the moola, the fat bags of cash, are when you are the boss. Think beyond being another drone, think about being an industrialist or founder of your own company. You then have to be "large and in charge", and do the heavy lifting when it comes to the thinking and making decisions. It sounds sexy and exciting, but it's not for everyone obviously. There is a lot to be said about just enjoying a decent job that pays the bills and having time to have a family and/or to just goof off.

    Lastly, the world doesn't owe you a damn thing. Just because you have an education, doesn't mean the world is going to beat a path to your door because you are a "genius they can't live without." Recognize opportunities and capitalize on them. Make your own opportunities if they aren't floating by you at the moment.

    If this is too much for you to comprehend, don't stress it. Go deliver pizza, do bong hits and play your games.

    --
    Take the Red Pill.
  96. cs is not software engineering, etc by Anonymous Coward · · Score: 0

    What sort of background do these kids have?
    A fun participatory thing is to have them be a computer. One kid is the ALU, some others are registers, another is RAM, another is Disk, yet another does the sequencing. You pass information on index cards and do a simple program (generate Fibonacci sequence? Sort some numbers)

    A binary search by ripping phone books is great/destructive fun. Too bad fanfold paper isn't around much anymore, because you can print off a lot of copies, and it has nice perforations.

    So that's hardware and algorithms.

    Then you can talk about more complex things: security, simulations (which leads into games and also finance and also gambling), analysis (predicting baseball or horse racing), language translation (heh.. it's more than looking up words in a dictionary. Give them an English:obscure language:English dictionary and have fun) You can also tie to information theory

  97. Just pique their interest by Anonymous Coward · · Score: 1

    There were comments above about doing a Q&A and talking about programmings impact on society. I think that's a great place to start, and then I'd add the following:

    1) Show them examples of different types of programming. Show some programs and web pages, and then show the code behind. Don't worry about explaining the code, the idea would be to just expose them to what code looks like. It may seem boring but they'll like it.

    2) Show them some cool tools they can use to start programming. I'd suggest NetLogo (http://ccl.northwestern.edu/netlogo/), it's easy enough to pick up, instantly graphical, and comes with a diverse library of pre-written programs (simulations in physics, chemistry, biology, artistic programs, math programs and yes, a few games...). Maybe show them a quick program that does something that looks cool. You can do this in NetLogo in 5 lines of code.

    If you only have a couple short sessions you shouldn't focus on anything too deep. Get them excited about what can be done, and show them something that's easy enough for them to get into quickly but robust enough so that they can do interesting things (this is why I'd suggest NetLogo over something like Scratch).

  98. Don't forget WoW is just a big-fat database! by Dr+Black+Adder · · Score: 1

    Games motivates kids, but explaining beyond what they know it becomes really easy to lead into anything CS: databases (WoW and F.Book), algorithms (video game special effects), physics (Portal), etc. :-)

  99. Reach those it's right for, and convince them by Anonymous Coward · · Score: 0

    If you try to tell stories only about how incredibly important it is and how many people got rich off it, then you'll be doing them a disservice. The same if you tell stories to make it out like it's some kind of obscure, niche world apart. Dilbert strips and cofee mugs with programming jokes are funny, but nobody really aspires to be the bearded guy in a coffee stained t-shirt who brings a pile of cut-out dilbert strips.

    You should try to reach those who enjoy logic and structuring things mentally, and then try to convince them. For example, at some point you should take a brief and simple snippet of code that non-programming fans of logic can grasp and appreciate, talk through it over 1-2 minutes, and then about the context it fits in. Maybe if it involves making pieces of hardware talk together that would be more interesting. THEN you can talk about the benefits, like salary, and how the very best programmers fill very important functions and tend to get recognised for it.

  100. Always Learning by Anonymous Coward · · Score: 0

    I would explain to them that they will be required to learn new frameworks and technologies on the fly to create solutions. That what they learn in school is only the ground work to allow them to make good decisions when learning more.

  101. Be honest about down-sides also: by Tablizer · · Score: 1

    * Field changes too fast for experience to be valued much & requiring constant re-learning
    * Path "upwards" is bumpy in practice and programmer burnout is common. If you are not in management in about 10 years, you may face a tough future as a techie.
    * Low prestige
    * Globalization may affect you in expected ways
    * Potentially lousy working conditions and/or long hours
    * Accounting, Finance, and Law offer potentially better long-term options, even if they start lower

  102. Get an IIT degree by Baldrson · · Score: 1
    Get a degree from IIT.

    If it weren't for the guys from IIT, none of the following inventions would have occurred:

    • The Internet.
    • The microprocessor.
    • The planar integrated circuit.
    • The transistor
    • The triode
    • The electric dynamo
    • Steam power
    • The wheel.
  103. Functional programming by Anonymous Coward · · Score: 0

    One of the best way to be interesting for high schooler will be, in my opinion, to teach them functional language such as scheme, haskell or lisp. You should have a look at the bootstrap project for more information and examples (http://www.bootstrapworld.org/). This project is awesome and allows to easily bridge the gap between programming language and mathematics, in particular functions (i.e. f(x) = y not f(x) = void).

  104. Computer science or computer application? by Lando · · Score: 1

    First let me make it clear that I don't equate computer science with programming. Most programming is not very elegant and typically it has to be done by a deadline. To me computer science is more about algorithms. A programmer will work on writing a thousand lines of code, whereas a computer scientist will focus on 30 lines within the same time frame. Whereas the programmer writes things to work, the computer scientist makes things work a lot more efficiently. Programmers are engineers that take the tools that the computer scientists develop and apply them.

    So if you're taking about computer science, in my mind, you're talking about algorithm development. That being the case, I generally start my classes off by doing binary sort and search routines. If you have 3 20 minute sessions, I would use the first to have the kids figure out how to figure out if a number is in the list. Most people come up with a bubble sort routine. Second, show how binary search is much more efficient and have the kids start thinking about how to sort a list effectively. And for the last session show them merge sort and show how it works. As an application it helps to instruct my students about why algorithms and by extention computer science is important and it gives them an activity to participate in which tends to make learning more interesting and practical. You won't cover a big expanse of material, but it generally gives a good feel for a) how useful computer science is b) that figuring out algorithms are tricky and c) that it takes a lot of work. I'm not sure if you could cram everything into 60 minutes, in general it takes me about 5 hours with college students, but perhaps that will give you something to work from. The important thing for me is getting them to the merge sort algorithm, but without a reason for why you would want to sort information that could be difficult. You might just show them binary search by bringing a telephone book in and asking them if fred jones is listed and explain why searching sequentially is a bad idea. Then launch straight into figuring out how merge sort works.

    --
    /* TODO: Spawn child process, interest child in technology, have child write a new sig */
  105. Tell them it's useful in every field by rbrander · · Score: 1

    Everybody is posting about being a specialist in programming, a full-time programmer.

    I'm an engineer who also programs, and there are biologist-programmers and chemist-programmers, and accountant-programmers and salesman-programmers.

    Tell them it is generically about the "systematization" and automation of any human work that can be handled without conscious thought. That if they can program and do any kind of white-collar or technical job, they will never have to do drudge work for long, because they'll be able to automate it themselves. Co-workers will come to them for help when bogged down with repetitive work.

    I've become convinced that if more people treated the ability to do a few macros, the comprehension of a database and basic filtering and queries, all as required "computer literacy", about half the business software in corporations would not be needed.

  106. ugh by berniemne · · Score: 1

    > talking to high school students about computer science and programming > programming skills are somewhat limited to Coldfusion, PHP, Javascript, SQL and bash scripts LOL.

  107. Science vs Engineering by UBfusion · · Score: 1

    +1.

    Everybody nowadays uses the terms Science and Engineering (and sometimes their marketing) interchangeably, and it's not only plain folk or children. Academic institutions also do, because all Departments want a piece of the the cake.

    In my country there is historically a big battle between Schools and their Departments: In the mainframe computer beginnings (the 80's) it was the Mathematicians that claimed to be the foremost experts in CS. Almost immediately the Physicists came along, claiming that they are the only ones that knew how to apply CS in real life problems. Soon, the Engineering Schools got their CS Depts. and 20 years ago the first CS Depts. within Science Schools were founded.

    All these graduates still fight for computer-related jobs in the public and private sector, all claiming to have a "CS" degree and related post-graduate studies.

    In real life: A CS Dept. Professor once told me, when asked about the specs of a new PC they were ordering: "Don't ask me about what 'video card' I'd prefer, I don't really know what's inside a PC - I'm a networks expert". On the other end of the spectrum, computer shop owners and sales stuff have no CS background at all - they're just salesmen who might have been hobbyists in their teens.

    In conclusion, there's just one thing one could safely advise about "CS" and it's the same piece of advice pertaining to life itself: Beware, it's a bitch.

  108. What I wish I had been told. by Anonymous Coward · · Score: 0

    Pay scales for various jobs in the field, versus similar fields. i.e. Professor vs Project Manager vs Code Monkey vs I&IT Grunt etc.
    What your resume should look like to get the job you want.

    Then if there's still time, do an intro for iPhone or Android API and how to submit their creations to the respective stores, and Project Euler.

  109. Tell them... by Anonymous Coward · · Score: 0

    Computer science is the study of algorithms.

  110. Tell them what it is and what it is not. by prefec2 · · Score: 2

    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 ;-).

  111. Re:if they are smart, there are better opportuniti by prefec2 · · Score: 1

    I do not know how things are in the US. However, CS is considered a hard study in Germany. You have less math then in math. Therefor you have graph-theory, logic (first order logic, model logic, etc.), grammars and languages. But CS is not only theory and application of those to real world problems (modeling and playing with other peoples models). It is also a people thing. So you need people skills and you should train your people skills. You need to understand people form other domains so you can understand their models and their information processing needs. You also work in teams and need to know a lot on group behavior and group management. Programming is just one thing and it is the last step in modeling.

  112. 50/50 by onezeta · · Score: 1

    50 percent for Question and Answer. That will probably best to have them interact with you and make sure they understood your lectures. 50 percent on the topics. Most of computer science topics are all theories anyway, even programming. It is much better explained with interaction in where the students will be able to ask about and catch up with the theories by their speed

  113. vi versus emacs by Anonymous Coward · · Score: 0

    FTW

    There will be blood in the aisles!

  114. Talk about the scientific method by Johnny+Ruin · · Score: 1

    Begin like this, "How do you solve a difficult problem? Anyone? Gee, I hope none of you encounter a difficult problem. The tools used by the greatest minds in history to solve the most difficult problems in the world are available to you, too. " I'm never around kids but I have an assumption that the scientific method is not given the reverence it deserves. I think you could give a very memorable talk on this subject while working in the details of the programming life.

  115. Computer science isn't science by Anonymous Coward · · Score: 0

    Not to knock cs people, but the science part is a total misnomer. Cs is math and engineering, not science. I would suggest that you frame computer science in the context of a domain, not for it's own sake. Show how a computer takes a big problem, breaks it into a bunch of little problems and shows a user a answer to the question they asked. You could show a shot in angry birds and help them appreciate how it works as a physics simulator, then go into how the same thing can be done to figure out how to build buildings the don't fall over in earthquakes or something.

  116. Re:if they aren't asking: nothing by Anonymous Coward · · Score: 0

    They're stagnated.

  117. It's all about the women by bmajik · · Score: 1

    (or the men, as the industry tends to move towards gender parity)

    Firstly, like any profession, people have an idea of what is attractive about that profession, yet that represents some tiny fraction of people actually in that profession.

    It's already been mentioned that everyone will want to "get into computers" to "make games", but that is a tiny fraction of people doing CS, CompE, and just plain programming (not to mention IT or SQA).

    Similarly, people think they might want to be a lawyer and imagine themselves stunning juries and proving the marginalized innocent, or perhaps helping the downtrodden or just making an asston of money from rich criminals.

    But the majority of legal work is mind numbingly stupid paperwork. Almost nothing goes to trial and even less goes to jury trial. People who want to be lawyers need to expect to be loading up Word templates for wills, real estate purchases, etc and filling in the details and then hitting print.

    The majority of IT and programming folks do not even work for software pure-plays. You want to know where a lot of programmers work? Insurance companies. Banks. Large organizations that have legally required information management problems. Just like the majority of people who go into law do not spend their days recreating Perry Mason TV episodes, the majority of people who want to "do computers" do not make games and do not even work on something recognizable like Windows or iPhone. You're going to spend your time making underwriting software, or web portals that help your sales people or field agents or back office folks or whomever do their jobs more efficiently.

    If you're really good, you have a lot more choices about what you work on and who you do it for. And unlike law and most other professions, computing work is still much more a meritocracy than a seniority or priviledge based system. So that's good.

    The main thing I'd tell highschool folks is that if you have an inclination to tinker with things and are good at solving word problems, IT & software work is very safe, and tends to pay very well. And in 5-10 years when most people are over their sleeping around and getting drunk years, potential mates are going to be looking for people with stable jobs and above average financial health.

    And so unlike the people currently popular and fashionable in highschool, 99% of whom will be irrelevant history in fewer than 4 years, people who figure out how to provide value in the modern information economy will be above-average candidates for potential mates, and will enjoy increased disposable income and have an almost zero chance of facing a permanant injury or disfigurement on the job*

    So yeah, being a computer nerd now isn't the best way to find a mate, but in the future it pays off.

    *(carpal tunnel notwisthanding, although you can mitigate that by pre-investing in ergonomic seating and input devices, which frankly you should be happy to pay for out of your own pocket if you are concerned about those risks and plan on being a professional in the industry)

    --
    My opinions are my own, and do not necessarily represent those of my employer.
  118. my experience by Anonymous Coward · · Score: 0

    I've been in the same situation as you, a few years ago I was asked to give a short demonstration to high school students to get them interested in CS.
    in my opinion you're either born a programmer or you're not. So trying to coerce someone into a life of programming is pointless.

    Many programmers will get started as a child making simple and buggy games. but there are those that lack confidence or just looked at someone else's code and was so overwhelmed they just gave up straight away.

    What you're really trying to do is convince those few in your audience (who are natural born programmers) that it isn't as challenging as it appears.
    You don't need to know two years of calculus or understand everything about the language to get started.

    Today it's even easier than it was when I was getting started thanks to the internet.
    Let's say you're like 9 years old and you need to code something that depends on the distance between two objects. But you don't know the Pythagorean Theorem. Who cares? Just Google "Distance between two points" and now you know the theorem and you didn't even have to sit through a boring class to learn it.

    What I showed them was two simple programs:
    the first was a simulation of two people driving cars and buying gas. The question was, who would spend less money over time; someone who buys gas every day or someone who buys gas only when they need to, and all this while gas prices are rising on average about 1 cent per day.
    Now you can sit there and do maths and work out a solution, or you can reason it out and have a 50/50 chance of arriving at the correct conclusion, but if you have just a rudimentary understanding of pretty much any programming language you can just simulate this scenario and have the computer solve it for you.
    So I guess the lesson there was that if you know some code, you can solve more difficult problems in life, because you have this extra appendage (a computer) to help you.

    the second was a simple zombie game, all done in a console window, which resembled a BBS door game from the 80's. You just walk around as zombies follow you and you need to shoot them. The point of this was to show the nature of object oriented programming as (during the presentation) I was able to get into the code and make a new weapon (a rifle) by inheriting from an existing one (a gun). Although most of the students weren't really interested in the code and just played the game, there's one or two who seemed curious about it.
    It's those few you're really there for.

  119. You could channel Scott Adams... by Medievalist · · Score: 1
  120. Not just programming by Anonymous Coward · · Score: 0

    Computer programming today has become quite diverse. For that reason, the future of a lot of programming jobs lies not just in knowing programming, but also being an expert in some subject domain. An example of this is bioinformatics. To do a really good job, the programmer needs to know not only programming, but the relevant biology as well. A deep understanding of what the program is for and why is needed.

    I would tell the kids that yes, they should study computer science, but that they should also consider what area they want to work in, and make sure that they have relevant knowledge in that domain.

  121. Teach them concepts by Anonymous Coward · · Score: 0

    If these are kids who haven't had any programming experience at all, then I think it would be useful to give them a taste for what a program is like.

    Have them "write a program" to get you out of the room. Tell them you'll understand the commands TURN RIGHT, WALK FORWARD FEET, OPEN DOOR, and so forth; and they can string these commands together as a "program" for you, but you will interpret them completely literally. (Like, did they remember that you won't be able to open the door inward if you're standing right up against it?)

    Then, have them write a program to get you out of the room no matter where in the room you're standing, no matter what direction you're facing at the start. Introduce them to IF ... THEN, REPEAT ... UNTIL, and other such concepts. Maybe even subroutines for commonly-repeated instructions.

    After twenty minutes of this, some kids will be bored, while others will be excited. This is how you'll know who might have a future career in computer science.

  122. game development is more than CS by peter303 · · Score: 1

    To properly do game development you need to know mathematics, physics, are appreciation, art history, literary analysis and business development in addition to computer science. In short they better learn their non-computer science and humanities subjects as well as they can in addition to CS.

  123. Keep your options open by technomom · · Score: 1

    Computer programming, software engineering are great and if you keep your skills up, you can do it for a long time. But always be mindful that there are a lot of people who do it well and these days, a lot of very young people around the world who will do it for a lower salary than one might find comfortable in the West. If you want to raise a family on the salary you will make in the software industry, be sure to keep up not just your technical skills but your leadership, writing and project management skills as well. Making machines do stuff in an automated way is impressive, but a lot of people can do that. Leading a large group of people to produce great works is very impressive and much harder to accomplish than you might think.

  124. Computer Science = applied mathematics by mrnick · · Score: 1

    At the core of Computer Science is Applied Mathematics but I didn't figure this out until I started graduate studies. Undergraduate was all programming.

    Rarely what someone studies at university becomes what they are employed as. I don't work as a computer scientist, programmer, or mathematics. I work in IT, it's all a mater of circumstance.

    --

    Encryption: I may not agree with what you say, but I will defend your right to encrypt it...
  125. Other people had your problem too ... by Anonymous Coward · · Score: 0

    ... and created a fascinating curriculum: CS Unplugged (http://csunplugged.org/). It gives you the opportunity to express the core of computer science without any computer. There are excercises for algorithms, binary numbers, information threory, ...
    You have to adopt the material for the aimed age. Most sections in the teacher's book explain extensions to the original questions raised, so you can make it as complicated as you wish.

    And if you have the chance to get Tim Bell (New Zealand), the original inventor, do it. This guy knows how to make a good show.

  126. IT'S A TRAP RUN!!!!! by Anonymous Coward · · Score: 0

    What's so amazing is how the smartest people in the world can be so stupid. Computer Science people are smart and logical except when it comes to their own lives and careers. Being chained to a terminal working like a slave and being smart enough to see the "ruling class" of CEO's and sales people getting ahead while you toil at all hours of the day and night his truly sad.

    Without the CS majors many of these companies would not exist yet there are armies of stupid CS majors ready to line up one after another to be exploited for low pay and crappy benefits and treated like a commodity.

  127. Remember, these are Highschool Students. by Gyorg_Lavode · · Score: 1
    They aren't thinking of how their job fits into the workings of the world. They're trying to find something they can get a lot of money for thats fun to do.

    Along that line, I'd touch on ways they can start working on their own on programming. You could cover different areas each time:
    1. Game programming. Find them a simple environment for programming (preferably Drag and Drop with a bit of coding to glue it together) and show them how they can get into it.
    2. Mobile Programming. Show them what it takes to build a mobile app. Show them how they could build a mobile app that will send obfuscated text messages, (say ROT13 or such).
    3. Security: Show them how to use a toolkit to create an exploit. Show them how you can now make emberassing popups show up. Now show them how to patch the program or detect the attack and pop up something like "we're being attacked!".
    4. embedded programming. Show them how to build a motion sensor that tweets to them when someone is coming up the stairs or such. (IR sensor, wifi, and some arduino code.)

    There's more than enough time for them to learn about the realities of life. Right now the goal is to show them that they can enjoy and show off their STEM work. Hopefully some of them will take it to heart and enter the field.

    --
    I do security
  128. Re:if they are smart, there are better opportuniti by prgrmr · · Score: 1

    I was, using math as a guideline, trying to say that if someone in high school is considering CS, they should really first consider something like physics or chemistry or engineering; and if they cannot handle doing the math for any of those fields, they should reconsider why they are looking at CS.

  129. Check Let Us Talk Science by Anonymous Coward · · Score: 0

    I do presentations for high schoolers (10-20 minutes) about potential career in Engineering, Computer Science, Financial engineering ..

    The best is to use videos to keep their attention.
    Use a game or a simulation
    If you ask a question, give them some options. They are usually intimidated to be wondering
    Give them credits
    Tell them what they can do with this knowledge you are sharing with them