WHY and HOW to Structure a High School Computer Science Curriculum (Along With One Semester on Euclid’s Axioms and Proofs)
My goal here is to describe 6 or 8 one-semester computer electives in high school mathematics leading up to and/or beyond AP Java and AP Computer Science, plus a semester course on Book One of Euclid’s Elements explaining how ancient Greek concepts of the objects and methods of mathematics are relevant to school mathematics today.
Let me get my thoughts on Euclid off my chest first. Euclid of Alexandria drew his concepts of mathematical points and lines in a plane from outside mathematics, namely from mechanics, specifically from two simple idealized mechanical tools—the floppy compass and the unmarked straightedge. Floppy and unmarked meant that Euclid’s derivation of geometry was coordinate-free, that is, not based on numeric transforms preserving shape and/or area. Likewise, Alan Turing drew his concept of arithmetic computability from outside number theory and formal logic, namely from local manipulation of strictly adjacent symbols using pencil and eraser on an idealized endless tape. It’s amazing to me that Euclid and Turning revolutionized mathematical explanations and insights along the same lines—by moving away from the big picture and concentrating on localized procedures. For both men, the pen was not mightier than the sword. Rather, the eraser was mightier than the pencil! Talk about less is more!
I love it when a curricular purpose comes together.
You can see my Day-One 9th Grade lesson introducing the MessageBox at PraxisMachineCodingLessons.com, under Lessons for Students. Now I want to take a first cut at the whole picture.
All my courses from the very first intend that students can operate with mathematical tools consciously, not just correctly. Self-awareness concerning mathematical activity, symbols and tools is the core of my curriculum. Euclid and Turing were both aiming at mathematical self-awareness, and my students must develop an instinctive sense of “Simon-Says-May-I” where mathematical gestures are concerned. To be frank, this self-analytic mindset does not sound like a middle-school mindset to me. Therefore I don’t want my curriculum pushed down below 9th grade—not even for the hopelessly precocious.
I admit that self-analytic mathematics doesn’t exactly sound like typical 9th thinking either, but at least high schoolers are more in the ballpark. At least they modulate a hundred times a day between painful self-awareness and total cluelessness. And their math thinking is no exception.
For me, self-analytic mathematics ‘merely’ requires Piaget’s highest level of mental processing, namely, formal operational thinking. Piaget observed that formal operational thinking comes online in adolescence and continues throughout adulthood, but ‘continues’ is too strong a word. In reality, all of us grownups engage in formal operational thinking only sporadically—typically when all else fails, and often not even then. Instead, most of us grownups happily accept semi-permanent self-contradictory premises in our thinking, especially in areas we care about strongly.
So let’s not impose additional mental self-awareness upon our young middle school citizens during the early throes of adolescence. Instead, let’s warm up our middle schoolers for formal computer science thinking via plenty of concrete operational technology—tools and tasks such as robotics programming, 3D printing, systematic data gathering, spreadsheet calculations, and so forth. We’ll reserve ‘real’ formal computer programming for the high school curriculum.
But how much can we reasonably expect in the way of abstract mathematical thinking from a general high school mathematics population starting in 9th grade? To be sure, we’re proposing an elective computer curriculum and students with ‘the knack’ will self-select themselves. But it would be very nice if a significant fraction of all freshman and sophomores selected a half-credit or more of ‘real computer programming’ alongside their core mathematics required for graduation. After all, programming computers is at least as cool and provocative as dance, psychology, or business management. And formal computer thinking could actually energize and fertilize mathematical thinking in required algebra and geometry courses taken alongside. Guidance counselors could think of computer programming courses as non-remedial math intervention.
So here is our dilemma: how can we foster success, accountability and graduation credit in mathematics for all high school students who elect computer programming, particularly students who opt into beginning computer programming courses with no intention of going “all the way”? Can we offer them a middle ground between easy-A and geeks-only?
Supporting the ‘easy’ side is the fact that computer programming is inherently hands-on with lots of instant feedback. Pressing the keys and moving the mouse is bound to produce some results, and teacher’s brief suggestions can often demolish roadblocks to intended results.
Supporting the ‘geek’-side is the fact that computer programming is indeed something you have to do, not just talk about or appreciate. Computer programming is a form of technical writing and editing, and every computer language really is a language all its own.
But a first-semester high school computer programming course should be a fun-run, a come-one-come-all footrace for a good cause. Everyone who buys the sweatshirt receives the recognition provided they actually start the race and finish at least half the course. A good time will be had by all, provided you can arrange things so that the sprinters and the stragglers do not get in each other’s way.
I have in mind a modified mastery grading system—mastery of the first 60% of the course for a grade of D, 70% for a C, and so forth. The hands-on nature of computer thinking and coding makes individuated progress in the second half of the semester more practicable than you might think. The first half of each semester would be primarily group-oriented, lecture-based, and hands-on every day. The second half of each semester would be primarily project-oriented, tutoring-based, remedial as necessary, and hands-on every day.
Course Breakdowns Will Follow ….