When in 1982, I brought my Sharp PC-1211 to my physics class in high school, it was a little marvel that my like-minded admired. Indeed, it was the first pocket computer that you could program in BASIC. It was revolutionary! Since many pocket computers were brought to market by electronics manufacturers. Only a few of them dared to offer something else than BASIC as programing language. I have many of these oddballs in my collection, with built-in support for the following languages: Assembler (not machine language via POKE/PEEK/CALL), CASL 1 & 2, FORTH, C, PROLOG, LISP, PASCAL, FORTRAN-ish, and Python. And pedantically, I would add few exotic flavors of BASIC, such as the Электроника MK 90. At the time, owning a programmable calculator or pocket computer was considered bizarre. You were definitively classified as a what we call today a nerd. Yeah, not a cute geek. Luckily, the state of education has evolved. As a result, today, calculators – an undermining name for potent computers – are omnipresent in the classrooms. Even better, teaching computer science in high-school is done in the classes the same way as math, physics, literature, or philosophy, and not segregated in the computer clubs. Of course, in the background, a bloody war was fought by the key players: TI, HP, CASIO, and SHARP. And the winner is … (drum roll) … Texas Instruments! I will not get into the details on how they achieved it here, but it was brilliant.
Fast Forward to 2019
I will talk only about what the French have picked to teach computer science in various courses, starting in high school. I believe that many other countries have similar approaches. For today’s post, I will focus on the programming language aspect of the Art. If you read French, you can download here (link) the official document describing key elements of the teaching. If you don’t, the following topics are well summarized in terms of content and the expected skills students should acquire: Computer Science History, Data Representation (types, bases, complex data structures, and processing them), Human-Machine Interactions, Hardware Architectures & Operating Systems, Programming Languages, and Algorithms. And this is for the 11th grade!
Many did and will argue that implementation should not be edited by the education ministry, and the focus should be put upon the algorithms. Regardless, and it surprised me, they went over the naysayers and picked and recommend Python as the reference language. The text reads in French as (with the important part highlighted in bold): Les activités pratiques et la réalisation de projets supposent, pour chaque élève, l’accès à un équipement relié à internet. Un langage de programmation est nécessaire pour l’écriture des programmes : un langage simple d’usage, interprété, concis, libre et gratuit, multiplateforme, largement répandu, riche de bibliothèques adaptées et bénéficiant d’une vaste communauté d’auteurs dans le monde éducatif est à privilégier. Au moment de la conception de ce programme, le langage choisi est Python version 3 (ou supérieure). L’expertise dans tel ou tel langage de programmation n’est cependant pas un objectif de formation. This bold move reminds me the radical approach of the Japanese education system in the 90s’ when, for technical and engineering teaching, they designed an ISA (COMET) and a programing language (CASL), so all students are tested equally whenever, wherever they pass a test in Japan.
When I share my interest in programmable calculators, I usually get the eyebrows followed by “my smartphone can do it.” The most advanced may even flash a calculator emulator. True! But you certainly know that smartphones connect to the Internet, and not all exams are open-book tests (and few other valid reasons such the affordability and access to the technology). And by the way, that’s why you can still buy a ten years old design calculator for more than $100 in 2019! In consequence, calculators are here for a while. Well, Numworks that I presented in an earlier post (link), with its 0100 model had a nose for things. Almost clairvoyant when they added by default to their calculator support for Python in 2017! Texas Instruments introduced this year to the French market the TI -83 Premium CE Edition Python (a particular version of the TI-84 Plus CE with localized keyboard). Now, this is interesting. I believe that TI is cleverly answering the needs of the market and is testing the water temperature in France. French students now have the choice between Numworks and TI the 200-pound gorilla. Note that in other markets, students can buy an extension module to run Python code (TI-Python). This module behaves as a hardware offload. More can be found here (link). What a great time to be a student! I will go ahead and compare the two models in the long run and see which model I find the most adapted to me. Stay tuned.