Feedback by | What is something that doesn’t work or could be improved? | What is something that is confusing or could be done differently? | What is something that works well or you really like about the project? |
---|---|---|---|
?? | ?? | ?? | ?? |
?? | ?? | ?? | ?? |
1 Reflection
1.1 Reflection and critique as programming tools
The extent to which programming is a slow, difficult and often collaborative effort isn’t widely appreciated. Stereotypes of ‘hackers’ in media abound - and this stereotype suggests that building a program comes from heroic spurts of inspiration and esoteric knowledge. More realistically, building a program is a slow process that involves thinking about a problem, weighing up different potential solutions and expressing them. Reflecting on problems and potential solutions and criticising them (in the strict neutral sense of evaluating and assessing dispassionately) are really important tools for advancing the solution to a problem and its implementation in a program.
The aim of this section is to encourage practice in these skills.
As so much of this guide will involve reflection and criticism, having someone you feel comfortable discussing stuff with will be helpful. It’s not absolutely necessary, though. You can do all of this guide by yourself if you’d prefer.
1.2 Scratch - our creativity tool
Scratch is a free graphical computer program for creating media projects. It is available at the MIT Scratch website
With it you can create a wide variety of interactive projects - animations, games etc. Hundreds of thousands of people use Scratch across the world, including primary school children and Harvard computer science undergraduates learning to program. It’s designed to be accessible yet complete. It encompasses all the key concepts we’ll need to understand programming. Take a look at this introductory video.
Let’s investigate Scratch!
These tasks may seem trivial, hopefully they will seem playful. Have some fun with them.
- Sign-up for Scratch https://scratch.mit.edu/
- Browse some starter projects at https://scratch.mit.edu/starter_projects/ online
- In your notebook, sketch ideas for three different Scratch projects you would like to create.
- Go to Scratch and make the Scratch cat do something surprising
Wait, what?
Yep, item number four does say to go and do something in Scratch.
But you haven’t shown us how to use it? Are we supposed to just go and do it? What are we learning here?
Glad you asked! The object here would be for you to identify the stomach churning desperation that comes from not knowing how to solve something, yet being committed to doing so. And with that burning in your gut you manage not to be paralysed by the darkness of ignorance and still manage to claw your way into the light.
A lot of the time with programming you’re not going to know exactly what to do at the outset. This task reaches out to your inquisitiveness and curious spirit. Just give it a go - you can’t break anything or go wrong.
Look at this way, if you’re sitting there thinking you don’t know how to do it, anything you do will be a surprise!
You can do this, I believe in you.
Here’s a starter sheet if you would like a little hint.
When you’ve built something surprising, reflect on Scratch, perhaps using the points below, jot your responses in your notebook and/or with your friend(s).
- What did you figure out?
- What do you want to know more about?
1.3 Criticising projects
As you develop programming skills, being able to criticise and find strengths and weaknesses in your and other projects will help you build stronger, better projects.
Let’s think now about criticising each others projects. If you are working with a friend (or group of friends) make sure you can find your projects in the Scratch Surprise Studio.
1.3.1 What is appropriate criticism?
This is a tricky subject, anything about the project could be criticised legitamately. But much of people’s difficulty with giving and receiving criticism stems from the fact different people take criticism differently. But some rules of thumb can help you come up with constructive comments.
- Keep things about the project, not the person!
- Be convinced that there is a need for the point you wish to make - be sure that you believe it really will help
- Find and say a positive before you deliver a negative
- Don’t say something because you haven’t said something for a while.
1.3.2 Delivering (and receiving) criticism well
Some people are totally upset by the slightest perceived negative. These people are awesome to have on a team, they are very valuable as constant re-evaluators: iteration of a project can go much quicker when they’re involved. At the other end of the scale some people are impervious to criticism and will take anything you can say and remain upbeat. These people are great at maintaining a positive direction in a team and help stop it from getting mired in details. But such diversity makes it difficult to pitch a point! As you’ll have worked out, when delivering a point you need to try to be sensitive about people’s views - just because you have a valid point you don’t have a right to be rude or insensitive, you still have a responsibility to help maintain the civility of the conversation.
If you know you’re the sort of person whom criticism affects strongly, try to accept other people’s points with the presumption of good faith from the other side.
If you’re the sort of person that criticism just bounces off, try to invest some time in thinking specifically about what you’ve received, try other people’s ideas on for size.
- Fill in the table below for each Surprise Scratch project by each person in your critique group of friends.
It may be helpful to think about:
- Clarity: Did you understand what the project is supposed to do?
- Features: What features does the project have? Does the project work as expected?
- Appeal: How engaging is the project? Is it interactive, original, sophisticated, funny, or interesting? How did you feel as you interacted with it?
1.3.3 An important note on groups of friends
When you choose a group of friends for this work, its going to be best if you can find someone with whom you can exchange ideas frankly. In an academic setting, probably not everyone you could work with will work well as a partner in a critique group. A lot of this will depend on different expectations of roles in people from different social and ethnic backgrounds. Try to work with someone at a similar professional level, it can be hard to tell someone in a more senior role that they’re wrong , and what they say can be taken as ‘the right answer’ - when all contributions are valuable. Be aware too of the influence of a person’s background on how they’d express a personal opinion. If you’re from a place where it feels more natural to go along with the flow, try to find someone you’d be comfortable to express your ideas with. Experiment with sharing views over written media, rather than face to face.
1.4 In this section we…
In this section we have endeavoured to practice the reflection skill so necessary for evaluating your designs and creations in software. The iterative development process relies on incremental improvements. Being able to give and receive new ideas (often from yourself) will help massively.