Candidate: Elizabeth Blackwell Assessed by: Mary Mentor
Python (2023) ~ Grade 1 (Initial)
Recreating an educational cardboard computer project from the 1980s, that writes limericks on demand.
|Filename (click to download)
Feedback and results
Was the purpose of the project, its aims and objectives and the needs of those interacting with it clearly articulated?
You sufficiently explained your aims and objectives and I could tell what your project was supposed to do, who it was for and why it was created. Thank you for the trip down memory lane with the reference to the Usborne book.
How well did the candidate engage and empathise with their project's expected users, their needs and potential stumbling blocks?
You were clear this project was just for yourself, as a vehicle for learning, and this was reflected in your approach to the project. A higher mark would have been obtained if you had imagined its use by other people, and reflected upon what their needs and requirements might be. Something for the next grade..?
Running the project:
How clear and accurate were the instructions for executing the project, and how robust was the project when run?
Thank you for your instructions telling me how to run your project. I was able to make things work but encountered some bugs that you soon fixed (for instance, you addressed my request for the limerick to be properly formatted).
Architecture and design:
How well was the project designed, architected and put together?
The design and organisation of your project is clear and logical. I also appreciate the care you have taken to record design decisions on your learning journey. What really pleases me is how you overcame the limitations of your first attempt at the solution (based mainly on the Usborne example) and quickly figured out how to simplify your code with string formatting. Really well done!
In terms of the presentation and interface of the project, what is the user's experience of interacting with the project?
The way you present your project clearly shows how you expect to interact with it. Next time, try to imagine yourself as another user of your code, and take steps to help them engage with the project.
Does the candidate understand and display knowledge of the core concepts for this, and all previous, grades?
You show a depth of understanding of the core concepts that indicates you appreciate their more subtle or complex aspects. I appreciate how you illustrate and explain your use of the core concepts for this grade, and how they apply to your project in the evidence you provide. It was great to see you translate concepts from paper to BASIC to Python as you started your project. It shows you really understand things at a conceptual level. Well done!
Is the code idiomatic, efficient, simply written and well organised?
Well done. Your code is easy to understand and idiomatic Python. You name things in a way that clarifies your code. Your code is well organised so it is easy to see how things fit together and you have clearly taken care and attention about the way it is presented.
Understanding and technical engagement:
How well does the candidate apply their knowledge and understanding of the core concepts to address the requirements of their project?
Good job. Your code appropriately fulfils the technical requirements of your project. I can also see evidence of refinement and refactoring of code, to improve its quality and make it easier to understand and maintain.
Creativity and imagination:
How unique, surprising, delightful and/or authentic is the approach of this project?
This is an original take on an existing project from the Usborne book. But you have made this your own by executing your project in a unique way that demonstrates imagination and creativity, especially once you figured out how to do string formatting.
Collaboration, community and compassion:
How did the candidate approach, behave and react to interactions and contributions from others, relating to this project?
You clearly welcome collaborators and affirmatively participate in technical discussions. You are polite, open minded and willing to actively engage with others. Well done, and keep this up!
Documentation and comments:
Was the project's documentation appropriate for this level of grading and were the comments in code helpful?
Thank you for the comments in your code. They helped me to better understand your project from a technical point of view. To achieve a higher mark next time, perhaps write a guide for an imagined user or maintainer of your project.
How well did the candidate understand and make appropriate use of effective development practices? (e.g. testing, CI, debugging, refactoring, source control, issue tracking etc...)
You have shown you are capable of reflecting upon and refining the quality of your project through the simple use of coherent development practices such as checking your code with Mu, debugging, refactoring, and tidying your code.
Tools and third-party technology:
How well did the candidate understand and make appropriate use of core tools used for software development? (e.g. a code editor, debugger, the command line, vcs etc...)
You are clearly familiar with the basic use of tools like Mu needed for creating a project such as yours. I'm glad you like the "Check" and "Tidy" features.
Learning and research:
Is the candidate an effective and autonomous learner from documentation and other educational resources related to the technology and tools used in their project?
I'm pleased to say you are well practised and take the lead when researching problems, reading documentation and consuming other educational resources relating to the technology you use in your project. Well done!
Did the candidate achieve their aims and objectives for the project?
Well done. You project has successfully addressed its stated aims and objectives.
Overall impression of the project:
For this level of grading: requires significant improvement (1-3), working towards the expected level (4-5), achieving the expected level (6-7), a high quality project (8-9), and exceptional project (10).
Achieves the expected level for this grade.
Overall impression of the candidate's attainment:
For this level of grading: requires significant improvement (1-3), working towards the expected level (4-5), achieving the expected level (6-7), a high quality candidate (8-9), exceptional(10).
Very high quality.
Candidate's level of achievement:
How did the candidate meet the level of achievement expected for this grade?
You have clearly demonstrated that you are working at the expected level of attainment for this grade. Well done!
Total marks: 69/100
(Pass: 60, Merit: 75, Distinction: 90)
It was a real pleasure to be your mentor for this project.
The creation of such hilarious poems is a fun educational exercise and I feel you went on a very positive journey through this project. I was especially pleased with how you quickly overcame the problems you yourself identified with your original solution. Also, I love how you're re-using classics from the 1980s. It really was a special time in computing education.
I hope you continue your journey through CodeGrades.
In future you will improve your chances of a higher mark by:
- More clearly identifying and engaging with the needs of users who are not yourself (it might be helpful to look into how personas are used in the development process if you take grades in the future).
- Asking more questions!
- Not being afraid to try new things in your code (add new features or extend the original project as your imagination guides you).
If you're interested in techniques for generating text, I suggest you look into Markov Chains (also known as n-grams). Their output can be quite entertaining and this article gives a visual explanation of how they work.
Perhaps something for a future grading?
Well done Liz.
You fully deserve this solid pass, it's a solid foundation from which to build, and I wish you well as you continue your adventure in learning to code.