Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
CS in HS - Read Write Code (csinhs.com)
67 points by jkeesh on Nov 13, 2012 | hide | past | favorite | 43 comments


My high school AP CS course I took as a senior (good ol' apstring.h and friends...) scared me off programming for four years due to an underqualified teacher, a lack of feedback, and a total lack of any sort of big picture approach, so I really like attempts like this to make it more accessible (and more personal than just something totally automated).


In contrast to your AP CS experience, most students in my lower division cohort in college who took AP CS in high school were better prepared for the crash course we were about to take into C++ templates and operator overloading, having been pounded with Java a year (or in some cases, even two years) prior.

I, on the other hand, had started a web-based photo sharing company with a friend using Python at this point, yet was still struggling with malloc. Going through lower division really made me appreciate my deficiencies as a self taught coder and gave me deep respect for the need to truly grok first principles and theory.

I truly resonate with your sentiment. I don't know that everyone should learn to code, but educational experiences like the one I've shared above make me think that everyone should have good access to proper computer science education, at as early of an age as possible, in case they want to develop their craft.


Yeah, that sounds similar to a lot of stories we've heard. We've spent a ton of time making sure it's fun and really accessible, so it doesn't scare people off. If you try it out, let us know what your thoughts are.

http://codehs.com


The thing I like most from browsing the site is that the demo programs look really interesting. One of the most discouraging things about my high school experience was that we spent what felt like a ton of time memorizing C++ syntax/include file boilerplate, and learning the fundamentals of pointers, and then just used it to sort strings and solve riddles entirely from a command line—but the command line didn't interest me at all back then.


Yeah, we definitely want to make it interesting. We've made some really cool libraries that make graphics on the canvas really easy to use and pretty intuitive, so you can make cool graphics, animations, and games very quickly.

For example, to draw a circle, you just need to type:

var circle = new Circle(radius);

circle.setPosition(x, y);

circle.setColor(Color.blue);

add(circle);


While this project looks really nice - that's not entirely different from:

http://www.khanacademy.org/cs

is it? (Not that that is a bad thing, just saying).


Like Zach mentioned, Khan's CS is a great tool and they have a great team. Our approach is a bit different. Right from the beginning we start with "Karel the dog," which allows you to focus much more on problem solving than on syntax. The dog only knows four commands: move, turnLeft, putBall, and takeBall, so the world is greatly simplified. In this way we are really giving comments on how you take a big problem and break it down.

We've found that starting right with graphics (even though very fun to tinker with) is too large a barrier for many students, since there are too many new concepts at once.


There are a number of similarities. Khan's working on making a very slick tool with a really nice interface to let people experiment with coding.

The focus of CodeHS is much more on the instruction from teachers, and it has more structure. We have tutors that give debugging help and feedback on all programming exercises and projects, so you learn much more about programming style in addition to functionality.

I think Khan has a cool tool, but it's only a tool, whereas we're giving the entire learning experience, teacher included.


I'm all for teaching CS in high school, but am irked by the claim that "learning to code is just as important as learning how to read and write." This is obviously not true if you think about it for two seconds. There isn't a job in the world that doesn't involve communication. Reading and writing is the basis of forming arguments and understanding things -- quantitative or not. The best programmers I've encountered have great mastery of their native language. Educators need to be careful about how they suggest CS should be implemented in HS, and just how much is essential. It could be very effective to integrate CS into a mathematics track, since they reinforce each other so nicely. Computer literacy is so important and is becoming more important -- no argument there -- but even computation itself requires a good grasp of language. Computers can't answer the question of "why" for us.

They also suggest that computing skills will be required for "any" job, which raises some important questions. First of all the claim itself is bs: Yeah, computers will become more and more ubiquitous, but many vocations just don't and shouldn't require computational skill. In many cases it could be a distraction from the core issues of the vocation. I don't care if my therapist, dance instructor, baker, farmer, mother, coach, musician, ... (ad infinitum) knows how to reverse a linked list. Sure, computer literacy would help all of them achieve certain things, but let's be honest about what level of CS education is _essential_. Secondly, a world where EVERYONE has a job where computing is of central importance is one I personally would never strive towards. We should ask ourselves if we really want to stick all of society behind a computer.


> Reading and writing is the basis of forming arguments and understanding things -- quantitative or not.

Similarly, having an exposure to coding and computational thinking also fosters those sorts of critical problem solving skills that are helpful whether or not you're a programmer.

> I don't care if my therapist, dance instructor, baker, farmer, mother, coach, musician, ... (ad infinitum) knows how to reverse a linked list.

That is not the argument we are making. We are not advocating that a baker must also be a professional programmer, but we are saying that a certain level of computer literacy is important no matter what field you are in.

Similarly, we wouldn't expect your dance instructor to be well versed in Hemingway, but you would still value a basic level of reading and writing skills.


Your first point is certainly true, but I still think that "as important as.." is an overstatement. Problem solving skills are taught in innumerable ways, so what makes programming the most important?

I agree with your second point too, but "computer literacy is important" belies "any job requires computational thinking". I think it's a great cause and I'm happy to chip in, but the hyperbolic text makes me crave a more nuanced discussion of it all.


I basically agree, but it depends on the definition of programming. For example, I consider "using Excel" programming above a certain level of proficiency. Assuming your therapist, dance instructor, baker, farmer, mother, coach, and musician are actually small business owners, they would certainly benefit from mastering spreadsheets.

Many mothers probably regularly use a calculator for household budgeting. Excel can do that better. However for most mothers it is not worth the effort to learn it, because their calculator is good enough. Providing future mothers with good excel skills would improve their lifes in my opinion.


> Secondly, a world where EVERYONE has a job where computing is of central importance is one I personally would never strive towards. We should ask ourselves if we really want to stick all of society behind a computer.

This is not really what we are advocating. Our claim with "Read Write Code" is that these are now essential skills, even if that is not what you spend all of your time doing. Few become professional readers or writers, but many find reading and writing useful skills. Computers are used in many parts of daily life--even if you don't become a programmer, a knowledge of problem solving with computers will be useful.


Actually almost everyone is a professional reader/writer. Even programmers read and write as part of their professional practice, and I can't really think of any job where at least verbal communication plays a vital role. The way I see it, computers should be a vital and practical part of teaching quantitative reasoning, and quantitative reasoning should be given the same attention as language skills. It wasn't in my high school, where less math was required.


Hey HN --

We are launching a crowdfunding campaign to teach 1,000 high school students to code over the next six months.

We focus on providing help from real people along the way--because when you are learning to program, everyone gets stuck, and needs debugging help and feedback.

We are also making a site to collect 30-second videos from people across all fields saying "why you should learn to code." It would be great to get some help from HN supporting this cause.


I like the idea of this, but just know that teaching first year university courses is nothing like giving a quality high school education. As someone who has done both, I think that it's near impossible for someone on the outside to appreciate the difficulty of the latter. You will be sadly mistaken if you believe that you can get away with giving a university type education to a high school student. This seems to be a big point that most education startups miss. That said, I look forward to seeing the results! Good luck!


Thanks! We definitely know there is a huge difference. We've been spending the last 6 months testing with mostly low-income 8th and 9th graders to make sure we give the best teaching experience possible.

The course we've made is definitely inspired by what we taught at Stanford, but it's very much a different course targeted specifically for high schoolers.


Great news and good luck to the both of you!


Beyond just the importance of understanding how computers work, I deeply believe that learning to program can be a huge aid to understanding (really understanding) mathematical concepts as well as other fields of science, language, etc.

I'm currently reading Seymour Papert's amazing book _Mindstorms_ (after reading a comment on HN, appropriately enough). I am in complete agreement with his assertion that schools currently present topics as a series of disconnected rote pieces with no "point" or basis for deeper understanding. Computers can provide the platform for understanding, intuiting, and even self-teaching concepts in a way that just isn't possible with pencil and paper.

The whole book makes me unconsciously flex my hands into fists and suppress a scream, "yes! This!"

I was one of those kids who thought they just weren't made for math and I hated it and felt bad about it. Later in life, I finally figured out that all of the math I'd been taught in school was about as complex as a "hello world" program. It's laughable, really. And I don't feel bad about it anymore. I wish somebody had been able to tell me that then.


This is great. My high school didn't offer any AP computer science and most people equated programming with learning how to use MS Office programs. I think programming will truly become a medium like math that you need to know because it is such a valuable tool for whatever you end up doing.


This is indeed a great initiative. As many people pointed out, we need to teach young kids for them to make sense of computer science and technology in general. What hinders them from learning this seemingly hard field is the fact that computer science is very abstract. So we have to let them know the connection between loop and data processing, variable and data storage etc. I really hope that this endeavor would do the exact thing. Good luck!


Yup---after having helped to teach lots of students how to program, I've seen so many ways where people get stopped before they get started. Making it easy to get started, and very accessible are the key. I've written more about that earlier here: http://blog.codehs.com/post/31912193554/getting-stopped-befo...


I personally had a great AP CS teacher. It was my favorite class. I remember that most days we just went to class and worked on an assignment which was programming something specific in Java. The days we had lectures were always the worst. :D Point is, in HS you can put students in an environment where coding is fun quite easily.

Also, great idea. I'm still stunned about how little attention programming gets in schools.


My experience was equally awesome. My teacher was great, and definitely qualified. She had worked for NASA as a Software Engineer and she even lead a group of interested students in local programming competitions for UIL. Much of the structure she had set up mirrors what CodeHS does, which is really cool. People in the AP course were able to be tutors for people in the Pre-AP course as we shared a room, which helped both groups immensely, IMO.

I think this is a pretty solid product. In my opinion, it's definitely better than things that I've evaluated like it. Getting feedback on your submissions is huge, and having tutors there to help you is pretty awesome. It also solves some pretty glaring issues that still haven't been fixed in CodeAcademy for example. Of what I saw, there isn't a whole lot there yet, but hopefully there's a lot planned moving forward (or even in the non-free content). I think the real value in things like this is the visibility it gives to current students, and most of all the accessibility to new resources for them to keep learning, especially when they hit roadblocks.


Thanks for the comment. I think the few places where high school CS is done well is 100% due to having a great teacher. However, for CS in high schools... that is extremely rare.


This is a really great program from an excellent team. Despite going to a great high-school (IMHO), no teachers new CS, so we never had the option to take any CS what-so-ever. It would have been awesome to have something like this to bridge the gap between the hacking my friends did outside of school and real course credit in school.


This is run by a few Stanford alums with a lot of experience teaching CS to undergrad noobs. Should be a good experiment.


I've had the good fortune of working with both founders and they're highly qualified with a lot of experience in the teaching CS space having helped teach Stanford's intro CS courses. Keep an eye on them and recommend people wanting to learn to code - this is a great way to learn fast and learn well.


Fantastic! And totally in line with a TEDx talk I gave last month[1].

I wish you guys immense success!

1. http://christian.gen.co/2012/09/21/tedxsmu-hilltop-you-shoul...


Great talk! I'd love to hear more of your thoughts. I'll actually be in Dallas for a bit starting this weekend if you're interested in talking. Shoot me an email at zach@codehs.com


Great TEDx talk! Thanks for sharing.


I'm a CS major in college. Students who knew what they were doing actively avoided AP CS in our high school. (I've heard many other similar stories as well)

The majority of High School "tech" teachers are utterly unqualified to teach CS.


This is awesome! You're definitely on to something with the whole personal help thing. In my experience teaching CS, people _always_ get stuck on something and it can be really frustrating for them.


Did I miss something in the FAQ for tutors? What kind of commitment do you want? Any compensation (other than the joy of teaching, and the learning that comes with that?)?


Right now, we're just looking for volunteers who are interested in helping out on their own schedule without any required commitment.

As we grow, we will begin to structure it more and have more options for being a paid tutor, but for now, it's for the joy of helping and inspiring beginners (and sharpening your debugging skills as well).


My bad - the front page looks a little better after allowing javascript through no-script :-)


Having worked with both of these guys, I'm excited to see where this goes. Clearly an excellent problem to tackle, and I can't think of a better duo to take it on.


Thanks RJ! We really appreciate your support!


A great initiative from a great team.


This is a pretty important cause.


the guys behind this know what they're doing, and this will go far.


What a great cause!


cool




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

Search: