Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
An effort to bring computer science to all US high schools (aboutamazon.com)
105 points by rbanffy on Sept 5, 2018 | hide | past | favorite | 90 comments


I'd be fine with this if schools taught computer science like art. Essentially a place to build and make cool shit. Unfortunately, I could see it becoming more like how schools teach math, a bunch of rote steps that only a fraction of the class likes because they're good at it. Don't get me wrong, I like math, but most schools are unable to understand the creative, problem solving aspect of mathematics.

I was fortunate enough to go to a high school that had an amazing computer science curriculum (8 semesters worth of classes). One really intelligent decision the department made was to not just mimic a college curriculum. After all, why teach something kids will learn a few years later? Instead, they mixed in some offbeat courses. They had a software development course that taught Python and basic web dev. They had a graphics course where you built a graphics engine. They even had an intro course with Racket. It's unlikely other schools will be able to replicate this exactly, but I like the concept of fun over "usefulness".


8 semesters of CS in HS is serious business. I recall growing up and going to school 94-98 that we basically had a keyboard class, and some classes that taught Lotus 123 - which was kinda hilarious since I was using newer stuff at home.

At the time at home I was also writing Basic, C programs - if I had a CS course it would helped bootstrap my learning a lot better.

My dad kept saying at the time that there probably wouldn't be any programming jobs when I was older because AI was on its way to replace humans. And that was kinda wildly spread knowledge (remember this is basically quasi-pre-internet days).

Every CS course I took in college was an easy A at that point. I didn't go beyond my BS because as many of us know, the industry was calling. And I already had 2 jobs (one self-owned web development company) and worked for another company.

Zooming forward to today, I absolutely believe we won't have AI replacing humans yet - so absolutely think every HS should have a curriculum like yours if not even more aggressive. Then push a BS in CS to be more like an MS in CS. We really do need to make such advancements because, well, all other jobs are being eaten by software.


>> every HS should have a curriculum like yours if not even more aggressive.

Everyone thinks that their field should be better emphasized at highschools. I think kids should get some background in law (not laws, law) given they will have to go on and obey laws for the rest of their lives. But I know that isn't going to happen. I used to teach 2/3rd year university kids. Highschools need to spend more time teaching kids how to read because, atm, they aren't. I was facing people in their 20s who had trouble reading more than a page or two at a time, who couldn't string together sentences into coherent paragraphs. (Also, basic numeracy.)


I once knew a guy who thought that CS or programming at least was going to be the new glue for ALL industries. So even if people end up specializing in law, CS will be useful. He told me that about 15 years ago.

But yes, definitely agree with you, and it can start with basic contracts, implied and written.

For my 2 cents, if there's one thing we need to teach in schools, it's being nice. No one is "nice" anymore, except for innately nice people. Everyone seems to be out of niceness. I LOVE meeting people that are 50+ because, well, they are nice.

It used to be something inherited from parents, but it just keeps slipping generation to generation.


I think most are less obnoxious about it.


> At the time at home I was also writing Basic, C programs...

Out of curiosity, how old were you then?

And if you were advising a school on a progression, how young would you start teaching various topics? Like touch typing at age 5; sequences of commands, functions, conditionals and simple looping at age 6, used for solving puzzles in about 10-20 lines of code; expand for solving puzzles in about 20-30 lines of code at age 7, and so on.


Got my first book on QBasic just before I was in middle school, but can't remember my age, but probably 11 or 12. I was getting into C when high school started.

I wouldn't know what age to put kids through that - I don't have kids, but I know they are already exposed to computers much much earlier than I was. But 6,7,8 still feels slightly too young for me for that kind of comprehension.

And just to edit: The only requirement to this stuff is focus and the curiosity to learn. So younger aged kids may very well be adept so long as home life, etc.. are stable in that regard.


It's funny, because by the time I was 5(late 80s), I was always going on the computer a couple times a day, I now have 2 kids of my own, who are older than 5, who don't touch the computer at all.


> I'd be fine with this if schools taught computer science like art. Essentially a place to build and make cool shit.

I worked with a non-profit that attempted to pitch exactly this to state governments, using game development as the framing. We ran summer programs to gather data while pursuing funding, and it was fantastic. Kids who had no interest in programming, logic, or physics bought into it in the context of building a level. Kids who wanted to code but had no interest in art, music, or writing bought into it in the context of creating a story.

Funding for an in-school pilot passed the state legislature, but the governor line-item vetoed it. Good old Bobby Jindal.


Sounds like you went to a good high school. Mine was a terrible high school that offered 0 computer science classes.

>One really intelligent decision the department made was to not just mimic a college curriculum.

It would have been GREAT if my high school even mimicked a college curriculum. We barely had any AP courses & I think it would haven't been a surprised if you didn't go onto college from my high school. You re definitely speaking from a place of immense privilege and it's amazing your school offered that.


> I could see it becoming more like how schools teach math, a bunch of rote steps that only a fraction of the class likes

I would worry more we're just creating students trained to work for Amazon.


What’s wrong with working at Amazon?


Sounds like an amazing high school computer science experience. Which state was this?

My high school has exactly one CS course (AP Computer Science) that teaches more mathematics than computer science. This is something I would love if it existed at my school.

I've been currently self-teaching CS for the portions that seem relevant and interesting, such as ML/DL, algorithms, and data structures.


Pure CS is math (a form I find easier than other branches). You'll be much better if you learn the fundamentals.


New York. It's not a hard school to guess. In fact, the teacher who started the entire program is on Reddit (maybe HN too). I'm extremely fortunate to have attended it.


Brooklyn Tech most likely :). Mr. Turner?


Haha you're very close. Not Tech though ;D


Another one for the Z team?


Not the other guy, but I had at least one CS per semester starting in 6th grade at magnet programs in Montgomery County, MD. They were math, science, and CS magnet programs, and so we always took at least one of each each semester, with various additional electives available.

My high school registered its domain name in 1990 (mbhs.edu) to give you an idea of how on top of the ball they were.


That sounds like an awesome curriculum! How recently did you graduate. It's been under 10 years ago for me and I didn't hear of any nearby schools offering any CS, I was always afraid of it until midway through college when I took a 100 level survey. Wish I had those opportunities earlier, probably would have saved a lot of money.


I agree. If you inspire kids with a practical creative outlet they will be more inclined towards the more rigorous aspects of software design.


What school was this?


Did you go to TJHSST?


Should we be calling this "computer science", or just "computer programming"? After all, those two things, while related, are not synonymous. And I'm not being pedantic, I'm really wanting some clarification!

A true computer science education involves a study in multiple areas, from discrete math, to computer architecture, to operating systems, to algorithms, to finally, both as the pinnacle and the essence of the subject, theory of computing.

Any university would be expected to have these classes as part of their core curriculum for a CS degree, otherwise people begin questioning the rigor of the program.

Obviously, if we are talking about HS rather than University, the subjects are scaled back for necessity. But the content still needs to be there. So are they talking multiple classes, or a long series of classes that will eventually address all of the aforementioned areas?

I'm all for everyone learning Computer Science. I just want to make sure that we are talking about the same thing!


The public has no idea what CS is. It happens to be the "hot" college major right now. Kids who are potentially interested in computers, and are told that they have to get a college degree in something major in CS. That's the extent to which it's understood outside of the CS community.

Personally, with two school-aged kids, I'd be satisfied to see a basic programming course in the K-12 curriculum. This could serve a number of purposes, even short of launching kids on a CS career path:

1. Find out if you really like programming before you spend 4 years studying CS.

2. Find out how people actually do things like science and math. A school STEM curriculum that is devoid of computation misrepresents the topics that are being taught.

3. Introduce kids to a rip-roaring hobby. After all, we teach music for pretty much this reason.


These days, a basic programming course would likely involve TI calculators or office software automation. Those are the only common usages of basic.

Office suite automation is actually important for business, particularly involving spreadsheets.

I give the next priority to octave (Matlab), bash shell scripting, and possibly a statistics-oriented language like R or Julia.

Most schools seem to start with java, python, or javascript. I'm not loving these choices. The stuff mentioned above is probably more useful for people who won't become professional programmers. For those few who will, rust and plain old C make some sense, but there are unlikely to be enough suitable students to make this a reasonable thing to teach.


Aha, I meant "basic" as an adjective. Oops. ;-) You're quite right. Adding to the irony, my first programming course was actually in BASIC.

I'd go with Python. I'm seeing it displace Matlab in the scientific world, and it has "something for everybody," making it potentially attractive to students who have odd interests such as music and art.


The trouble with Python is that it is an unfixably slow language that is too tempting to use for serious projects. Little prototype projects tend to turn into production code, and by that time there is no hope for a rewrite. Almost nobody makes that mistake with something like bash, so the slowness isn't such a hazard. Python also suffers from runtime syntax errors. Again, this is no big deal for little programs. Python has just enough syntactic capability to lul people into using it for projects that really need a language with compile-time type checking and code generation.

Much of the business world runs on spreadsheets, so scripting those is actually useful for students who will mostly not become professional programmers. It so happens that spreadsheets still use basic.


Interesting points indeed. And I'm certainly not an authority on languages. My background is that I'm a scientist who happens to use programming as a problem solving tool.

My feeling is that you can be somewhat relaxed about language choice at the K-12 level. People are too concerned about "useful" and "career" skills, but a college bound 8th grader is almost a decade out from the start of their career. That's enough time to go through several languages, computing platforms, and career plans. In that time period, I went from wanting to be a professional musician, to starting grad school in physics. ;-)


> A true computer science education involves a study in multiple areas, from discrete math, to computer architecture, to operating systems, to algorithms, to finally, both as the pinnacle and the essence of the subject, theory of computing.

Similar arguments could be made for physics, chemistry, and biology. But we still say that we teach those subjects in high school, even though the depth and breadth of material is hardly what you'd expect from a university or college. The only broad and deep courses in K-12 education (US-centric descriptor) are math, social science (history, geography), language arts (English-language literature, writing). And none of those really go that deep, or that broad.

We can identify the initial elements of CS that everyone takes before going deeper: Introduction to algorithms and data structures, and some logic/discrete math courses.

Logic is technically covered (or used to be) in geometry courses (in the US). Discrete math presently has no place, so this could be improved. The introduction to algorithms and data structures part is barely separated from programming 101. The difference is that a programming language course (Python 101) is going to go too deep into the weeds of Python and not cover topics that are portable across more languages. An algorithms course should be more portable (at least across a class of languages, like across imperative languages or OO languages).


Having a 'computer science' class that teaches programming makes about as much sense as a physics class on rulers and stop watches, a chemistry class on test tubes or a biology class on petri dishes.

High school classes in the other sciences manage to convey some of the breadth of the subject while laying the absolute foundations for further study.

The only non-incidental part of computer science are the theory of computation, the hierarchy of languages and translators/compilers between various languages. Not one pre-university program teaches these, and in recent years many university courses don't teach these either.


Computer science consists of a large number of things, theory of computation is part of it. But so are algorithms and data structures.

Practically speaking, the latter (algorithms and data structures) are the most accessible, and allow you to explore the former. Even if we think people should be taught how to express these concepts with a pseudocode, they're still learning to program (in a vague sense). But they can't explore the ideas of CS, outside of a formal approach if they don't program (pseudocode or actual code).

And the formal approach is not understandable (or as easily understandable) without a practical experience with the topic. Do you honestly believe that we should teach students category theory and abstract algebra before we teach them high school algebra? Or perhaps high school algebra before arithmetic? If they have no number sense, they won't be very effective in high school algebra. If they have no sense of the structure of algebra, they'll have a hard time developing an intuition for the more abstract algebra and math concepts.

The same is true for CS. I can sit down and teach someone the hierarchy of computational mechanisms (finite state machines, pushdown automata, Turing machines). But what good is that if they don't understand what those machines actually express? Understanding that regular expressions (not regex) are used to tokenize text, and that PDAs are used to parse text is a great practical introduction to those concepts and provides them with an intuition that they can then use to generalize those machine models to other structures.

So pick a point to start, and work up. Don't start at the formal level and expect it to be effective (unless the students already have a sufficiently advanced background, like a senior university math major could probably start with those machine models and work towards their applications, rather than the reverse).


"Computer science" is where children are put under pressure to produce a publication before the end of the semester. It's what computer scientists do most of the time.

"Computer programming" is where children are made to glue existing pieces of software together; plumbing with data so to speak. It's what computer programmers do 99% of their time.

I'd say call it "sequential algorithms", so children can learn about the essence of the matter. It could be part of a math class.


I would argue that a majority of people who go to school for computer science actually want to learn computer programming. I would also argue that neither are really needed for the average high school student and computer science isn't really even needed for the average professional programmer. I would fully support giving kids the option to study either as an elective, but they are simply not needed to be a valuable member of society.

If you are really adamant about high school kids learning programming, I might suggest some type of combination statistics and python/R class. Society suffers a lot more from the general populace's ignorance about statistics than computer science, programming, trigonometry, calculus, etc.


I think it could be more beneficial to give classes in what we would have previously called "Systems Administration", or the "Ops" portion of "DevOps". It feels like too much focus has been put on learning how to code, which is likely not a skill that a majority of people will ever use again. But it is very likely that they will have to maintain their own computer network at home, and understanding how to administer their systems, basic networking concepts, how to troubleshoot, basic security practices, etc. would be far more useful in their daily life in the future.


Totally agree. The expectation should be clear from the beginning. Programming while important(actually an essential tool) is only a small part of CS curriculum. A little bit of discrete math, algorithms and overview of computer architecture/OS at higher level should lead to a well rounded program.


What if we called it something like "Computer Arts", "Computer Ed", or "Computer Shop" (a la Sex Ed, Phys Ed, Wood Shop, Metal Shop) and treated it less as a science at this point, and more like we treat vocational or elective courses? Focus less on the programming aspect, and more on fundamentals of logic, how to troubleshoot problems, understanding the abstractions, how a network works, basic security practices, how to use a command line interface, general programming _concepts_, etc. They could take this course as a required class their freshman year in HS, and the school could offer other more advanced courses available as electives to more senior classes, AP courses, etc.


The CODE.org curriculum refers to it as "Coding".


While I am a volunteer & proponent of STEM, I pity the administrators & teachers who need to figure out how to cram so many subjects into students heads. I also pity the students. There is a limited time in a day & everyone has their subjects they feel students need to do more of, including arts, recess, and physical activity which seem to be the most recent cuts.

I think Charlie Munger once said we learn the really important stuff by middle school. I think it would be nice if kids had more control over the direction they are interested in & the subjects they want to really excel at. This of course requires them to try different things. But once they find one they're really passionate about, I believe we should let them go deep into it without requiring as much of other content.

I believe a well rounded education is great but without being able to focus in one area we can't become an expert in anything. Bill Gates & Warren Buffet have both argued that focus is the key to success at anything.


I really feel computer science isn’t a subject as much as it is a medium.

Once we learn to write, we don’t take writing classes, we take grammar classes. Meanwhile, we write to participate in the rest of our classes.

Similarly, computer science should become the medium of participation for STEM classes.

For example, math and physics, would be easy classes to transition to only be taught with Python.

Instead of using a graphing calculator to solve word problems, what if the class was about building a graphing calculator?

You would still learn how mathematical functions translate to graphs, but you would also learn to write software that accurately simulates math, and later physics.


I do like mixing subjects together as you propose. A couple things to watch out for though:

It can lead to slowing down your learning of the main skill. For example, I might try to include TDD in any coding tutorial. While that's great, it slows down how fast the student can learn the new concept.

Being forced to write essays that are X words long for your History report, turns most people into terrible writers who are unable to explain a concept in a fewer amount of words and are typically full of very long run-on sentences.


I very much agree and I tell every young CS student I meet that Computer Science + Some Other Domain = bright future


If there were one thing that we should be teaching kids, and only one thing, in my opinion it would be this:

How to enjoy and be a lifelong learner.

It seems to me that many people actually stop learning (some actively - as in they do anything not to learn new stuff) after the finish high school or college.

The don't read, they don't explore, they don't wonder, they don't invent - in short, they stop learning.

More horrifyingly, this is somewhat celebrated in our culture (at least here in the United States)!

I believe this needs to change, and soon, if we are ever to get out of the societal mess we find ourselves wallowing in currently.

I'm pessimistic, though, that this will change.


I volunteered with Microsoft's TEALS (https://www.tealsk12.org/) organization last year as a volunteer classroom teacher for an introductory CS Course. The first semester was mostly in this drag and drop language called Snap, similar to Scratch, and the second semester consisted of the basics of Python.

I was worried about teaching at first, I haven't had a lot of experience (none as a matter of fact) but, TEALs had some training classes over the Summer that I attended and they taught me how to be a pretty decent (at least in my opinion haha) teacher.

The school I got placed at was an inner-city school and it was honestly awesome to give these kids a chance to learn about and explore a career path they previously thought well above their ability to reach. I went one day a week for one class in the mornings, I worked with other volunteers each with their own day, so it didn't interfere with my work life at all either.

I didn't learn about programming myself until I hit college so just the fact that these kids are even made aware that this is an actual viable career path is a win in my book.

If you're interested at all in "CS in every high school" mentality and you want to put in some volunteer hours then I think TEALs would be an awesome resource to look into


I will second this. I'm currently in my second year volunteering and I absolutely love it. I get to help with both the CSP (intro) and CSA (Java-based) classes. Last year I went just two days a week but this year I'm going three. Honestly, if it wouldn't be such a pay cut I would seriously consider quitting my current job and get into teaching full time. (I know money isn't everything but still).

TEALS is great because it realises that unfamiliar teachers being thrown into teaching CS probably won't turn out well for anyone. But having 'real' engineers from industry in the classroom to help teach and explain things is an invaluable resource. Plus, I've been able to get to know some of the students really well and talk to them about their college plans and beyond. I was a little nervous when I first started but it's been one of the best experiences of my life.


An effort to lower salaries by increasing supply of workers. It's amazing how they play it as a donation when it is a strategic long term investment. Makes me think of tax implications of this kind of gray area between donations and long term bets. Nonetheless, money spent in education is money well spend so props for that.


A better approach is that taken by the Bootstrap World curriculum (http://www.bootstrapworld.org/). They align their curriculum around algebra. That way you don't have to find time to make a CS class in an already busy schedule. Bootstrap trains Math teachers to use the curriculum. Again, the school doesn't have to hire a CS teacher. The program is entirely online, so the district IT departments don't have to approve/install any software. They are also moving into physics and data science to expand student exposure to programming.

Bottom line, putting pressure on schools to find time and money for a discrete CS offering is challenging. I tend to think of programming as a tool; don't teach programming for the sake of programming, but as a tool to enhance other subjects.


> Bootstrap trains Math teachers to use the curriculum. Again, the school doesn't have to hire a CS teacher.

My school decided to have random (STEM, mostly math) teachers teach computer science classes. It did not go well–not because the teachers were bad at teaching, per se, but because they had not had enough training. It turns out that you can't really learn to teach Java over the summer.


Bootstrap does not promise that these math teachers are now proficient coders, but they do walk the teachers through the entire curriculum from start to finish. The teachers act as the students so they get a feeling of what is being asked of the kids. This curriculum is like 25 hours long. Most math teachers use one day a week to work on coding. So I wouldn't call this program CS in the classic sense. Rather it is a brief introduction to coding and how it relates to algebra.


That's ok as long as it's understood that these teachers aren't teaching a standard computer science class. But I'm not particularly optimistic that school administrators will understand the difference.


It has been my experience that school officials will offer some coding if that is what parents want. Coding, programming, and CS are used so interchangeably that often meaning is lost. So the bare minimum of coding classes will be presented as this massive shift toward STEM/CS, and parents will go along with it.


Again, that's ok as long as schools don't try to reuse these teachers to teach actual computer science courses later "because they already know some coding".


My high school had the shop teacher (who was actually a very sharp guy) teach programming. It was actually billed as programming, not CS. We learned C++ (maybe not the best choice, but this was ~1999), and he basically learned whatever he was teaching a few weeks ahead of us. Most of the students were highly motivated, so most learned a lot even if the teacher couldn't give us all the answers.


I think instead of teaching computer science students should be taught tinkering with a lot of different things. Take them apart and understand them, modify them. Call it "hacking". One thing I notice with the young guys coming from college is that they view a lot of things as black box that is either too difficult to look into or it's even not allowed.

I would be very afraid that teaching CS in high school just creates more people that can whiteboard algorithms without any deeper understanding or creativity. Good for Amazon though to get more workers for cheap they can then lay off after a few years to get "fresh" people.


This was me. I studied ChemE, and after working at a startup where I worked a more EE leaning project, I’ve realized this is what I would have liked to study instead. A lot of electronics are much simpler than I ever imagined.

I’m in the process of building my own keyboard at the moment, but once I’m done with that I know I’ll be hungry for more electronics related projects. If only I could come up with some good ideas.


I'm not sure how I feel about the commoditization of my career path.


Commoditization in the US is already a done deal through offshoring and H1B visa abuse. Lots of good advice is dispensed here on HN when these topics come up on how people have successfully dodged the trend. one path I don't see mentioned much around here (for good reasons) is going into sales. Good sales people who also know the technical side and can present that technical side without "going geek" are extremely rare and recession-proof, but the initial sales ramp up learning curve when you're cold-calling out of prospect lists is brutal on the ego if you've never done that sort of activity.


Your path should be to become financially independent and/or a business owner. Its the only way out as businesses attempt to drive down the cost of their labor.


As a business owner logically wouldn't your customers also be trying to drive down costs/eliminate you?

Plus this isn't particularly useful advice. Without a large amount of capital, luck, or a compelling concept it isn't trivial for people to become financially independent and or a business owner.


Well, yeah, you need luck and either capital or work to become financially independent. You don't need to be intelligent to be a business owner, and you don't have to be a business owner to make an above average wage and invest it.

https://www.washingtonpost.com/wp-srv/style/longterm/books/c...


Priests felt the same way when the masses learned to read.


Well at any rate, the difference is that nearly anyone can learn to read, whereas there is no evidence to suggest that more than a few percent of people can become a computer programmer.

So I personally am not worried.


> Well at any rate, the difference is that nearly anyone can learn to read, whereas there is no evidence to suggest that more than a few percent of people can become a computer programmer.

LOL, programmers aren't that special. I would stake my life that 90% of people have whatever genetic potential necessary to become at least an average programmer.


Indeed, the analogy that came to me was that high schools already teach math, but I don't see the market for math skills being depressed by a glut of talent.


> there is no evidence to suggest that more than a few percent of people can become a computer programmer

Source?


I'm right there with you, but the real trick educators have to pull is integrating coding into their content (math, science, history, language arts, etc.). These learn to code solutions teach as if there is no overlap with other subjects. I don't see this as the case.


And then we'll graduate a bunch of students that have proficiency in programming like I have proficiency in Spanish after 4 semesters.

Right. See, kids that don't care or don't understand the material have to be able to get Cs as a fundamental requirement of high school. A degree for everyone, regardless of ability or passion.

Oh and also all my computer classes in high school were video game free time. So that's a thing.

What a waste of taxpayer money. Just link kids to a BASIC interpreter online and they'll figure it out if they care and have the aptitude.


I don't know about computer science but all high schools could stand to teach a general familiarity course in computers, networking, and robotics.

Suggested curriculum points:

  - Plug the related high school extracurricular clubs
  - Computing on a tight budget
  - Two types of free: gratis or libre
  - Resources to further your own computing knowledge
  - Brief history of computing
  - Careers in computing, networking, and robotics
  - Basic hardware security
  - Basic network security
  - Basic encryption, incl. protocols and certificates
  - Trust, skepticism, and mistrust online
  - Basic system architectures
  - Popular choices in operating systems
  - Microcontrollers, FPGAs, SoCs, sensors, buses, motors
  - Taking control of your own computers
  - Protecting yourself from malware, spyware, and spam
  - Backing up your data
  - How to evade the law online
  - How to catch online scofflaws
  - Open vs. closed source
  - Types and uses of various licenses
  - Technical standards, FUD, and embrace-extend-extinguish
Most people won't need to learn full-blown computer science in high school, just as most people won't need to take a second year of calculus. People will need to know why it's a bad idea to glue a tablet computer to a refrigerator and allow it unrestricted access to your Wi-Fi.

Everyone in the class could leave it with their own Raspberry Pi (or competitor system) and a custom-made peripheral for it.


It's so weird and interesting how we have been pushing STEM so hard on HS students. I'm near an area where resources are more abundant (our tax property is actually really overwhelming...), and there's even "tracks" that students can choose. Like a leadership, compsci, physics, and etc. I look forward to more resources provided via online to all area of the US for STEM in early education.


Not weird at all. This is Bezos generating hordes of candidates for Amazon to keep wages down for the next century.


Problem is, US isn't the only country in the world.

US needs to train STEM candidates, or else newly generated jobs will keep getting sent to China and India where the quality of candidates if getting better by the day.

I say this as an Indian in the US pursuing CS. There is a demand for CS candidates. If the US won't match that with supply, then some other country will.


Or unlocking a massive engine of productivity to raise standard of living across the economy. Did literacy kill the careers of priests and monks?


> Did literacy kill the careers of priests and monks?

Actually, it did!

https://en.wikipedia.org/wiki/Reformation#Literacy

Literacy was a major factor in the reformation, and the subsequent decline in the status of clergy. Look even further, and it becomes a crucial factor in modern atheism and the further deterioration of clergy of all denomination.

> Or unlocking a massive engine of productivity to raise standard of living across the economy.

Sounds great! Just remember the rules of supply and demand. As the supply of programmers increases, since demand won't change (at least not immediately), their price will decline.

That means programmers like you will have to settle for a fraction of their current compensation.

Couple that with tech employers' known fondness for employing the young, and you'll lucky to have a job at all.


Back in the late 80s, my high school had a decent number of programming courses which touched on logic, sorting algorithms, and so forth. But the most interesting course was with the Pascal teacher who also taught computer literacy 101. This teacher offered everyone who came to his computer club generous extra points. So he was able to fashion a very popular computer club with all the jocks/cheerleaders in attendance. Then [no joke] he would have us practice our social skills in talking to girls, etc while filming it on a video camera and playback on a projection TV for the group to critique.... Fun times!


I had a similar experience in High School late 80s (Jamaica HS, NY). We had Pascal, x86 Assembly, Some C. The computer teacher was also our physics teacher.

It was an excellent set of courses that taught some basics of programming and hardware architecture and we learned. There was a computer club where we interfaced with a laser disc player. Some really cool time back then. I was lucky to have my C=64/128 and Amiga 500 to extend my learning experience, with C.

Peace.


As an example, there were technically 4 basic programming classes and a few trade focused ones like A+ certification, web design. Catch is, almost all never had enough people to be offered so when I convinced the requisite 8 people to join (3 later dropped the class after the first week), it became a very "plan and you your own thing".

Compare this to what the elite private coastal schools have, nothing would have been better. Those schools good CS students out of top master's programs with a penchant for teaching. It's no surprise that IOI champions come from these places.


I think highschools need to identify kids early on in sort of like a speed dating process when they're younger. If they show interest in highschool have some ways for kids to start building background in say learning about hardware / electronics or software or just DIY building things (woodshop / welding / auto / construction / plumbing / electrical) (these are huge fields, and it's not like it's medically oriented or anything). I realize some schools had ROP for this stuff, but we need more participation by community colleges in life skills, even if highschool is more of a social gathering for people their age, you won't find a lot of highly specialized people teaching at high schools, because the background requirements are just too different. A CS Professor is more likely to be the strange highschool kid, who has an interest in teaching other people their craft, and may inspire others based on the way they got interested. I guess just a lot of PC (politically correct) things going on int he world, and people think that everyone who teaches younger people needs a specialization in educating younger people. That is not how the real world works. People learn from everyone they meet regardless of background.


I'll say this much: software is so disgustingly intractable, from week to week, that teaching people how to do it a specific way solves almost next to nothing.

Whatever you teach anyone in September, by June, it may not work. It's a bottomless pit of futility that sucks the life out of you, and even if you find a way to derive some pleasure from it, the rug will be pulled out from under you, and the forces of access denial with lack you out of the things you master only a month ago, for little more reason than bumping a version number.

Go ahead and learn something. Your learning will be so dependent on gigabytes of irrelevent libraries with highly specific build numbers, such that when support is dropped, and those builds are no longer available for download, your acquired skills will be struck down and renderd unusable.


An excellent way to make kids as bored or afraid of engineering as they are of mathematics. As a coder who'd only like his wage to get higher this is wonderful news, I fully endorse it.


I wish adults were organized enough to a.) call it programming and not Computer Science b.) shift the conversation to STEAM (Science Technology Engineering Art & Math) instead of pushing Art out of the discussion and c.) start exposing kids in the tween ages (e.g. 9-13) before a lot of annoying hormones & social pressures kick in together.


Cynic in me knows that this is an attempt to increase the long term supply of engineers and suppress wages.


It'd be nice if this wasnt tied to Amazon.


Reading between the lines, there are not enough good programmers to hire. Supply and demand are driving this effort.


resources should be spent making sure math teachers are equipped to teach math and not rote memorization.


Why computer science instead of just the practical programming and software engineering know how? The theory is pretty irrelevant for most coding jobs.


I like that this is being offered--the _opportunity_ should be there.

However, I really wish this sort of effort could be de-coupled from the "CODE" idea and filtered by interest on a per-kid basis, as with other subjects, even algebra. As things stand, people will eventually self-select anyway, so the inevitable change in or out of STEM is simply delayed until it's later, and even more awkward and difficult. For example, during one's sophomore year of university, after a tremendously walled-off personal identity has been constructed on the back of the STEM vision. A school-age child robbed of interests-based focus now easily becomes a societal liability later.

I have three school-age children. If one of them likes STEM, wonderful. Or maybe they will become an animal trainer, or a pawn shop owner or drive a garbage truck. That's fine. Or maybe they will become a counselor for people who are looking to get out of STEM (I am coaching a couple of those people right now).

I'd also like to see the over-emphasized CODE replaced with TECHNOLOGIZE or some broader-minded term that allows talented people to get out of the coding mindset and yet realize they can still be beneficial within STEM, and maybe even realize that technology can be developed by folding pieces of paper together, or by working in the forest. In other words, you can CODE without CODING and people are being tricked and boot-camping their way into dead-ends because they don't know that.

As an example of someone who could STEM in their sleep and never write code, take Richard Feynman. Or Einstein. Could Albert Einstein "code" on an IBM Mark I? Who cares?

Not that coding is bad, just that it's not the only thing by a long shot. And it's emphasized by a lot of people who absolutely will not ever write any code. The "code parents" I know who are falling over themselves to get coding into schools for their kids are the same people who ask their nephews to code things for them, not because they "can't do it but wish they could", but because they are interested in higher-level pursuits. They want their kids to have a tiny bit of exposure to CODE so these kids can run in CODE-type circles, yet still not actually CODE. But some of those kids will not get it and will have nervous breakdowns because they think they are supposed to learn to write CODE.

Further down the STEM path, we get these IT interviews in which the interviewer projects knowledge and experience they themselves didn't have at the interviewee's level onto the interviewee. Even when it's just to get into somebody's head and see how they think, it fails to pass muster at the Psychology 101 level and it's a huge problem that prevents healthy teams from forming. I personally interviewed for one of these jobs, got the job, and then walked into a room full of people who were laughing at how it was possible (luck) that I could have known the answers. Then I went on to learn by experience that the most desirable candidate for the position would have been a politician with some small amount of IT knowledge, someone who could elevate the department in the eyes of the other departments, which were intelligently run at a political level. The STEM-driven department needed the opposite of STEM in order to really become what it could become. Stanford Teamology project results showed something similar--psychological diversity is a huge key to problem solving, and becoming aware of its existence and benefits is the mechanism that turns the key.

In order to create a ramp from CODE to this broader look at tech, it would probably be beneficial to build a more realistic yet still basic model for STEM that completely stomps all over the CODE notion by adding enough nuance that candidates for STEM careers are given additional leverage in non-CODE yet very-much-still-STEM areas. [I am writing CODE in upper case because in the world I'm observing, it's some kind of uberword].


Apparently a majority of HN doesn't know what CS is.

Computer science isn't software engineering.

Computer science isn't coding.


"Computer science" has always been a problematic term. Actual sciences don't need to put "science" in their name. Most of what computer scientists do is not really science, not that there's anything wrong with that. With all the mathematicians involved, you would have thought someone would have come up with a pleasantly evocative name. (several subjects within mathematics have mellifluous names) "Computation", for example, would have been elegant, but that ship has sailed.

TFA isn't talking about that anyway.


While true, it's also the case that most people don't become researchers in the field that they studied in college. Most engineers become CAD operators, and most CS majors become programmers. We now teach CAD in engineering school so that students won't be broadsided by it when they get their first job.


And thermodynamics isn't gasses or engines, aerodynamics isn't wings or aircraft, and mathematics isn't arithmetic.

Realistically, people have to start somewhere, and trying to teach applied mathematics without the application is foolishness.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: