Link to this page:
Go to the latest lesson.
Previous Years: 21–22, 20–21, 19–20, 18–19

Classroom Resources

First Day, 2022-08-17

Welcome to Computer Science

Computing in the News

The Next Big Jailbreak in Tech: John Deere Tractors

Join Your Class in Google Classroom

Make Something with a micro:bit



Google Classroom

Please write about your accomplishments today in Google Classroom.


Computing in the News

iOS Privacy: Announcing - see what JavaScript commands get injected through an in-app browser

Join Your Class in Google Classroom

Finish Wednesday’s Google Classroom assignment if you haven’t

Radio “Beacon Hunt”

Create a beacon detector

If you have trouble making it, use Mr. Briccetti’s.

Beacon Code

Here’s how the beacons work, if you’re curious:

Hook up a battery, take it outside, and find the beacons.

Where They Were

Pictures of the hiding places

Make Something with a micro:bit, perhaps using a tutorial



Google Classroom

See the question there, which is due today.


Computing in the News

Top Languages

Top Programming Languages 2022

micro:bit Radio Feature

  • Explanation of the radio code from last Friday
  • Practice with radio code

BJC Sparks Hardware Unit and Making/Crafting

You will document your plan, and when it’s approved you’ll be given access to materials. We want to avoid having students make things that aren’t tied to computer science learning.

Hardware Unit

Finish outstanding Google Classroom assignments


Computing in the News

Senator Slams Amazon’s ‘Ring Nation’ As Surveillance-State TV

What’s Mr. Briccetti Doing for Fun Lately?

Beauty and Joy of Computing

BJC Logo

This year, we will study computer science using the Beauty and Joy of Computing curriculum, first developed at U.C. Berkeley, later adapted for high school, and recently, adapted for middle school.

BJC Introduction from U.C. Berkeley Professor Dan Garcia

Submit a Student Progress Report


Computing in the “News”

Local Computer Science Teacher Fooled by Fake Iain Armitage YouTube Channel

by Dave Briccetti

Local computer science teacher Dave Briccetti thought he was chatting with the real Young Sheldon actor, Iain Armitage, on a YouTube channel called “Iain Armitage”, and on Mr. Briccetti’s own channel when the imposter subscribed to it.

Briccetti showed his students at one of his schools that “Iain Armitage” had subscribed to his YouTube channel, and they were quite excited. Briccetti tweeted about how excited the classes were, and @mentioned the real Iain’s Twitter account.

Iain’s representative, who manages the account for him, saw this, and very kindly contacted Briccetti via Twitter private message to let him know that he had not, in fact, been communicating with the real Iain, and that the only YouTube channel belonging to Iain is Iain Armitage: Iain Loves Theatre.

Mr. Briccetti was very annoyed that he had been tricked, and set out to expose the impostor and get the YouTube channel shut down. He wrote the following as a reply to a recent posting on the fake channel:

“Don’t be fooled. Iain has nothing to do with this channel. It’s fake. Ian doesn’t do social media, according to his people.”

Iain’s lovely but credulous fans would not believe Mr. Briccetti. You can read much of the conversation.

Before long, Mr. Briccetti had the evidence he needed to convince the fake account subscribers that they were interacting with an imposter. Iain himself made a video which Briccetti shared with those subscribers. Only then did they start believing.

Video where Iain says don’t do that

Many of the subscribers then reported the channel to YouTube. Iain’s representative told me it had already been reported to YouTube, but no action had been taken.

Less than a day later, this is what appeared when visitors attempted to return to the fake Iain Armitage account on YouTube:

The YouTube not found image

How to Use a Servo Motor

Some of you will use a servo motor in your interactive pet, Hot Wheels track, or other projects. Mr. Briccetti shows you how to program it.

Servo connection

Reporting Progress on Your Projects

Each time class meets:

  • If you’re working on a multi-day project (Hot Wheels track, interactive pet, etc.), update a Computer Science Project Status report. To create the document (once for each project), go to Google Drive and create a document using the template Computer Science Project Status [your name]
  • Submit a Student Progress Report.

Screen shots of creating a progress report


Computing in the News

The Making of Smalltalk Event at the Computer History Museum

Photo of Mr. Briccetti with the Agile Mind Team Dave Briccetti (left) with Adele Goldberg (center) and the Agile Mind Team in 2006

Using Tilt to Move a Servo

Using map to Convert Values

MakeCode blocks to map tilt to angle

Please mention in your Student Progress Report today whether you were successful.

Remote Control

Can you think of a way to use two micro:bits, one as a remote control, and the other connected to a servo?

Work on Projects

If you’re doing an interactive pet or Hot Wheels track–related project, you may have time to work on it today. There are more ideas for projects in the BJC Sparks curriculum (links in Resources section above). Be sure to update your Computer Science Project Status document.

Procedure Change

Please submit a Student Progress Report every day we have class.


Grades 6 and 7 only, today.

Multi-Day Projects Planning

Find the Shared Project Status Reports Folder

From Google Classroom, go to Classwork, then Class Drive Folder. On the left choose Shared with me. You should see the Project Status Reports folder there.

Create a Shortcut to the Projects Status Reports Folder

Right-click on the Project Status Reports folder and choose Add shortcut to Drive. Choose My Drive, then ADD SHORTCUT.

Move project status reports to new shared folder

To move a status report you have already created to this folder, choose My Drive, locate your document, right-click it, and choose Move To. Choose Project Status Reports, then push MOVE.


Computing in the News

Rights Groups to FTC’s Lina Khan: Please Kill Amazon’s iRobot Acquisition

Wi-Fi is not the Internet

The Internet is a worldwide network of computer networks. Many Internet users connect to the Internet via a cable modem, which is connected to a Wi-Fi router. Individual devices connect to the router via cables or via Wi-Fi. If accessing the Internet is slow, you may not know whether it’s Wi-Fi or your connection to the Internet that’s the problem.

How to Save and Load Your MakeCode Projects

Hi, all. If you’re finding that your MakeCode projects aren’t being automatically saved to your computer’s web browser, or you want the ability to work on different computers over time, you can create a sharable link that you can use later to resume work on the project. Look for the share icon (next to the house icon) at the top right of the MakeCode web page. When you get the link to your project, save it somewhere, perhaps in a document or spreadsheet in your Google Drive.


Run RoomHelper3000. We’ll use this for quizzes, asking for help, and getting instructions. Find out the RoomHelper3000 row and column where you’re sitting: Seating groups (Ignore the “not secure” warning from the browser. Things are secure from the public, because this program is only running at the school.)

Multi-Day Projects Planning

Grade 8: Go to Google Classroom, Classwork, and look in Action Required for Move project status reports to this folder. Please move or create your reports here.

Work on Projects

If you have a completed project status report, and it’s located in the shared Project Status Reports folder, and it says how you will use a micro:bit, come get what supplies you need, and work on your project.


Computing in the News

Ingenious Underwater Drone Can Transition to Flight in Less Than a Second

Project Status Reports

Here’s an example of how to create your progress updates:

Progress details
2022-09-07: Decided what the interactive pet will do
2022-09-09: Made the pet from felt and googly eyes
2022-09-14: Programmed the pet to beep when it’s hungry

Remote Control of a Servo

Here’s an example program. You could download it to both the gate controller (the micro:bit connected to the gate) and to the remote control.

Manual open/close program

Another Project IDEA from BJC Sparks

Unit 3 Lab 7: Collaborative Chain Reaction, Activity 1 Video of a chain reaction

Work on Projects


Computing in the News

Uber Hack

Review Project Status Reports

Who Filed a Student Progress Report Wednesday (and Who Didn’t)

Lesson: Using a Loop with a Servo Motor

Servo in a loop

Work on Projects

Grade 6: Root Beer Floats at 2:40


Computing in the News

Morgan Stanley Discarded Old Hard Drives Without Deleting Customer Data First

Who Filed a Student Progress Report Last Time (and Who Didn’t)

Programming the micro:bit using the Python Language

Plotting Points in a Loop

while True:
    for y in range(5):
        for x in range(5):
            led.plot(x, y)

Move a Point with Tilting

x = 2
y = 2
while True:
    led.plot(x, y)
    ax = input.acceleration(Dimension.X)
    ay = input.acceleration(Dimension.Y)
    if ax > 100 and x < 4:
        x += 1
    elif ax < -100 and x > 0:
        x -= 1
    if ay > 100 and y < 4:
        y += 1
    elif ay < -100 and y > 0:
        y -= 1


Computing in the News

Autonomous Lawn Mowers

Move a Point with Tilting

Shared Project

Try adjusting the four constants at the top of the code to make the program work better.

TILT_IGNORE_THRESHOLD = 10  # In milligravity units

x = 0.0  # world unit coordinates (from -1 to 1)
y = 0.0
speed_x = 0.0
speed_y = 0.0

def world_to_led(coordinate: float):
    'Convert a coordinate in world units (-1 to 1) to LED units (0 to 4)'
    return Math.round(, -1, 1, 0, 4))

def adjusted_acceleration(dimension: float):
    acceleration = input.acceleration(dimension)
    enough_tilt = abs(acceleration) > TILT_IGNORE_THRESHOLD
    return acceleration / 1000 / SPEED_DIVISOR if enough_tilt else 0.0

while True:
    led.plot(world_to_led(x), world_to_led(y))

    speed_x += adjusted_acceleration(Dimension.X)
    x = Math.constrain(x + speed_x, -1, 1)
    if abs(x) == 1:
        speed_x = 0

    speed_y += adjusted_acceleration(Dimension.Y)
    y = Math.constrain(y + speed_y, -1, 1)
    if abs(y) == 1:
        speed_y = 0


Work on Projects

Let’s finish our projects this week and start on something new next week.


Review Project and Student Status Reports

Final Work Time

Project Demonstrations

Silently Grade Yourself

1: disagree, …, 5: agree

  • Project is interesting, fun, and creative
  • Project involves a micro:bit
  • Everyone on team understands code
  • Project status reports were updated each workday
  • The team made good use of time

How many points total?

What to do with your project

  • One of you take it home (except for electronics parts like micro:bits and servo motors)
  • Take off and return reusable materials and discard the rest


Grades 7 and 8 only.
Power was out. Some groups described their projects. We played with Hot Wheels, ping pong balls and balloons.


Grades 7 and 8 only.

What’s Mr. Briccetti Programming for Fun Lately?

A webapp to help with laser cutting name cards

Laser Cutting Video

See Photos and Video of your micro:bit Projects

See the link in Google Classroom.

New Webapp for micro:bit and Python

Let’s try it.


Computing in the News

Take a ride around San Francisco in a driverless taxi

Grade 6: Introduction to BJC Sparks and Snap!

BJC Sparks for Middle School and Early High School

Grades 7–8: More with the micro:bit

In this program, you must feed the pet before it runs out of energy.

Image of code

Here’s a program where you have to pet the pet within five seconds after the pet rings a bell, or the pet goes to sleep.

Image of code

Do these programs give you ideas?

Maybe some of you will try writing a similar program with the new



Run RoomHelper3000. We’ll use this for quizzes, asking for help, and getting instructions. (Ignore the “not secure” warning from the browser. Things are secure from the public, because this program is only running at the school.)

Grade 6: Continuing with BJC Sparks and Snap!

Super short story

BJC Sparks for Middle School and Early High School

Grades 7–8: More with the micro:bit

New Webapp for micro:bit and Python

Let’s spend some more time with it together.
Simulating rolling two six-sided dice.


Starting Our Sessions

Have our class web page (this page) open in one browser tab, and RoomHelper3000 in another tab, and keep both tabs open.


Privacy with Photos and Videos


Run RoomHelper3000.

More on Dice Throws

Result of running dice histogram program

Show and Tell: Temperature Collection with Raspberry Pi Pico W

Temperature collection code

Grade 6


  • Making a little game

Grades 7–8

  • Free learning time with any of
    • micro:bit
    • Circuit Playground Express
    • Snap!
    • BJC Sparks


Computing in the News

How a [White Hat] Hacker Cracked a CNN Correspondent’s Password

Grade 6


  • Making a little game, continued

Grades 7–8


“p5.js is a JavaScript library for creative coding, with a focus on making coding accessible and inclusive for artists, designers, educators, beginners, and anyone else.”

Online p5.js Environment

Mr. Briccetti’s Software Page, with several interesting p5.js projects.

Before You Leave


Computing in the News

Halloween Spider

Grade 6

Halloween-themed games in Snap!

Trick or treat game
Candy scripts

Grades 7–8


Online p5.js Environment


Computing in the News

Google execs knew ‘Incognito mode’ failed to protect privacy, suit claims

Numbered Chromebooks

You no longer need to use only the Chromebook with your classroom student number.

Who Completed Wednesday’s Student Progress Report?

12:30 (not 12:32) Period 5 Dismissal

Halloween-Themed Games with Snap! and/or p5.js

Where to Find Images



Computing in the News

Elon Musk and Twitter Layoffs

Grade 6

More with Snap!. Explore the Snap! Crash Course.

Stuffing and turkey project:
Stuffing and turkey

Grades 7–8

More with p5.js. Intro to 3D. Examples.


Who is Completing Student Progress Reports?

Grade 6

Beauty and Joy of Computing Unit 1 Lab 3: Dealing with Data

Grades 7–8

p5.js Lessons


Computing in the News

Programming languages: C++ overtakes PHP, but JavaScript, Python and Java still rule

Grade 6

Beauty and Joy of Computing Unit 1 Lab 3: Dealing with Data

A more commonly used way to chart the same type of data:
Spreadsheet sports counts

BJC Unit 1 Lab 4: Image Manipulation

Grades 7–8

p5.js Lessons
Explanation of the line program. Challenges 1 and 2.


No grade 7 today.

Computing in the News

Intel’s new deepfake detector can spot a real or fake video based on blood flow in video pixels

Pictures from 2018

Free Learning Time Activities


Run RoomHelper3000 if Mr. Briccetti so requests.

Before You Leave

Submit a Student Progress Report.