Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!


Forgot your password?
Education Books

High School Computer Science: Look Ma, No Textbooks! 110

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?
This discussion has been archived. No new comments can be posted.

High School Computer Science: Look Ma, No Textbooks!

Comments Filter:
  • To drive down the cost of sourcing and employing programmers specific to the construction of code for major multinational corporations.

    in much the same way slavery worked in 18th century america, these programmers are never intended to understand or learn the fundamentals of their trade. Instead, like the slaveholders cobbler or slaveholders carpenter, theyre instructed only as much as they need to know for the task at hand. There are no textbooks required, because these programmers are divorced from
    • Everyone's a coder, if you lower your standards enough. Welcome to the new white slavery.
    • 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 skill

      • by Darinbob ( 1142669 ) on Wednesday January 31, 2018 @03:28PM (#56042093)

        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.

        • Most of your list is things you either ought to be obtaining elsewhere and/or earlier, or it is something a student most likely/easily going to attain after learning some programming--and, not sure how to break this to you, but most public school systems in the US do a damn lousy job of teaching anything. (They certainly don't teach history. It's social studies, which means you can skip parts of history that don't fit with the story you want to tell or which are embarrassing.)

          The thing with starting with

          • I certainly learned history in high school. American history, California history, world history, ancient history. They don't teach these things anymore?

    • If you never expand on your knowledge after school is out you deserve the crappy coder job you get.

      • There are so many crappy coders now that they are influencing everyone around them into thinking that crappy coders are a good thing, and that we need more tools to help out crappy coders, and that we should fight off outsourcing to countries that specialize in crappy coding.

    • This is so much bullshit I don't even.

      To drive down the cost of sourcing and employing programmers specific to the construction of code for major multinational corporations.

      Yeah possibly, on the other hand, it's better to be educatig people to be card designers than buggy whip makers.

      in much the same way slavery worked in 18th century america, these programmers are never intended to understand or learn the fundamentals of their trade.


      No, seriously, WTF?

      The point is to get people started. Very very few

  • by mcmonkey ( 96054 ) on Wednesday January 31, 2018 @12:48PM (#56040797) Homepage

    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.

    • by THE_WELL_HUNG_OYSTER ( 2473494 ) on Wednesday January 31, 2018 @01:11PM (#56040995)
      Did you see the AP Computer Science Principles curriculum [collegeboard.org]? It has topics like "Copyright and the law", "Impact of your life", "web crawlers", "indexing pages", "ranking pages", "Privacy in the age of big data". etc. Is this a joke?
      • by mysidia ( 191772 )

        That's why it's "Computer Science Principles" and not "Computer Science"; the students aren't learning any of the core CS which includes things like

        • (1) Digital Logic -- The differences, pros/cons, and appropriate applications for Analog versus Digital electronics and Analog and Digital computing, Symbolic Logic topics from philosophy - Formal Argumentation from philosophy - What is the definition of a sound argument? - Propositions and Proofs in the language of symbolic logic and Mathematical logic,
        • Nice post, except for...

          > IEEE 1394 Floating point;
          IEEE 1394 is not a floating point standard. IEEE 754 is.

        • I don't see how "Copyright and the law" is a topic in Computer Science *or* Computer Science Principles.
          • by mysidia ( 191772 )

            I don't see how "Copyright and the law" is a topic in Computer Science *or* Computer Science Principles.

            Copyright and the law is not a computer science topic; it has no business being in a High-School level course, as Copyright is a very complex thing where an adequate teaching of it would leave no time and space for meaningful CS education.... it sounds like something the RIAA would have lobbied for.
            However Digital Copyright is a "Computer Literacy/Computers in Society topic", that would be something

      • I am teaching this curriculum right now (as a volunteer for https://www.tealsk12.org/ [tealsk12.org] ) and I can tell you that 90% of our time is spent teaching coding, either HTML or CSS. We wrap the fluff stuff into the curriculum to break up the harder stuff.

        The point of this class is to teach basic programming skills and computer concepts so that the regular AP CS class in Java (which I also teach) isn't such a culture shock. Kids drop out of that class at a very high rate and they are trying to give a sanctioned path

    • by Nidi62 ( 1525137 )

      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.

      So Abstract Algebra and Discrete Mathematics for Computers is a no go then?

    • by Anonymous Coward

      Theoretical computer science is a highly specialized field and should not be taught at the high school level. Anyone going in that direction should take all the math they can get instead. Practical computer science starts with learning how to program. You can't talk about programming if you don't know what you're talking about. High school computer science should be practical. It should not be a course on word processing. It should not be a course on Windows maintenance. It should teach programming.

    • by Anonymous Coward

      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.

      That would definitely be a great way to steer high school kids away from a career in computers.

      As if they could even find a high school teacher who could teach it. I never found a college professor who could.

    • This. Exactly. They don't teach Computer Science, they teach programming and some of the soft areas around programming. There's absolutely nothing wrong with that - but it's not Computer Science as defined at the collegiate/university level.

      Actual computer science would likely bore the bejeesus out of high school students and yield little benefit except to those already determined to pursue a CS oriented path after graduation.

      • X as taught in high school is not the same as X defined at the collegiate/university level.

        Isn't that rue for all X?

    • I don't think there are high school level texts on computer science. They may have something about programing (not the same as CS), they may have an introductory electronics text, but I don't think there's a good introductory level text that skims the surface of what computer science encompasses.

      Thought that's not really needed. I think high school should be the prerequisite before you really dive into computer science as a major in college. Just like high school science just skims the simple surface, yo

  • by BenFranske ( 646563 ) on Wednesday January 31, 2018 @12:51PM (#56040823) Homepage

    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.

    • The AP CS course back then thought me nothing. By the time I was old enough to take it, I was already way past it. One of the "hardest" tests was creating a linked list with pointers with some simple user input/output. Not particularly "advanced" and was very disappointing. My suspicions are that students who rely on elementary and high schools to teach them about computers, in any capacity, aren't learning much. They're also robbing themselves of the time when it'd be easiest to pick up the core concepts.
      • by jandrese ( 485 )
        Yeah, I knew I was going to be a CS major in college so I took the AB test and then discovered that basically no colleges I applied to gave it time of day. I still had to suffer through the stupidly easy "weed out" class like every other freshman in the program.
    • I completed my CS degree in 1991 and my A-level CS 3 years before (in the UK). There we no specific textbooks back then either, but there were a lot of books to buy if you wanted to succeed. Various languages, electronics books, computer architecture books, formal methods books, graphics algorithms etc. Some of the lecturers published a list of "books you might like to get". No teaching was directly from a book. When did it become expected that a CS course needs a textbook?

    • My programming class used the ANSI C specification as the "textbook". Teacher said it was optional, but recommended.

    • by h4ck7h3p14n37 ( 926070 ) on Wednesday January 31, 2018 @02:08PM (#56041479) Homepage

      You took a C++ course and you didn't use Stroustrup's book, "The C++ Programming Language"? Isn't that like learning C and not reading K&R's book about it or taking a course on design patterns and not reading GOF?

      There are a lot of classic computer science texts that I would expect all students to be familiar with.

    • by godrik ( 1287354 )

      Note AP CS and AP CSP are different classes. AP CS is meant to be more technical. AP CSP is meant to be less technical but "inspire" more.

  • by mnemotronic ( 586021 ) <mnemotronic AT gmail DOT com> on Wednesday January 31, 2018 @01:00PM (#56040897) Homepage Journal

    ... Or is the high AP exam pass rate enjoyed by AP CSP students proof that no-more-books works?

    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?

    • And one could argue that the high failure rate of software today indicates that whatever these kids are learning - in high school and college - isn't translating to quality software. I think that is the underlying issue. Textbooks might not be appealing to students (or teachers) who want to "do," but far too often we see developer running before crawling. There is a lot in that textbook that they need to learn still.
  • by Anonymous Coward on Wednesday January 31, 2018 @01:01PM (#56040909)

    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.

    • This is true about almost any established subject.. texbooks are basically a money making scam for schools.
  • What value does a textbook really bring to a classroom beyond being expensive? I love reading but I stopped buying physical books years ago. Maybe the library at the school can have physical books for students who like a physical book. Most would be better off using a more interactive medium; especially for subjects that change often or are difficult to master/understand, like math or computer science. Oh, did you hate history? There are some great YouTube channels that make it fun.

  • it's not a real CS class! I'm kidding of course. Many of those books weren't textbooks by any stretch, any more than a dictionary or the DSM is a text book: good reference, but not with "lessons" and such. My best CS classes were when the prof used a reference book and wrote their own curricula, rather than a "textbook" and just following the built in lesson plan.
    • I used to call those guys Tweedle Dee and Tweedle Dum. The Deitel and Deitel books are absolutely awful! My introduction to C class used their book and it was a bad joke compared to the definitive text by Kernighan and Richie.

      People should be using the well known texts from accomplished authors.

      • by jockeys ( 753885 )
        We always pronounced it out loud as "DEEdle and DIEdle" (rhymes with "beadle" and "bridle") with the same general idea you had e.g. Tweedledee and Tweedledum.
  • Textbooks are for student loans in HS the gov is paying most of the costs so they can say no to textbook BS.

  • I imagine that the content of computer science changes too fast to be worth publishing a book. By the time the authors have finished the book, and it gets published, there is some new topic that needs to be covered, and other methods get disused. How about Math teachers, or History teachers? Do they still use textbooks?
  • Hands on experience beats textbooks pretty much every time. If your school has a computer lab (AKA you are in a first world country) then there isn't much point studying from the book instead of just doing it yourself and learning how it works. Later on when you start talking about making inductive proofs and the like then the books become necessary again, but for high school CS there is basically nothing that isn't best done directly on the computer.
  • I'd highly suggest some kind of book.

    When I did programming classes in high school the teacher used a book specific to each language we were taught. We didn't take them home; they stayed in the classroom. The books were most useful for assignments, but the reading material was good too. The teacher's background was Mathematics and teaching; and he did fairly well. But what he brought most to the table was outside the book - discipline as we were also graded on comments, explaining what it did, and more t
  • The lack of a textbook is intentional, to instill a general hatred for documenting any code. All the explanation they will need is in the comments.
  • by yayoubetcha ( 893774 ) on Wednesday January 31, 2018 @03:50PM (#56042309)

    I think, if you need a classroom course in Computer "programming" (forget about 'science'), then computer development probably won't be for you.

  • There are now two AP courses for Computer Science. The first is Computer Science A, which is essentially CS 1 taught in Java. I've had students go directly from that course into Data Structures/Algorithms at a university and they do fine.

    The other course is a few years old, and it is called AP Computer Science Principles. I haven't taught that course, but I have been to professional development workshops preparing teachers to teach it. Those of you who work in universities may be aware of "general educa

"The number of Unix installations has grown to 10, with more expected." -- The Unix Programmer's Manual, 2nd Edition, June, 1972