Skip to main content
ALPHA    This is new software undergoing tests! Thank you for your patience.

Python ~ grade 1

Summary

Prerequisites

Grade 1 is suitable for those with absolutely no previous experience of programming.

We strongly recommend the candidate use or is familiar with the Mu Python code editor for their project and interactions with the mentor. This is the only grade where it is acceptable to use a block based development environment to create Python code for a project (see, for example, Edublocks), although candidates are expected to present their code as text (not blocks).

Core concepts

Candidates are expected to demonstrate knowledge and, where appropriate, application of the following core concepts:

Learning

CodeGrades does not provide teaching or learning content. There are already excellent lessons, resources and educational materials found elsewhere (many for free, via the internet). A good first step for candidates is to type "Python", and the core concept under study, into their preferred search engine.

An important skill to cultivate when learning to code is an ability to find, evaluate and absorb new information, skills and practices. An exciting part of such a fast changing technical world is that there's always something new to learn. Coding is an opportunity for such personal and technical growth.

Our aim is to help candidates become autonomous learners, capable of engaging with, reflecting upon and evaluating the different approaches and techniques they'll encounter as a coder.

While they are responsible for their growth and learning, candidates are supported by CodeGrades through interactions about their project with a mentor. The candidate's project is a way to practise, integrate and make use of the newly discovered skills and knowledge (informed by the core concepts for this grade).

However, candidates may find our guidance for teachers a source of useful information. I explains the sorts of activities and processes to engage in (but not the content) to increase a candidate's chance of fulfilling the requirements of this grade.

The project

This is the first grade many candidates take, so it's important to note that code mentors expect projects to be simple, small and relatively naive in implementation.

When candidates have a working project we encourage them to submit it for assessment as soon as possible, so they benefit from the help, support and feedback of a mentor at the earliest possible opportunity.

What does a successful project look like?

These three examples all passed at different levels of attainment for grade 1, and show how we expect a project to unfold:

Poetry Please (Pass)
Recreating an educational cardboard computer project from the 1980s, that writes limericks on demand.
Mask emote-o-matic (Pass with merit)
Emote a smile or a frown through your COVID mask with a CircuitPlayground Express and Python.
Splat a Cat (Pass with distinction)
A silly whack-a-mole style PyGameZero game written for my young cousins to play.

Assessment

It's helpful to understand how mentors assess and engage with a candidate's project. Our guidance for mentors will help reveal this process from the mentor's point of view.

In the specific case of the approach taken to grade 1, consider the following real-world project.

The creator, a young school-age coder, theorised that a person’s body temperature reflected stress levels. Their stress-buster device, gently and humorously created for their stressed out computing teacher, allowed the user to become aware of and then manage their levels of stress.

The creator provided evidence they were thinking carefully about the user of their project and clearly articulated their approach, aims and objectives.

They also provided engaging evidence such as this photo showing the device, as constructed by the creator.

Evidence of how the project is supposed to work (as worn by the student's computing teacher) was a joy to behold:

The Python source code for the project is reproduced below:

"""
This mask was made to demonstrate how a CircuitPlayground Express could be used to measure body
temperature and indicate stress levels. My theory is that body temperature is an indicator of 
stressful feelings and that people can better control their stress when they have a visual
indication of their own stress state.
"""
from adafruit_circutplayground.express import cpx
import time

while True:
    # get the temperature in F
    temp = cpx.temperature * 9 / 5 + 32
    print((temp,))  #Farenheight output for Mu plotting
    time.sleep(0.5)
    if temp > 91: # This is my initial theory for the stress levels and temperature
        cpx.pixels.fill((255,0,0))
    elif temp < 90:
        cpx.pixels.fill((0,255,0))

When thinking about this project's code, take note that:

As a result, the creator, with only a few lines of code, has demonstrated the majority of the core concepts described for grade 1.

A mentor may, at their discretion, ask about core concepts not directly in evidence through a candidate's project. They will definitely engage with the project via a discussion with the candidate on the project's page.

Evidence of the candidate's engagement, skill and level of attainment is gathered in the ensuing conversation about the project. This is an opportunity to create new and stimulating learning opportunities: a vehicle for the mentor to supportively encourage the candidate to achieve more than they, at first, may have imagined possible.

When the mentor feels they have enough evidence to understand the candidate's level of attainment they write up their feedback and the final result is delivered to the candidate.