2018-2019 APCSX Assignment #1 Notes and Assessment

Assessment of Students’ Work

  1. For the portion of Part 1 where students were told to translate algorithms into English, I sampled and studied students’ translations of the JavaScript program that outputs the string of characters "hello, world\n".
    • Here are some examples of what I consider to be very good English translations of the JavaScript code for Program H (Hodegepodge), part 1.
      • Submitted by Monisa Prasad:
        1. Concatenate the strings "hello, " and "world".
        2. Display the result string followed by a line feed.
      • Submitted by Lucas Fischer:
        1. Display the individual words " hello" and "world", separated by a comma and space, as one line.
        2. After displaying that message, create a new line.
      • Submitted by Matthew Leslie:
        1. Prepare the string "Hello, world"
        2. Print the string to the screen.
      • Submitted by Khanh Nguyen:
        1. The first string "hello " will be connected to the second one "world" into another string which is passed to alert as the output.
      • Submitted by Fillip Cannard:
        1. Print the text "hello, world".
    • Mistakes and Areas for Improvement
      • Many students did not write complete, properly punctuated sentences. Neglecting to put a period at the end of a sentence was a common mistake. It is important to pay attention to terminal or semi-terminal punctuation marks, especially semicolons, when coding.
      • Many students neglected to mention the newline character that the program prints. Perhaps the fact that the newline character was not mentioned in the original comment above the JavaScript statement partially explains why many students did not note this detail. Attention to detail when programming is important. And programmers must be careful not to be fooled by comments, which are ignored when a program runs. Of course, comments and code that conflict with one another can raise troubling questions for programmers trying to read and understand a program.x
      • Several students altered the capitalization of letters (e.g. the letters 'h' and 'w' at the beginning of the words hello and world) and sometimes added punctuation marks (e.g. adding a terminal '!' character). Programmers should be wary of reinterpreting code or requirements that someone else has written. Generally, doing so should be avoided unless strong evidence or a powerful authority can be found to justify the change.
      • Some students wrote instructions that were not very precise at all (e.g. "say hi to the world"). Sometimes instructions were, perhaps, a little too precise (e.g. "Write the following words on a blank piece of paper:"). Sometimes instructions were somewhat muddled or confusing. But often, students gravitated to what I would consider to be a nice balance between specificity and generality ("Output the phrases", "Print the word", "Print the text", etc.).
  2. For the portion of Part 1 where students were asked to translate programs into TOY programs, I looked at students’ attempts to compose a program that outputs the concatenation of the hexadecimal equivalents of the decimal numbers 3 and 10 (i.e. "3a").
    • Examples of Good Work
      • Jake, Jackson, Matthew, Lucas, Vasu, Brian, and Lewis submitted identical TOY programs that work perfectly. Jake and Brian noted that they collaborated with Jackson on this particular TOY program. Starting addresses varied. (The starting address doesn't matter in this particular case.) Here's the 5-instruction TOY program that this group submitted: 7033, 90ff, 7061, 90ff, 0000.
      • Fillip submitted a similar program that also works great: 7033 90ff 7161 91ff 0000.
      • Ethan Bardon’s program produces the correct output and then some: 7a0a, 9aff, 7633, 96ff, 7661, 96ff, 0000.
      • Jaden Baton submitted one TOY program for all four statements that culminates in a program that outputs "3a".
    • Mistakes and Areas for Improvement
      • Some students forgot to include a halt instruction.
      • Sometimes a program produced the wrong output.
      • Some students forget to specify a starting address.
      • Some students attempted the other TOY programs but not this particular one. This one was a very easy TOY program to write, although you might have had to ask some clarifying questions to realize just how easy is really is. Moral: Ask if you aren't sure or if you feel stuck.
  3. One student failed to print and attach a hard copy of the assignment to their notebook as they were instructed and reminded to do. Another failed to submit an electronic copy of their work. Failure to follow instructions, especially after being reminded, is an excellent way to get noticed and remembered. I need electronic copies of work to help me keep track of exactly when work was submitted and to provide a backup in case something happens to a hard copy. Electronic copies are also needed so that I can copy, paste, and execute programs that students write. I ask students to be responsible for printing hard copies of their work, partly because a hard copy is protection against somehow losing or not receiving an electronic copy. Mainly, however, I need hard copies because I like to look at students’ work spread out on a large surface so that I can effectively compare work products and fairly (as fairly as possible, that is) assign grades. It costs me a noticeable amount of time to print hard copies of each submitted assignment; in contrast, it costs everyone just a little bit of time to print a hard copy of their own work; doing so shows me that students’ care and are able to follow instructions. Whether a student has followed the simplest, most basic instructions associated with an assignment is one of the very first things I notice and, if they haven’t, is one of the last things I forget about them. (Another thing I notice and don't easily forget is students who play video games when they should be paying attention in class. It is not uncommon for one mistake to lead to another and another. On the other hand, success often comes much easier to those who have worked and succeeded in the past than to those who haven’t.)

Notes

On Thu, Sep 20, 2018 at 4:38 PM Jaden Bathon asked:
How would you get Toy to print a newline?
Mr. Spurgeon's answer: Like this...