The syllabus for each grade lists core concepts that define the skills and knowledge needed to pass that grade.
The process is simple: effectively demonstrate the core concepts in your project for the grade you are taking.
Grades are cumulative: you should understand and, where appropriate, demonstrate the core concepts from previous grades.
Most importantly, show how to use different concepts together, so your project is a well integrated and effective blend of techniques.
Core concepts can be:
- Technical knowledge about some aspect of coding ~ for example, how to write and use loops in your code.
- Skills you'll need to practise to write and develop your code ~ a familiarity with unit testing, strategies for debugging and use of source control, for example.
- Attitudes to cultivate so you become an effective coder ~ for instance, a focus on user needs or a preference for clearly written code.
- Cultural norms to understand so you are able to collaborate with other coders ~ for example, writing effective documentation or learning how to submit a useful bug report.
There are usually between 10-15 core concepts in each grade.
They are simply explained and will look something like these examples (taken from Python, grade 1):
- Assignment: an understanding that the name on the left of an
=symbol is assigned the value on the right of the
- Simple commenting and/or informal documentation: demonstrates use of the
#symbol to add commentary to code. Shows an understanding of triple-quoting at the start of files to describe the contents therein.
- Basic REPL use: can explain the R, E, P and L concept, understands the built-in
dirfunctions for exploring Python from within the REPL.
- Code review: can explain the difference between a syntax error and a runtime error. Makes use of Mu's "check" feature to reveal syntactic problems in code. Reads and understands code flow and state in order to reason about and fix code under review.
Learning core concepts
The core concepts define what to learn. How you learn them is left to you.
There are as many ways to learn coding as there are learners, and finding out what works for you is a part of your journey. The world of technology is changing fast and coders must always learn new things; therefore, learning how to learn is a fundamental aspect of CodeGrades.
A diverse multitude of online resources explain, explore and impart the core concepts ~ we encourage you to be open minded and explore... find resources that help you make sense of, and engage with, the core concepts.
(There will be duds... save yourself some time and move on. It's always good to ask for recommendations!)
To catalogue, curate and list such resources is impossible. The end result would be incomplete and folks might mistake it as an endorsement.
The only lesson CodeGrades endorses is that you learn to discern and engage with the resources, activities and educational opportunities that enlarge your coding world.
Fostering autonomy is key to your success!
Assessing core concepts
Core concepts are a key part of grading your project.
They feed into many aspects of your final result.
A well integrated and effective blend of core concepts is best;
such a project will reveal more subtle yet equally desirable outcomes: creativity, understanding, idiomatic design and code quality.
As for evidence of specific core concepts, only a maximum of 5 marks is possible.
This reflects our focus on using different concepts together, rather than mechanically completing a core concept box ticking exercise.
Here's the marking criteria the mentor uses:
1 point: No obvious attempt is made to explain or use any of the core concepts for this and previous grades.
2 points: Core concepts for this and previous grades are acknowledged but used in an inappropriate, confused or incorrect manner.
3 points: Core concepts for the grade are used correctly and appropriately, albeit for simple outcomes. The candidate demonstrates understanding by explaining why they chose to use certain core concepts in a particular way.
4 points: The core concepts for the grade are used together in a way that reveals the candidate understands their more subtle or complex aspects. They easily describe and illustrate any of the core concepts they have been questioned about. They give a critical appraisal of how such core concepts might be used in the project's context.
5 points: Core concepts for the grade are used together with fluency and in an idiomatic manner to create a well written and effective codebase. The candidate easily illustrates their considerable depth of understanding and appreciation of each core concept, along with how such concepts work together and apply to the project at hand.