Dr. Jan Pearce

courses, research, etc

View My GitHub Profile

Blog Integrative and Lifelong Learning Outcomes

The set of reflection prompts below has been developed to help you to use your blog to critically reflect on what you learn about yourself by providing you with a set of provocative questions that we hope you might find relevant and useful to your integration into the open source community.

Critical Reflection is more than just Reporting

The easiest way to describe critical reflection is to look at some examples of reporting, reflecting, and critically reflecting:

Reporting

Today in class we worked on understanding classes. We worked in pairs, and my partner and I ran the code that was given to us. One of the files was a class that describes a Point, so it had things in it like self.x and self.y, which represented the x and y coordinate of that point, and a method for drawing the point on the screen. We used another file which had the main() and created objects of that Point class, and called it’s draw() method. The program drew a point on the screen! We then looked at a class which described a Rectangle, and the file to create a rectangle object. We called the draw() method for that class, and lo and behold, it drew it!

Reflecting

Today in class we worked on understanding classes using a Point and Rectangle class. The Point class had attributes like self.x and self.y, which represented the x and y coordinates of that point, and a method for drawing the point on the screen. I didn’t understand the purpose of self at first, but after some reading in the book and discussing with my partner, we figured it out. Methods were different too, because we had to include self as a parameter, which made it seem like we weren’t passing all the parameters into each function. After some discussing, we realized that self was the parameter which held the self.x and self.y coordinates, and we were in fact passing them, though it wasn’t immediately obvious. That helped us understand how methods were able to seemingly access all the attributes in the class. In all, I learned a lot about classes and how they are structured, as well as how they compare to functions and the procedural programming we’ve done up until now.

Critically Reflecting

Today in class we worked on understanding classes using a Point and Rectangle class. Understanding classes is difficult because it’s forcing me to think about the way I program, specifically, the way I structured my code, differently than we have all semester. Just like when we introduced functions, we had to rethink the sequence in which our code ran. No longer could we read our code from top to bottom; we had to jump into functions when they were called, and jump back to where we were before it was called. It wasn’t until two weeks after we finished the functions assignment that I fully understood how this worked. Classes are providing the same challenge to me. I got through functions and understand them now; I CAN get through classes too! What do I need to do to make that happen?

Just like when we learned functions, I realized I am being my own worst enemy; I’m letting the difficulty of the problem prevent me from beginning to think about the solution. As soon as I think about starting the assignment, I freak out because I don’t know where to start, and I go do something else instead. Because there’s always something else to do! INSTEAD I should pick a time to work on this assignment, put it on my calendar, remove myself from the distractions, and focus on attacking this problem early and often, because I know the way I’m going to learn this is by starting on it early, failing often, and repeating it until it makes sense. That’s the way I got through functions, and that’s the strategy I need to understand classes.