Gradus ad Parnassum
An educational framing of CodeGradus...
Coding, the creation of software, is a very recent invention: it is at the same stage of development as the earliest cuneiform was to the development of literature. We have no way to predict what may come of our digital endeavours, just as the first scribes had no idea their rough marks would lead to our complex literate society.
Yet within a lifetime our society, culture and politics have been disrupted by computers. Code runs our world, and programmers are latter-day scribes. To participate one must know how to create and control this new medium; thus, the fundamental importance of coding in education.
CodeGrades is an educational exploration of code.
Our approach is to engage with our rich history of learning, education and pedagogy; to repurpose and blend existing techniques, approaches and philosophies, but applied to coding.
We don't preach a "one true way" for coding, nor do we promote a methodology.
Rather, we trust teachers know their students, and will adopt and adapt what works for their unique situation.
We merely provide a process based upon three aspects of education historically used to acquire skills and knowledge requiring significant investment of time and effort:
Journey to experience
Gradus ad Parnassum (Latin for, "steps to Parnassus") is a tradition of gradual attainment of skill and knowledge via a series of transitions.
"Gradus" (step) is the origin of the English word "grade". Parnassus is a mountain in Greece whose summits, in ancient times, were dedicated to Apollo, the Muses and Dionysus (the gods associated with knowledge, creativity, fertility and fun).
Climbing Mount Parnassus represents the journey to experience, as one acquires divinely inspired skill in an art or craft.
Transitions are made by taking a step up to new heights of attainment.
Steps involve recognition, a ceremony or a rite of passage to reflect achievement.
Transitions are always legitimised by another: so the journey undertaken is acknowledged and independently verified.
Our grading processes are the steps to climb a Parnassus of programming; because the core concepts that describe this mountain are curated by professional programmers.
Grading is a (friendly) rite of passage: recognition takes the form of written commentary and a final mark ~ a gift of constructive and honest feedback. An experienced professional programmer acts as the evaluating mentor: expert validation of a candidate's level of achievement.
This final point is important.
Confirmation of attainment by an expert is an antidote to impostor syndrome.
It is hard to ignore or dismiss such validation.
The candidate earned it!
(As they can prove via the CodeGrades website.)
Learn by doing
What we have to learn to do, we learn by doing; thus we become builders by building houses, and musicians by playing music.~ Aristotle, Nicomachean Ethics
There is good reason to begin with an ancient fragment from Aristotle: he was right.
Online instructional resources about coding abound, perhaps because of the didactic nature of the internet.
While such educational materials and tutorials are invaluable, they are not enough.
For instance, being able to explain
while loops is pointless,
if you don't appreciate when and why one uses them.
Copy-and-pasting code from a tutorial is not as engaging or demonstrative of skill,
as working out and writing the code oneself.
Our aim is to foster capability, confidence and autonomy.
Coding is a creative skill that, comes with practice, improves with guidance and, takes time to emerge through experience.
Code is only valuable if it does something interesting; That's why learning on CodeGrades is by doing a practical project of the candidate's choice. It's an opportunity for folks to let their creative juices flow, while following Aristotle's sage advice.
Most importantly, candidates show understanding and skill by making something; something about which feedback and constructive criticism can be offered.
Tell me and I forget,~ Chinese proverb attributed to Xunzi 荀子
teach me and I remember,
involve me and I learn.
Our mentors actively participate in and support the learning of others.
Their presence is a powerful one: they embody the roles of a trusted guide, expert and confidant, and act as role models for the candidates.
Our mentors also play a special role: that of officiating the grading process.
Interactions with mentors are an opportunity ~ to observe, reflect upon and practice the things coders do, with the help of a highly experienced practitioner.
Mentors, through their interventions, transmit and nurture the colourful culture of coding.
Most importantly, they are an example of a powerful virtuous circle: they sustain the community that sustains them.
Clearly, a community that promotes such behaviour is one into which a candidate would want to invest their time and effort.
Mentoring is, therefore, a subtle variation of learning by doing: giving and receiving mentorship is core to flourishing in a coding community.