3 ms·
Typing in a program from a paper source forces you to think about each line you're entering, it's more than just a 'slow way to distribute a program', it's also
by NikkiA 8y ago
Typing in a program from a paper source forces you to think about each line you're entering, it's more than just a 'slow way to distribute a program', it's also a teaching exercise along the same lines as how writing your notes in class are part of the learning exercise that reinforces your mental model of the subject.
- organsnyder 8y agoI remember typing in a quiz-show game from "More BASIC Computer Games" (the sequel to this book) and somehow ending up with it displaying the answer and expecting the question. My dad helped me debug it. I was around seven years old at the time; I entered quite a few of the games in that book into our Tandy 1000 TX, using the ZBASIC compiler and editor, moving on to writing my own programs once I understood what I was copying. I've come to recognize that experience as one of the foundational pieces of my long-term career development.
- bluGill 8y agoMost of the lines I typed in where "2050 data 100,98,0,0,45,128,..." up to the maximum line length (256 character?) at which point it was "2060 data...." Nothing to learn there. I suppose I could look up each opcode and figure it out, but even then there were no names to guide me as to what anything means.
- cr0sh 8y agoYou were either typing in mostly game code (with a simple BASIC HEX ML loader), or were using a machine with a limited form of BASIC that didn't allow for easy graphics manipulation (the C=64 and VIC-20 were famous in this regard). While I recall doing the same on my machine (TRS-80 Color Computer) - it was usually to get functionality that was lacking otherwise. I recall having to type a ton of DATA statements for an ML program that would give you simultaneous graphics and text on screen, like it was a native mode. Then there was another program (called "Bells and Whistles") that was essentially a 4-track music editor, similar to 90s era "tracker" programs; you could define simple waveforms as different "instruments", then build your music in a note-by-note "tracker" style - except the tracks ran left-to-right, not top-to-bottom! It would then output the music and show the notes playing (scrolling) - four channel, 6 bit music, with user-defined waveforms and envelopes. Truely amazing at the time! Especially considering the TRS-80 CoCo did -not- have a sound chip. It was all done by the CPU and a 6-bit DAC (which was also used by the cassette tape interface for storage, as well in a convoluted manner by the joysticks).
- bluGill 8y agoI was probably typing in a program that was written in assembly language, and then the bytes were output so that I didn't have to type in the assembly code (which would be even more keystrokes with only limited additional ability to understand, not to mention everybody has BASIC, assemblers were rarer). I was doing this on an Atari 400. There was plenty of power available from BASIC to get at the graphics and sound, but there wasn't the speed. BASIC was an interpreted language and so you had to drop to assembly to get enough speed for a large program to not feel slow.
- tsumnia 8y agoFunny enough, this is my PhD research. Granted, I do agree that the examples should be more meaningful; however, offering students worked examples as typing examples to better train them on syntax errors is the general feel.
- 0815test 8y ago> Funny enough, this is my PhD research. Really, you type in codes/programs from paper printouts for your PhD? I knew that some programming communities in academia still clung to old habits and way of doing things, but not like that!
- tsumnia 8y agoNo, I developed a platform that converts code formatted from TinyMCE into a PNG which is then an exercise for students. Students in turn retype out the program. The activity requires zero high level thinking, but presents a worked example of a CS concept. Since novices struggle initially with syntax errors, the exercise serves as a scaffolded process of practicing typing syntax without also trying to problem solve [1]. The hope and thought process is that the exercises get students comfortable with writing syntax without problem-solving so that when they DO problem-solve, they can rely on muscle memory. The platform is currently deployed at NC State as an optional exercise for some of the classes and while there is no explicit "those students did better" (yet I hope...), I do have promising information like regular completers earn high final grades in the course and even potentially as an intervention tool for lower performing students. In that context, students that regularly performed lower on midterms scored higher on the final and earned a higher final grade than students that just "looked at the exercises" (it is optional). My current hypothesis on that data is that poor performing exercise completer's realized they needed additional practice, which helped boost their skills. My comment history goes in better detail, but I describe it akin to drilling in other technical skills like cooking, music, dance, martial arts, etc. I think this as an activity is one of the methods that causes much of the "prior experience" seen in some higher performing CS students. They learned about syntax errors and tweaking code while making these BASIC games, or in modern contexts like modding Minecraft. Moving forward, my research then goes into optimal exercise sequencing for learning CS. If you are compiling more syntax errors during a traditional coding exercise, maybe do a few typing exercises or output prediction exercises before trying to code. [1] https://research.csc.ncsu.edu/arglab/projects/exercises.html https://research.csc.ncsu.edu/arglab/projects/exercises.html