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?
If they want to teach computer science (and not software development or programming) a text on abstract algebra or discrete mathematics is likely going to help more than anything with "computer" in the title.
I took AP CS in 2000-2001 back when it was C++ based and we didn't use a textbook then either so I'm not so sure this is a new phenomena. We relied on lectures and a lot of hands-on exercises which seemed to work out pretty well. I suspect at that time the AP CS market was quite a bit smaller so there probably were a pretty limited set of textbook options, especially geared at high school students. Now, with the advantage of substantially more online resources there are probably even fewer reasons to be using a textbook. The teacher does need to put some effort into pre-selecting some good online resources to share with students as well as some effort into being a reasonably proficient programmer themselves though. There are many ways to do that too though and my AP CS teacher taught one or two sections of AP CS and the rest of the time was a math teacher which was pretty standard I think.
I believe that proves the test is well correlated to the class content (or vice-versa). Does the class content help the students find meaningful, relevant employment?
The Russians have won. They have made the world a cesspool of distrust, greed, fear and hate.
CS, much more than most other STEM fields, already has absolute loads of reference information and tutorials and explanations available online. A textbook is supposed to be one-size-fits-all volume with all you need to know to get to a certain level in a certain topic -- a really useful thing to have with no internet, or on a topic where the internet doesn't already have all that information in easily-accessible form, but with the tradeoff that everyone using that textbook gets taught in roughly the same way, which won't work well for all of them. For CS, especially high-school-level CS where you aren't dealing with the more complicated aspects of algorithm performance or CS theory, easily available resources outside textbooks can easily cover everything necessary while also allowing the versatility to more easily suit different teaching and learning styles.
Are you kidding me? You chose the worst examples. Try the historic assumption of the public schools that the vast majority of their students would be working blue-collar factory jobs--slaves being taught skilled trades, especially the trades you picked, got the core competencies and theory of their trade. I'm not sure how a carpenter that lacked those would count as a carpenter (vs a random with a box of woodworking tools) and I sincerely doubt anybody would have any use for a cobbler without those skills. Skilled labor is called skilled for a reason.
That said, most of the people they're teaching probably would never gain particularly in-depth programming skills. You may also have distinctly better results by treating the 'core competency and theory' of programming as something you do after you've learned basic coding--more people learning them better. (And, personally, I do agree with the school that the best way to learn programming is to read code; that and the documentation for the language have taught me more than any textbook on programming has...)
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.
Comment removed based on user account deletion