CMU 15-539: Computer Science Pedagogy, Fall 2017
Homework 3
Due Mon 18-Sep at 11:59pm

As with hw1, this hw is optionally collaborative (except where indicated otherwise).

What to submit to autolab: a single zip file,, which contains a single folder, hw3, which itself contains all the files required for this hw.

  1. Logistics
    1. Teammates + Credits
      At the top of your hw submission file, list your hw teammates (if none, list that). Also, clearly list any other credits -- any sources you used in any way for this hw.
    2. Timesheet
      Keep a log of your time investment in 15-539. Record day/duration/activity, and then a weekly total. Submit this detailed timesheet in your hw writeup. In addition fill out this Time-Reporting form with the summary data of the week's time. Note that this will not directly impact your grade, but rather will just help us pace the course properly, so please report accurately.

  2. JavaScript, p5.js, and 15-104
    As discussed in class, we will invest around 2 hours of hw3 studying JavaScript, p5.js, and 15-104 for two reasons: (1) this is a strong entry in the ecosystem of pre-112 learning environments, one we should be strongly aware of when designing our own framework and user experience; and (2) this will ensure that we are ready to properly tutor 15-104 students, which we will soon be doing!, and that tutoring experience will further improve our understanding of pre-112 students in some important ways. With that said, do the following:
    1. Review JavaScript
      Review the one page of JavaScript code at LearnXinYminutes ignoring anything to do with prototypes or OOP. If you want or need more practice, do some of the w3 schools JavaScript tutorial. What to submit? The downloaded JavaScript code, slightly edited (in any way you wish, since the editing is just for you to play around with it and be sure you understand it).
    2. Review p5.js
      First, follow the steps on the p5 Getting Started page. Then, carefully look over a few of the entries on the p5 Examples page, and also carefully read a few of the entries on the p5 Reference page. Note that you will probably make frequent use of the Reference page in particular as you tutor 15-104 students. Finally, using the info on the Reference page about the keyPressed(), random() (use p5's random, not JavaScript's), and the quad() functions, edit your file you created during the Getting Started step so that when the user presses any key, a non-rectangular quadrilateral is drawn in a random location. Do not clear the screen, so each key press adds another quadrilateral.
    3. Review 15-104 course materials
      First, briefly familiarize yourself with the 15-104 F17 course website. Then, read through the Notes for week1, week2, week3, week4, and week5. This should be quick reading, but be sure you are tracking how 15-104 students are seeing this material, in what order, at what depth. Then, read all of 15-104's Week 4 Deliverables, and finally, do one part of that assignment that includes writing actual p5.js code (you can choose whichever part you wish). Submit that code as part of your hw3 submission.
    4. Prepare for a short quiz on Tuesday
      To be sure we are all ready to tutor 15-104 students this coming week, there may be a short quiz in class on Tuesday covering JavaScript, p5.js, and/or the 15-104 material listed above (if so, the grade on that would be folded into hw3 grades). We would limit the quiz topics to those covered in the week1-week5 15-104 notes and/or to the material required to complete 15-104's Week4 Deliverables. We aren't expecting deep expertise, but we do expect you to invest the time to understand and be comfortable with the important basics of each. Naturally, for some of you, this may require a bit more time practicing these materials than for others.

  3. Team-Based Exercises
    Each team that you are on will assign its own team-specific hw3 exercises. Submit those along with the rest of hw3, in your file. Note: just to the Backend team: your team-based exercises are due a bit sooner, but the rest of hw3 is due as normal (talk to your team lead for details).