High School Computer Science: Look Ma, No Textbooks!
theodp writes: Computer Science Teacher Alfred Thompson wonders how other high school CS teachers use textbooks. "It's not a conversation I hear much about," he writes. Indeed, many teachers apparently don't rely on CS textbooks much at all. In fact, the highly-touted new AP Computer Science Principles (AP CSP) course does not require a CS textbook for students (sample College Board AP CSP syllabus), albeit to the chagrin of some. Some of the bigger providers of AP CSP curriculum -- e.g., BJC and Code.org, both of whom partner with Microsoft TEALS -- don't require a traditional CS textbook. But with teachers being recruited to teach Computer Science even if they don't have a CS background, should students learning CS have a textbook? Or is the high AP exam pass rate enjoyed by AP CSP students proof that no-more-books works?
Computer science is not "programing skills". This is the mistake I think these people keep making. If they want programmers, then it's not computer science and is instead jobs training. We don't learn algebra in high school because we're going to be professional mathematicians, and we don't learn physics because we're going to be a scientist, and we don't learn civics because we're going to be a politician.
The point of high school is to get a well rounded education in preparation to becoming a full ledged participant in civil life. Part of that is getting a trade,and much of having a trade involves these extra life skills (reading, writing, communicating effectively). And there is much more to life than having a trade. That's why we learn literature and history. Maybe you don't need that when being an auto mechanic on the job, but you need that when at home, when interacting with the community, when voting, and so forth. You need the arithmetic so you can maintain a proper budget, plan for retirement, do your taxes, and so forth. A public high school is an investment that the public makes in order to provide a large payoff in the future when you have better educated public.
So computer science in high school should fit that mold also. Everyone should know something about how computers work, whether or not they end up going into a computing field. And by how they work, this is so much more than programming; it's math, electronics, digital logic, algorithms, a dab of theory, and so forth. And this teaches logical thinking; even simplistic modern programming style at least teaches you how to divide a complex task in smaller parts, divide and conquer, it's an important life skill.