Pencil Code

A useful intro to block-based coding for motivated learners

Learning rating

Community rating

Based on 7 reviews

Privacy rating

Not yet rated
Expert evaluation by Common Sense

Grades

2–12

Subjects & Topics

Computer Science, Digital Literacy

Price: Free
Platforms: Web

Pros: Easy to jump in and start tinkering. Blends code and art. Good supporting resources and templates.

Cons: Not as structured as competitors. Debugging can be tough. Small community of users.

Bottom Line: Teachers will need to do some scaffolding and act as tech support, but if that works for you, this can be a good beginner coding sandbox.

How Can I Teach with This Tool?

Pencil Code is a block-based coding platform where students join different coding blocks together in a sequence, tweak variables of the blocks, and then run them to do things on the screen. Code can do things like display text, move a character, or draw objects. With Pencil Code's tools and supporting resources, teachers can introduce concepts like functions, loops, conditionals, and arrays. To get started, teachers will want to do some work up front, getting familiar with the tools and curating the most important resources for students. Teachers will also need to do some instruction; there's no onboarding or scaffolding. However, there's a Teacher's Manual with lessons and sample projects that can be adapted. If you want to do something more comprehensive, this would be a good option. Note that Pencil Code recommends the lessons in the manual for ninth grade and up.

Teachers could also use the site more ad hoc. Once students get the hang of the site and the basic uses of the blocks, teachers could create lessons or assignments that challenge students to use concepts and blocks to accomplish things. For instance, teachers could challenge students to use two conditionals and one function in a project that has a sprite make a geometric pattern. One issue though: There's no assignment system built into the tool, so these lessons and assignments will need to live outside Pencil Code. With accounts, students can create links to their projects for assessment. Students can also use a built-in screenshot feature to share work.

Teachers could also have students use existing shared projects for remixing, first making small changes and then moving on to use them as the basis for something more complex. Students might analyze a project's code to make predictions about the program's function before running it. 

Though most students would want to start with block-based coding, Pencil Code makes it easy to toggle between blocks and text. This can be a good extension opportunity to help demystify text-based coding. Students could use this text-based code as a foundation for projects outside of Pencil Code. Since every Pencil Code project is also a web project -- i.e., the right panel where programs run is a webpage -- this is especially well-suited to students interested in web development.

To see how this tool works, watch our video overview of Pencil Code.

Learning Rating

Overall Rating
Engagement

Sample projects can help ease students in. Lacks the vibrant communities of competitors. The site's design is spare and a little frustrating.

Pedagogy

This is a tool that's all about learning through experimentation, remixing, and creation. The focus on using code for storytelling and music fuses subject areas.

Support

There's a range of downloadable and online materials for reference. Sample remixable projects offer great starters. No onboarding, and help with coding issues is limited.

Common Sense reviewer
James Denby
James Denby Educator/Curriculum Developer

Fun introduction to coding basics!

There are many things I like about this resource. First, how you can play and pause to see how your code functions. I think the interactive-ness of this resource is great since you can edit the pencil code, press play and get visual feedback on whether you coded correctly or not. With this, it is very easy to see where you might have gone wrong in the code which can help students understand basic coding logic at the start.
I didn't like the User Interface between all the different functions. I totally understand there are a lot of functions and dividing the functions into 8 blocks which dropdown for more is likely the best approach, however, I believe this could be very overwhelming for beginner students. This would be especially overwhelming if students have no coding background as some of these tools are very large and have lots of text. An example of this is in the Snippets section, the "forever #, -> fd #, if not inside [window], stop() +" function would be extremely confusing for people knew to coding.

Continue reading

Privacy Rating

This tool has not yet been rated by our privacy team. Learn more about our privacy ratings