12-Week p5js Creative Coding Course Teaching Guide

  1. Expose students who may have not had prior chances to experience what coding is, what coding might allow people to do
  2. Understand one application of coding skills, and understand how these skills might be useful to them personally in future life and work
  3. Understand that being able to code is not only about computers, it also trains people to see and think about the world in a different way which can be applied at other areas of life
  1. produce generative drawings
  2. learn the core concepts of the JavaScript programming language
  3. learn to use the p5js library
  4. have a strong desire to continue to learn about coding
  5. make some friends with similar interests
  6. get mentors to continue learning about coding and life
  1. Students will not know any of the peers in this class, making it necessary to create opportunities and actively guiding students to interact with each other
  2. Students may be shy about asking questions or raising hands
  3. Students may be embarrassed about expressing they do not understand something
  4. Many difficulties may arise from language problems, not problems with concepts
  5. Students may be more used to point, click, drag form of interacting with computers
  6. Students may not be used to “creating” vs. “finding the answer”
  7. Students may feel the need for the teacher to tell them that they are “finished”
  1. set up computers, get ready
    1. use google meet for online students, also in case entire class needs to go online; student volunteer sets up camera for renick to see
  2. in girls' class, student assistants set up extension cords for students to plug in their computers (boy's classroom has outlets under each desk)
  3. assistant teacher checks student attendance; if a student doesn't show up within 10 minutes, we have to contact the parent, and we must speak to the parents by phone eventually (even if initial contact is by text message such as line);
  4. instructor starts the class, gives an outline of the class plan (very very short!)
  5. divide into groups, students quickly show what they made since the last class and tell one thing that they learned; set a time limit (can you finish this in 5 minutes? not more than 10 minutes)
  6. instructor introduces the topic for the day, gives a quick demonstration; this shouldn't last long (5 minutes?)
  7. !!! get kids to explain to the class what they are supposed to do; kids are going to be shy to speak, maybe; give them the chance to just point or use body language to explain what they should do next
  8. students break into teams
  9. students start working through the lesson with assistance from the teachers
  10. have a 10 minute break in the middle of class
  11. at the end of the class they can show their progress and say one thing that they learned (short, 5 minutes)
  12. put computers away, clean up the classroom, go home
    1. end of class, all students clean
    2. student volunteers make sure class is clean
    3. return borrowed items to the security guard booth: flags, alcohol, thermometers, extension cords

Student meet names should be actual English name.

Students should be divided into group rooms for practice .

Each room has 1 TA or instructor.

Class start and end should happen in general room.

Students must share feedback or discussion before ending class for each day.

Difficulties must be identified and discussed before allowing class to finish.

  1. doing over lecturing
  2. student tries to figure out on their own when possible, test some things themselves
  3. taking things apart to understand how they work
  4. teacher is giving hints rather than telling answers
  5. teacher lets students explain to other students
  6. when something doesn't work, students should try to extract that part to make the simplest example
  7. iteration; do something over and over to get used to how it works, then try to improve it through many small steps
  8. don't let students give up;
  9. don't let students skip important information;
  10. don't let students 'complete' a lesson without finishing the critical points of the lesson (the class material is open, so they may be tempted to jump ahead when something is difficult or they don't quite get it)
  1. students don't have to complete a lesson; they can proceed at their own pace;
  2. if a student is very fast, you can increase the complexity of what they should do with the tools they know, OR you can let the student proceed to the next lesson in the course;
  1. when students meet difficulties, the proper order of troubleshooting is A. students try to think and understand by self, B. students work with partner to overcome difficulty, C. student asks for help from TA, D. student asks for help from facilitator
  2. the TAs will be useful, they have probably met the same difficulties that your students are currently facing, don't hesitate to delegate a troubleshooting task to them
  1. when helping students overcome difficulties, asking questions and allowing the students to think is more effective than directly providing answers
  2. first ask questions which lead students to think through basic underlying logic (what does this command do? what does changing this variable do?)
  3. afterwards, ask questions which allow students to be able to give clear, discreet answers which will be immediately useful for taking the next step in their programming task (should this value be made higher or lower? why?)
  4. instead of pointing out where students made mistakes, show a correct model and have students attempt to identify where the difference is
  5. if student is unable to find mistake themselves, direct their attention to the line of code which is problematic and have them discuss with a partner who has written it correctly (Sue, could you help Mindy with line 23 of her code?)
  1. especially in beginning stages, student difficulties will often come from language difficulties, don't panic if student uptake is slow
  2. allowing students time to think after small prompts from the teacher will be beneficial for student growth, getting back to a student after allowing them a minute alone first is a good idea
  3. some students may be too shy to show that they are having difficulty, instead of asking “is everything ok?”, tell them “show me what you've made”
  1. clearly state targets and time deadlines: “in 15 minutes, you will need to show me…” and set a clearly visible timer, this will also let the students know if they need to speed up or ask for further assistance
  2. after identifying a difficulty that two or more students have, it is a good idea to quickly address the class and ask “does anyone want me to talk about this a bit?”, this allows shy students to be able to just raise their hands instead of needing to personally hunt down a teacher and ask directly
  3. a session end or midsession time slot for students to share what was difficult for them is a good way to get a feeling about what the biggest challenges of each session were and gives ideas for what needs to be reviewed
  4. during whole class meetings, the TAs may be able to report the main difficulties that multiple students had/are having
  1. we have line groups for girl students, boy students, and parents; please use these to communicate with these groups respectively;
  2. we're using Google Meet for some online students, all students if we're forced to take the class online because of the pandemic; this is also for renick to monitor the class.
    1. renick can answer any question through chat. just ask!
  3. we'll be recording the class with a separate video camera; any student whose parents haven't consented to being recorded should be seated on the side of the classroom.
  4. boys' classroom has a classroom computer that can display to monitors in front of each student; girls' classroom has a projector.
  5. boys' wifi has no password;
  6. girls' classroom has password-protected wifi; get one or two passwords (more?) from renick or scott for class.

There are 12 lessons, each with their own page on a wiki.


  1. teachers introduce themselves very briefly
  2. students introduce themselves
  3. sponsors give short introductory remarks
  4. group photo (screenshot)
  5. get into the content of the first class
  6. class
  7. screen sharing of final products for the day, students state own goals for adjustments they wish to make before next class
  8. let students know a time during the week when they can mail the instructor with questions if they meet difficulties in their homework
  9. wrapup, closing remarks, homework

These are rules for online class. If any student does not follow the rules, their parent will be contacted and the student may be asked to leave the class.

1. You must be on time to each class

2. Your camera must be on at all times during classes, with your WHOLE FACE on the screen

3. If you need to go to the bathroom or leave the camera at any time, you must contact a teacher (any teacher) to ask for permission

4. You will sometimes be asked to share screen

5. You must respond when an instructor or TA calls your name

6. If you experience any hardware, software, or internet issues, send a message in the Google chat room, the student Line group, or the parent Line group. Don't just disappear.

7. Always try your best. Don't give up and stop working. There is always help available.

  • 12-week-p5js-teaching-guide.txt
  • Last modified: 5 months ago
  • by scott.chen