5 ms·
I have a master's in computer science, worked in industry for a couple of decades, have been teaching high school computing for the past decade, and think of my
by gshubert17 11y ago
I have a master's in computer science, worked in industry for a couple of decades, have been teaching high school computing for the past decade, and think of myself as a "real" computer science teacher.
At the high school level, I think it is better to teach computing as a broad-based life skill, not as a prerequisite to the AP exam, college major, or programming specialization.
Most students of history in high school won't be historians; most students of literature won't write great novels or screenplays; and so on. I think computing is like math and science generally, in this way.
I use Kernighan's "D is for Digital" book in some of my classes. He wrote it for an introductory college course for non-majors, and it works for high school students too.
- staticint 11y ago> Most students of history in high school won't be historians; most students of literature won't write great novels or screenplays; and so on. But by the same token, the economic effects are quite apparent. It takes a very special individual to rise above the pack in history and literature to turn that into a successful career. For most, with so much competition, it will never be more than a hobby. Anecdotally, I have a couple of friends who are published authors and I would be surprised if they are ever able to recoup the cost of the time they put into it, let alone sustain their costs of living. Programmers are fortunate right now that the skill is relatively rare amongst the general population and when demand exceeds supply, prices rise. The concern isn't so much with everyone being a programmer, it is that only a few will be able to make money at it when the supply starts to exceed the demand, much like careers in history and literature today.
- otakucode 11y agoYou can already see this happening a bit in the online freelancer marketplaces. It is, apparently, easy to find people to write code for $1 or less per hour. I have doubts about what kind of quality one might get for that price, but the project listings I see, regardless of how low the offered price is, always have dozens of proposals.
- ethbro 11y ago> The concern isn't so much with everyone being a programmer, it is that only a few will be able to make money at it when the supply starts to exceed the demand, much like careers in history and literature today. I thought a lot about this when I got my first job with a BS and was making more (inflation-adjusted) than my mother with an MS ever made teaching elementary school. Why do programmers make so much money, relatively speaking? And the answer is that supply and demand of qualified workers in a specialization is only part of what defines your income range. The other, usually dominant, component is "What is the real value of my work product?" A teacher's real value is the teaching they've provided to X students. In a physical setting, X has a ceiling. But say, ceteris paribus, we compare to an online teacher who can teach Y students, where Y>X. The online teacher's employer can afford to pay him or her more, because they have created more real value ($value/student * greater number of students). Even if the work they do is no different. The miracle of computing systems is that they leverage output. "Do" a calculation once, and you can repeat it as many times as you want. So, accepting that computers increase productivity generally speaking, what do you think the real value created by the people who can program the things that leverage a worker's value is? In essence, we get a piece of the following pie: total_created_value = ((existing_worker_value * improvement_multiplier) - existing_worker_value) * number_of_affected_workers Where workers can be actual people or just systems But the key is that our value scales with number_of_affected_workers, with limited additional effort on our parts. So if we can make an improvement for 1,000 people, there's always going to be a decent living in that -- because the consumer can afford to pay for the work. They may choose to save that money themselves, but in my experience people are willing to pay to get better product (more reliable, on time, more features, etc etc).
- sloppycee 11y agoComputer science is the science of the 'theory of computation' (essentially mathematics): proofs of correctness, complexity theory, numerical methods, symbolic logic, etc. I am glad that your course is called 'computing' and _not_ computer science, since they are usually misconstrued (as in this article). I am all for teaching children how the digital world works, and introducing them to the concepts of electronics, programming etc. but it call it what it is. Computer science != programming. Programming is an applied skill across nearly all scientific disciplines. Physicists, climate researchers, statisticians, etc, all require programming to do their research.
- zokier 11y agoI bet you love this "Introducing AP Computer Science Principles" video: https://www.youtube.com/watch?v=S1vFrz4NETg https://www.youtube.com/watch?v=S1vFrz4NETg
- WoodenChair 11y agoCompletely agree with your general sentiment "Computer Science != Programming" but disagree with the fact that you seem to discount it as a part of computer science all together. Computer science is all the things you listed and also includes a lot of programming in any applied capacity of it. I agree these courses are often mislabeled and it does the discipline a great disservice, but programming is a part of a computer science education and programming language theory (which you can only really learn well from programming) is a part of computer science itself. How else can you put algorithmic theory and data structures into practice? It's just not the whole thing. Computer science people on the more mathy side of the spectrum tend to discount applied computer science completely, and that annoys me. Maybe we shouldn't call a plain coder a computer scientist - but anyone who regularly applies theory in practical applications in a programming context and occasionally runs experiments should be considered an applied computer scientist. For better or worse, a big part of studying computer science at the undergraduate (and presumably high school level) is programming. And programming is a part of computer science, but of course you're right coding/programming != computer science and that misconception is a problem.
- 11y ago