New to CS? Start Here!

Hello! This is my Processing Foundation Teaching Fellowship project for Summer 2021!

This starter kit aims to support teachers, especially those who are new to teaching coding and CS, with a highly curated (and hopefully easy to use!) starting point as they begin developing their own teaching practice, specifically with using p5.js and Javascript. If this is you, welcome!

We will be doing this through the lens of creative coding, which I and many other educators have found to be most broadly accessible to all students.

All are welcomed to use and adapt the materials in this kit, whether or not you have prior experience teaching or learning coding and CS.

However, this starter kit will likely be most useful to those of you who:

  • want to teach text-based coding to your studentsPerhaps your students are older and want to learn coding in a more transferable language like Javascript?
  • Perhaps your students seem ready to move on from blocks-based programming languages like Scratch?
  • identify as a learner yourself and plan to be learning alongside, or a few steps ahead of, your students
  • are interested in using creative coding as the lens for your teaching practice
  • will be teaching in an environment with reliable internet connection (because we will be primarily using the p5.js web editor as our main programming and teaching tool)

The world of CS and coding is vast, which means it can be very overwhelming and challenging to navigate. But the last thing you need when you are figuring out how to teach your classes next week (or tomorrow!) is to have hundreds of tabs open on your browser! This kit will attempt to distill and curate a small set of resources – just enough to get you started.

Each section will highlight one major concept in coding that will allow you and your students to slowly build up the complexities of your programs. You might consider these “units” or “chapters” in your own classes.

In each section, there will be:

  • BIG IDEAS: the main takeaways we want students to get from this unit
  • LEARN: resources for you to review as a learner, which usually include more details than you will cover with your students
  • MOTIVATE: possible guiding questions for this section (see explanation below*)
  • TEACH: ideas for in-class activities to teach these concepts
  • PLAY: open-ended projects for your students (and you!) to practice these concepts
  • REFLECT: questions and prompts for students to reflect on their learning, which can be used for individual journaling or full-class discussions

*These sections are currently titled according to the concepts that students will learn – my hunch is that this is most useful to you as a teacher. However, in my own classrooms, I anchor using project prompts instead, so that students see the reason and motivation behind learning concepts and how they are useful in their own projects.

For example, instead of telling students we will now be learning about if statements (conditionals), I prefer to offer the provocation “How can we make our lovely animations, that we created for our last project, loop over and over again like a GIF?” Once students think through the problem, they will find that we need a way to detect a condition (something goes off the screen) and only do something (move it back to the starting point) when that happens.

All materials are licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International.

I have to admit that when I was first starting out teaching CS, I tried very hard to avoid using any CS jargon whatsoever. While that helped students not get intimidated right off the bat, I have learned over the years that not teaching the actual CS vocabulary can actually be disempowering.

In this starter kit, we will point out places where CS jargon (vocabulary) can be introduced and used – these will be in bold throughout the starter kit. I suggest that teachers make a very specific point when introducing jargon and naming it as such, so that students know these are not terms they are expected to already know, even though they are in English.

Words have power and we should help students claim this power in order to build their confidence as they go along. If they have learned when and how to use if statements, they should know that this is called “conditionals.” This also allows them to engage more confidently with the wider community of coders and computer scientists.

I would value your feedback to continue to improve starter kit and make it as useful as possible to teachers.

So find me on Twitter (@angichau) and help me make this kit even better! I would love to hear from you!