Computer language change
We notice some limitations of books, as well as their usefulness.
Our tutor, as we’ve noted, helps students in the standard AP Computer Science A course, which uses the Java language. He originally intended to learn it a number of years ago, and wound up buying two textbooks (the second one had a good justification that we won’t go into now). He made a little progress, but other projects claimed his attention and he laid them aside. Taking up the language again more recently, he needed a guide to what the students in the course are expected to know, and so bought a commercial AP test preparation book. He found that some features had been added to the language in the mean time, and that others his early books had emphasized were no longer very important. This is not surprising. Computer languages have a function, and as the details of what they’re called upon to do shift, so do they.
Books also have a function, and the test prep book has a very specific one. It is to prepare students for the nationwide Advanced Placement test in the spring. Now, that test does not cover the whole of the Java language, just the part officially included by the AP committee. There are certainly useful features of the language that are not on the test. Indeed, we are led to wonder why some were left out. Doing without them can lead to some clumsy and inefficient code. And we find that teachers are not doing without them. For example, a student came in not long ago asking about the “char” variable type. It’s short for “character,” a letter or number or symbol, something you’d print in one space on a piece of paper or text box. The AP book only mentioned that it was not required for the test. (It was well-covered in the old books.)
Here is a definite clash of purposes. We learn a computer language to write useful code; the AP book presented the language in order to pass a test. It’s an example of divergent aims in learning that we’ve mentioned before.
Of course, the very fact that our tutor is working from books shows that he’s a true dinosaur. To be up-to-date he should have been working from a web-based tutorial. And he did refer to one later. The problem is, as always, that the quality of anything turned up by a web search is not guaranteed, and we’ve found a great variation.
Overall, our tutor has been able to navigate Java successfully using the combination of books, in spite of their individual drawbacks. If he takes up Python, though, he may give an on-line tutorial a try.