Periodically (usually at the end of a chapter or a project), you will complete a Self Reflection document. While each self-reflection document is unique to each chapter/project, the format and structure is basically the same for each document.
Your self-reflections are usually made up of two parts:
The Project / Chapter Evaluation, and
The Self Evaluation
This is an evaluation of the work you just completed.
Here you will evaluate how well you performed, how you grew, and in what areas you still want/need to grow in order to produce higher quality work.
Your document will have a table that usually looks something like example below:
The center-column identifies the CS (Computer Science) skills we are trying to develop this year.
In the left-hand column ("How I've Grown / Areas of Success") you will fill out how well you think you produced QUALITY WORK for our most recent chapter/project.
In the right-hand column, you will identify the areas where you would like to see some improvement.
At its core, computer science (especially programming), is a series of problem solving challenges. Some problems, like building a website, are planned for from the beginning of the project. Other problems, like a bug in your code, come up unexpectedly.
How well did you plan for your project? Did you come up with realistic solutions (in terms of both time and your ability) to solve this problem?
How well did you solve the unexpected problems that came up? Were you able to find creative solutions to your unexpected problems.
Completing any project (or series of lessons), is a test of how well you can both manage your time and stick to your project plan.
Do you get side-tracked? Do you procrastinate? Did you follow the plan or did you skip and/or rush through things (especially if you fall behind)?
If you run into a hurdle, do you quit or do you find a way to solve your problem? We all make mistakes. The key is whether or not you learn from your mistakes so that it doesn't become a recurring problem for you in the future. Understand the problem, understand why the problem happened in the first place, fix the problem, and put things in place so that you don't have this problem again in the future.
Some people might mostly think of creativity as skills in the arts (art, music, drama, etc.). In CS, creativity plays a large part in problem solving - especially in solving a new problem. How well can you think outside-the-box? Can you take what you've already learned and find a creative solution to a problem that you haven't faced before?
Collaboration takes many forms. In our class, it is rarely from a "group" project. More often it is from both our structured, in-class peer evaluations AND our informal peer sharing. How often did you run ideas past others to get feedback and/or give your peers feedback about their ideas? How often did you have others test your projects and give feedback and/or did you give feedback on projects for your peers?
One of the best ways to improve your CS skills is by testing the projects of your peers and understanding how they chose to structure their code.
There are four main areas where we look at communication in our class:
How well do you plan your work? How well do you communication your project plan?
How well do you structure your code (using proper indentation, whitespace, and naming conventions)? How well do you properly provide comments in your code (so that another programmer can understand the purpose and function of your coding structures)? Generally, how easy is it for anyone else to jump in and follow what you are doing?
When seeking help, how well do you construct your questions so that you can actually get the help you are seeking.
How faithfully do you conduct your final self reflections? How well do you communicate those reflections so that they make sense to others?