This was easily one of the worse weeks I’ve had on KA in a long time. 😒 I made it through one lesson (Lesson 2 in Unit 7), but I didn’t even make it through the bonus section of the challenge which I was fairly disappointed about. I’m guessing I studied for 6-8 hours but it was all in short, sporadic bursts of 20 to 30 minutes. I feel like this isn’t a very efficient way for me to study or to retain what I’m trying to learn, especially considering that each time I stop and restart, it takes me 5-10 minutes just to remember what I was doing where I left off… So, as seems to always be the case these days, I’m pretty disappointed with my effort. I had a few things come up this week that took time out my schedule, but nonetheless I feel like I should have been able to commit more time and energy towards studying CS. I’m really hoping I can turn things around for next week! 🙏🏼
Here’s everything I got done on KA this week:
Unit 7 – Building Software with Classes
Lesson 2 – Methods
Video – Methods and Encapsulation



The first thing I did this week was watch this video. In it, Kim explained the idea of what’s called “encapsulation” which, as far as I understand it, is the concept of adding attributes and methods (which I’m pretty sure are sort of like functions but they’re a part of a class) into the class itself. I found the video a bit confusing and wasn’t really able to wrap my head around a lot of what she was saying. 😔
Article – Method Design Patterns


This article talked about the difference between “accessor methods” and “mutator methods”. The gist is the accessor methods are used to retrieve info from an object whereas mutator methods are used to alter the object’s attributes. I asked Google to give me a list of each and it said:
- Accessor Methods:
- list.count(x)
- list.index(x)
- dict.get(key)
- string.upper() – (This method returns a copy of the OG string, it doesn’t mutate it)
- Mutator Methods:
- list.append(x)
- list.sort()
- dict.update(other_dictionary)
- set.add(x)
Exercise – Tracing Instance Methods
Question 1




Question 2


This exercise was somewhat tricky, although I did go 4/4 on the questions. Having watched two videos and read one article on methods in classes, I didn’t think I’d be as discombobulated by the syntax as I was, but the methods/class syntax did throw me for a loop on most of the questions. I was happy that I went 4/4, but it was clear by the end of the exercise that I still need a LOT of practice reading and writing this type of syntax. 😕
Challenge: Word Guess




I was able to get through the first two steps of this challenge pretty easily, but then got stumped on the third step (the instructions for which are shown on the left panel in the last screenshot above). I had to ask Gemini for help and, without going into too much detail, it told me I was calling the object’s (new_word) attribute in main.py which is not something you’re supposed to do, conventionally speaking. (Apparently this had something to do with encapsulation, which is what Kim was talking about the first video I watched, but, again, I didn’t really understand what was going on or what I did wrong with encapsulation.) One other thing I did wrong was that I also used a for loop when I should have used a while loop. After that, I was able to figure out how to write the code on my own, so I had that going for me which was nice. However, it became very clear to me that I really don’t know what’s on with this type of coding and that I need way more practice. 😩
As I mentioned at the start, I didn’t actually finish the bonus steps for this challenge. I took the bonus step’s instructions and fed them into Gemini to get a bit of clarity on what I needed to do and some guidance on how I could do it, but then I got my butt kicked actually trying to write the code. I’m planning on finishing off what Gemini suggested I do early this coming week, but I’m not planning on actually make notes on it…
This unit, Unit 7, is actually the final unit in this course, Intro to Computer Science – Python. (There’s an eighth unit called Teacher Resources, but it’s just the solutions to each of the challenges and projects in each unit.) I’ve realized that what I’ve been doing working through this course is learning WHAT the different Python syntax is and what it denotes rather than learning HOW it works. In order to learn how it works and how to use it (and by “learn” I actually mean “memorize”), I think I’m going to need to try and code little programs by myself. I think going through this course has been super helpful for me to get a better grasp on what the terms and concepts are in Python, so I’m not disappointed with everything I’ve done so far. But, just like when I studied math, I know I’m going to need to go and write code over and over again (just like how I needed to solve algebra equations over and over) in order to memorize how the syntax works and how to use it properly. So, my plan of attack is to finish off this course and then find another website where they give me little projects I can do and try and tackle them by myself.
And that was it for this past week. Like I said, I’m not thrilled with how it went, BUT it also could have been worse. As usual, I did watch a bunch of other YouTube videos on CS and continued working through the book Automate the Boring Stuff with Python. Also, although I didn’t get close to studying for 4 hours on any day, I did time myself each day to see how long I studied for. I’m pretty sure there’s a saying that’s something like you can’t fix what you don’t measure, so I think timing myself helps by just informing me how much I’m actually studying each day. And finally, I’ve also been getting back into the habit of writing out little daily to-do lists at the beginning of each day which has helped me focus on what I want to get done. So hopefully with all those little tricks, I’ll be able to have a more productive upcoming week. 🙏🏼
As always, fingers crossed I can actually make it happen so that I can hopefully learn Python before I turn 90 years old. 🤞🏼 👴🏼