SOLO Programming Rubrics
SOLO can be used to make learning outcomes visible for novice programmers.
Why is this important?
Clear et al. (2008) point out that two major contributors to the exodus from Computer Science and cognate disciplines are poor teaching of computing in high schools and the “nerdy” image of the profession to young people. We contend that, even at university level, too much is taken for granted by teachers,in the formative stages of learning programming. Incorrect models of a range of fundamental programming concepts are conveyed in teaching or received by novices, often compounding the problems of understanding. Poor models of programming concepts have a propagating effect, plunging novices into a spiral of frustration, loss of confidence and self-belief, as more complex material is covered (Wayne D. Gray 1993, Caspersen & Bennedsen 2007). Shuhidan, Hamilton and D'Souza 2009.
Examples a SOLO self-assessment rubrics
Writing Code - developed from A Taxonomic Study of Novice Programming Summative Assessment by Shuhaida Shuhidan Margaret Hamilton Daryl D’Souza 2009
| Writing code 'to calculate the highest and lowest integer, from a set of integers passed via the commandline.' |
Prestructural Lacks knowledge of the assessed
component – may have pieces of unconnected knowledge but make no sense to the student |
Unistructural
|
Multistructural
|
Relational
|
Extended Abstract
Seeing the concept from an overall viewpoint. |
| |
Learning outcomes show unconnected information, no organisation. E.g. “I need help or direction” |
Learning outcomes show simple connections but importance not noted. E.g. “I will have a tilt at it” |
Learning outcomes show connections are made, but significance to overall meaning is missing. E.g. I will use trial and error to find a solution” |
Learning outcomes show full connections made, and synthesis of parts to the overall meaning E.g. “I plan to do X because it will … I know what to do and why ..” |
Learning outcomes go beyond subject and makes links to other concepts - generalises E.g. “I sense what to do to find the best solution ….I seek feedback and adjust my actions in response ” |
|
The components are: • Ability to create a loop • Ability to extract or convert the argument correctly • Ability to find the highest value • Ability to find the lowest value
• Ability to code correctly |
I need help to make sense of the programming task. |
I can compare, or write loops. I need help to implement or derive the connections of loops in relation to manipulation of arrays or usage of further structures |
I can create code for loops and comparisons, but I make mistakes. e.g I fail to convert arguments, use incorrect operators,
and or do not interpret general explanation |
I can create correct code. I can appreciate significance in relation to the whole program and can generalise outside of program |
I can make connections beyond the scope of question and can transfer knowledge to a new situation
|
| Example |
|
|
|
|
|
| Effective Strategies |
|
|
|
|
|
| |
|
|
|
|
|