Ask Slashdot: What To Tell High-Schoolers About Computer Science? 315
First time accepted submitter lsllll writes "I got drawn (without my intention) into three 20 minute sessions, talking to high school students about computer science and programming, and am wondering what are some of the things I should talk to them about. I have previously done the same thing for a forty minute period, and all the students wanted to talk about game programming. My only game programming experience dates back to the late '80s and programming a few games (some which ran on top of Novell's network) in Turbo Pascal. Since then I have done lots of database design, web interface programming, and systems configuration and integration. I am pretty fluent with Windows and Linux, but my contemporary programming skills are somewhat limited to Coldfusion, PHP, Javascript, SQL and bash scripts. Should I talk to them about different aspects of computer science, what it's like to work full-time in the computer industry, or do I make the sessions just question and answer, since 20 minutes might not allow me to talk and do question and answer?"
Tell them this (Score:2, 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.
Re: (Score:2)
Agreed with this. The one thing I learned in starting my career is that I don't like programming full time for someone else. Especially when they don't have a decent workload to throw my way. At that point I switched to various duties under the sys admin part, then got into network administration. Now I've got too much to do but love my job.
Re:Tell them this (Score:5, Insightful)
If they are passionate about it it is a fun and rewarding career, with lot's of job opportunities.
They won't get outside much, they will need to stay active after work to not get fat, and that programmer != sys admin.
I'd especially tell them what it ISN'T. There are a lot of misconceptions about what computer science actually is and a lot of is perpetrated by well-meaning adults who tell kids "go learn about technology" and glom computer science into that extremely broad category of "tech".
I work for a youth organization, and I always have kids watching what I do and going "Cool, can you teach me how to hack?" Invariably, they get disappointed when I show them how to ssh into a remote machine and recompile the kernel instead of breaking into a DoD mainframe and launch missiles at China or something. And anytime I do try and generate interest in actual programming, it is hard to get past the "How do you program games?" point. Let's work past printf and scanf first, junior.
It's a toughie. IANACS, but I've taken programming and numerical theory classes and it can be tedious and detail oriented. It's hard to put that up against a generation who has a lot of instant gratification when it comes to their experience with anything technology related.
Re:Tell them this (Score:5, Interesting)
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.
Re: (Score:2)
A 3 credit Computer Science course took more than 3 times the effort of a 6 credit 'Management of Innovation' paper I did at the same level!
Debugging is often very tedious and time consuming, but you still need to stray awake and keep your wits about you.
If you can not tolerate being outside your comfort zone for more than a minute, then don't attempt CS. At times, I spend days outside you
Re:Tell them this (Score:4, Insightful)
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.
Re: (Score:3)
When the talk starts with kids asking about programming games, it's not so hard steering it towards actual computer science. Because game engines are nothing but linear algebra, general algebra, graph theory, artificial intelligence and advanced image manipulation. That's pretty much computer science in a nutshell. Except that actual computer science is about inventing new stuff in those areas while games are mostly about applying what we already know.
BTW, I'm sure there's a lot of cool stuff you can do wit
Re: (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 t
Re: (Score:2)
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
Re: (Score:3)
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?
Eheh (Score:2)
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
Re: (Score:2)
This won't help OP, b
Re:Tell them this (Score:5, Insightful)
Telling them that programmers make good money is definitely a way to generate interest. Computer Software Engineers [myplan.com] make about twice the average salary in the United States and salary growth has been consistent for years. It probably wouldn't hurt to point out some of the folks who have made a fortune in the software business.
I wanted to program games when I was about their age and still do. I remember that I found the prospect of learning a language quite daunting and didn't understand why all the cosine/sine/tangent functions were necessary. Having since programmed some crappy little games, I realize that the motion of objects on a screen is all about trigonometry or geometry. Had someone explained to me back then why I would need all those weird mathy functions, it would have done me a great service I think. Uh, I'm rambling. I guess my point is that math is extremely helpful when programming games. You might want to also explain how stuff like databases or other technical stuff are really important and useful too. For example, storing high scores (or inventories of weapons/armor/whatever) are easily accomplished with a database. If you spend some time explaining why they have to learn the "boring" stuff by giving examples of how it's used, they might be more inclined to slog through it to actually become a game programmer.
Another thing they might find extremely useful to know is what technologies might get them started without having to shell out money for an integrated development environment or a server. For instance, all you need is a browser and a text editor to start working with HTML and Javascript. If they want to write a game, perhaps you could demonstrate some simple code that listens for keystrokes and moves a DIV tag or image around the screen.
And lastly, you might want to point out how there's a huge difference between being a computer scientist and just building websites for a living. It can be a simple vocation or it can be an abstract, theoretical endeavor.
Re: (Score:2)
Re:Tell them this (Score:4, 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.
Re: (Score:2)
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.
Re: (Score:2)
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).
Society and CS (Score:5, Interesting)
Re: (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.
Re: (Score:2)
I think it would be a good idea to discuss with them how computer science effects different aspects of society. I think the reason they like to focus on game programming is because that is the only exciting thing about CS they soft of understand.!
I wish I had mod points for this.
The stock market wouldn't be what it is today without computer science! Er, wait. Maybe you shouldn't mention that. How old are these kids, and are they likely to be more Tea Party or Occupy Wall Street types? :P
Re:Society and CS (Score:5, Informative)
I got heavily into Game Dev during school, and it made for a more fun way to learn intricate programming and neat tricks to get the code to do things you never imagined you'd need. There are some aspects you will need to go deeper into outside of the game mechanic side of things, such as machine architecture and extremely low-level coding, but all of the game-related school programs I have seen include courses for these other fields.
It also gives you a great understanding of the graphics pipeline, 2D/3D math and collisions, physics, and calculus. This means that - while it's not usually necessary - you can build your entire application engine from the ground up if you need to, instead of vaguely understanding how a third-party library or API works.
If you REALLY want to go program, Game Dev is a fun way to learn CS.
(IAACS)
Show them cool things (Score:2)
Don't go for gaming. (Score:5, 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.
Re: (Score:2)
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.
Re: (Score:2)
I don't know what studio you work for, but that is not my experience at all. Yes, the hours are long, but instead of being tedious they are filled with "Oh shit, how do we make this happen without rewriting about 10 pages of code?"
It is a difficult, time-driven industry, but it is a lot of fun if you really want to go that route. Don't take into it lightly though, the 100 hour work weeks are not far off, and it is frequently shotgun programming to fix a collision bug for 5 hours straight.
Testing is typicall
Re: (Score:2)
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.
Re:Don't go for gaming. (Score:5, 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).
Re: (Score:2)
Wouldn't it be more efficient to have the machine do those scripted tests instead of a human?
That's what they are for.
Re:Don't go for gaming. (Score:5, Insightful)
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.
Re: (Score:2)
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.
Tell them the truth... (Score:5, 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.
Re: (Score:2)
Then steer them towards jobs in high finance and save them a life of grief
You're not from Greece, right?
Re: (Score:2)
Then steer them towards jobs in high finance and save them a life of grief
You're not from Greece, right?
It's not the people in high finance that are going to get the hardest shafting in Greece, I assure you.
Take portfolio managers for example. What other job can you lose boat loads of money, not hit your target and STILL take home a bonus?
That would NEVER happen in any field of computing.
"Four top executives of the Canada Pension Plan Investment Board pocketed nearly $7 million in bonuses this year despite losing $24 billion of taxpayers' money in bad investments, according to the board's annual report relea
Re: (Score:2)
Re: (Score:2)
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.
Re: (Score:2)
They'll arrive in high finance just in time to be up against the wall, good career choice!
Re: (Score:2)
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.
Re: (Score:2)
Re: (Score:3)
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:
Re: (Score:2)
"Tell them the truth...."
You mean that they'll never get laid?
(I kid, I kid!)
((Not really.))
(((Heh)))
Quote the Good Book (Score:4, Informative)
Dilbert, Javascript, PHP, Dilbert (Score:5, 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.
Programming? (Score:5, Insightful)
Re: (Score:2)
However, you need to know to program ...
1, to get your CS degree
2, to do anything with your degree outside of academia
Re: (Score:2)
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.
Re: (Score:2)
Programming is a huge part of Computer Science. It's not all of it, but most of the remaining parts of CS which aren't directly programming related are in support of programming.
A computer is something that does exactly what it's told, and programming is the art of telling it what to do. Understanding how the chips inside work, and how the numbers are moved, stored, and processed is neat, but is secondary to the primary skill of being able to manipulate the user-side of the computer in any way you'd like.
Re:Programming? (Score:5, Insightful)
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.
You're the adult_ (Score:2)
...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
Cover the field (Score:2)
Show them the Beauty and the Joy... (Score:2)
Re: (Score:2)
"Visual Programming" is the opposite of Computer Science. Telling someone those tools are related to CS is like correctly hooking up your cable modem and declaring you are a networking genius.
If you want to get some real, visually-integrated programming going on, I recommend something like C# or VB.NET. The code side of things is a lot easier than a non-managed language, and there is the visual element of "Drop this button where I want it on the form, and then double-click it to code what happens when someo
Computer Science as a Problem Solving method (Score:3)
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.
Re: (Score:2)
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
Re: (Score:2)
Re: (Score:3)
If CS is the 'theory' (as in piano theory, not big-bang theory) behind programming, then the programming side of things would be what to show them. The high-level conceptual stuff is great for developing algorithms and solving theories(the big-bang type) if you have a lot of background and a firm grasp, but actually seeing something come to exist from a string of text is what really yanked me into the CS world big time.
The first time I compiled an actual non-interpreted .EXE and was able to give it to a fri
Ethical and political issues? (Score:2)
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...
Re: (Score:2)
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.
KISS (Score:2)
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.
Re:KISS (Score:4, 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.
So tell them about game development (Score:2)
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.
Re: (Score:2)
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.
Do the Q&A (Score:3)
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.
Re: (Score:3)
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.
Re: (Score:2)
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.
Re: (Score:2)
I might have been unnecessarily harsh. :)
thoughts (Score:2)
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.
"Don't bother" (Score:2)
"Computer Science" is a misnomer (Score:5, Insightful)
I doubt a high-school student really cares about the "theoretical foundations of information and computation" [wikipedia.org]. As you suggest yourself, your audience is more interested in the things they can DO with computers--- which is more about Engineering than Computer Science.
I suggest that you spend the first 5-10 minutes helping your audience see the fact that they are literally surrounded by computers, and that SOMEONE needs to learn how to program them. The real excitement in computing is found in embedded systems, not games or tablets. But unless you get people to see all these invisible computers, they have no idea that it's a viable and meaningful career choice.
Then give them a demo of an Arduino, preferably one connected to the guts of an R/C car or the like. Something tangible. Of course, if you can't do this yourself then you have an obvious skills gap that needs to be addressed.
After that, leave the rest of the presentation to your audience. You will not have any trouble filling the time allotted, I assure you.
That CS is not "programming" (Score:4, Insightful)
Re: (Score:2)
Re: (Score:2)
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
Easy. (Score:2)
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. :-)
Tell Them The Truth (Score:2)
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.
CS != Programming != IT (Score:5, 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.
Re: (Score:2)
That definition of "IT" is local. In other countries, IT encompasses all information technology; from the highest-level algorithmic design to the lowest-level "my printer doesn't work-fix it" job.
math (Score:4, Informative)
if they are smart, there are better opportunities (Score:2)
Hello World (Score:2)
Tell them it's OK, but no longer great. (Score:2)
Tell them this:
Information Technology is a lot like plumbing and electrical work, except you don't get too dirty, it's not dangerous, and it's non-union. You run pipes, hook them up to boxes, and get frantic calls to fix stuff that breaks. Lots of jobs, the pay is poor, and you get little respect. 2-year college plus specialized courses plus OJT.
Computer science is about the theory behind how computers work. You need to be good at math for this, and actually like math. And you need to go to a good scho
I Like The Hands On (Score:2)
20 minutes isn't a whole lot of time, but if they want to talk about Game Pro
McJobs (Score:2)
CS degree, or (Can I get a job?).. (Score:2)
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!
CS is really problem solving (Score:2)
Problem: how to predict the water flow over different shaped nuclear fuel rods
Approach:
Solution: which approach gives the easiest way to tweek a shape?
Problem: Predicting weather
Approach:
Your experiences (Score:2)
Required Reading..... (Score:2)
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.
Keep it fairly abstract (Score:2)
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
Random thoughts on what to tell kids (Score:2)
Tell Them to Learn Math (Score:2)
Anything not allowed (Score:2)
Hacking. Porn. Drugs & alcohol howtos. How to bypass to censored websites. Being free from ones parents. These are the things a kid is interested in. These are the things you won't be talking about.
However, they'll be plenty of kids interested in these thing. If they think you are just alluding to any of those things they will stay on in lunchhour, even if it's mixed in with more mundane stuff. But like a granny who gives the grandchild sweeties, be careful.
Well, the first thing you do... (Score:2)
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.
Tell them what it is and what it is not. (Score:3)
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 ;-).
Re:if they aren't asking: nothing (Score:5, 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.
Re: (Score:3)
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".
Re: (Score:2)
what do you teach high school students about sewage networks?
The first rule of civil engineering "Shit flows down hill."
Re: (Score:2)
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
Re: (Score:2)
Re: (Score:2)
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.
Re: (Score:2)
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, Amaz
Re: (Score:3)
And then you'll blame the hardware when something's too slow
Or the guy who quit last week.
Re: (Score:3)
Don't be silly. They already know that.