How to make a good reflection great

by Elliott Hauser

03 Nov 2022

Taking a reflection from good to great

We've talked about how to write a good reflection. This page gives an example of how to turn a good reflection into a great reflection with a few simple changes that you could accomplish in a quick editing pass of your work.

Here's an excerpt of a good reflection:

 

Another good point was the factorial function in section 5.36 of the textbook. This was my final code:

def factorial(num):
    total = 1
  for i in range(1, num + 1):
        total = total * i
    return total

This was a good problem because it let me review how the range function worked. It can be inclusive or exclusive, but when the second parameter is added it becomes exclusive to it, and so I had to remember to add 1 to get the full range that the factorial calls for. This also is a good review of function creation, where the "fruitful" nature of this function called for me to create the variable total and then update it as the loop was iterating. This was a good review of functions and loops and enabled me to understand that even if common functions seem familiar, they may have caveats that need to be remembered.

 

What's good about it?

No, seriously, read and think about the things this passage does well.

Even with these strengths, there's room for improvement. How can this reflection be improved from good to great with a quick editing pass?

Here's an example revision, that might take 5-10 minues:

 

Another good point was the The factorial function that we had to write in 5.36 was a opportunity to make use of my understanding of how functions work. This was my final code:

def factorial(num):
    total = 1
  for i in range(1, num + 1):
        total = total * i
    return total

This was a good problem because it let me review how the range range function worked. It can be inclusive or exclusive, which I ("knew from math class"/"learned from the textbook" means stopping before or after the boundary. but when When the second parameter is added it becomes exclusive to it. When I put num as the parameter the results weren't correct, so I had to remember to add 1 use num + 1 to get the full range that the mathematical operation factorial calls for (note: good job not writing factorial here. you're talking about the concept, not the function name). This also is a good review of function creation, where the "fruitful" nature of this function, called for me to create the variable total total, and then update it as the loop was iterating, and then pass total to the return statement. This was a good review of functions and loops and enabled me to understand that even if common functions seem familiar, they may have I need to remember their caveats. that need to be remembered. I'm trying out a problem solving strategy I'm calling going slow, which is my own combination of reading and ruminating, to help me do this, and it worked for me here.

 

There was a great foundation to build upon here, and our revisions took this reflection from good to great. The formatting makes it clearer, and in a few places we added new specific in-line code mentions to help the reader understand where in the code we were talking about.

The biggest improvement is that we finished it up by relating what we just did to a larger problem solving strategy process that, while not in the starting problem solving toolkit, was related to two concepts that were. Speaking of concepts, we wrote several in bold, just like the class notes and textbook do, to call them out and in the case of factorial, distinguish it from the function of the same name.

A quick revision pass can make your good reflection great. It doesn't

Elliott Hauser is an Assistant Professor at the UT Austin iSchool. He's hacking education as one of the cofounders of Trinket.io. Find Elliott Hauser on Twitter, Github, and on the web.