Skip to main content

Debugging My Way Out of the Monster Mash

For this learning journal, I worked with Erin Hurley.

I started coding right away, using sticky notes to jot down ideas and keep track of important logic and structure. Interestingly, I began by working on the first and second child classes first—just to make sure I understood the requirements and structure—before going back to complete the Monster base class. This helped me get a clearer sense of how everything would connect. I approached the assignment step by step, focusing on writing modular, organized code and using print statements to help with debugging when needed. My notes helped me stay on track and adjust my approach as I built out each piece.

My classmate said they felt overwhelmed at first and accidentally opened a project within another, which caused issues. After getting advice from Polina, they focused on building the simplest functions first, since the complex ones relied on them. They didn’t plan on paper due to the structured nature of the assignment. They finished all the classes before running any tests, which they later realized made things harder. Reading the README and grading rubric after finishing led to last-minute fixes—but they took it all in stride.

If I were to redo the assignment, I would spend more time planning out the structure before jumping into the code. While starting with the child classes helped me get a feel for the task, I realized that fully understanding and setting up the Monster base class first would have made everything smoother. I’d also sketch out a rough class diagram or flow on paper to map relationships and avoid rewriting sections later. Overall, I’d aim for a more top-down approach with clearer planning upfront to save time and reduce trial and error.

My code followed the Google Java Style Guide fairly well. They noted that my indentation and naming conventions were consistent and readable. However, there were a few areas I could improve on, like spacing around operators or keeping line lengths shorter for readability. Overall, the feedback was positive, with minor suggestions for polishing.

The most challenging part was organizing the Monster base class in a way that all the child classes could extend it cleanly without running into conflicts or redundant code. It took some trial and error to get the right balance between abstract methods and shared logic. Managing method overrides and making sure each child class had the proper behaviors—without repeating too much—was tricky at first. Once I got the structure down, everything started to fall into place, but getting there required some careful thinking and refactoring.

The most interesting part was seeing how each child class could take the base class structure and behave differently through overridden methods. It really showed the power of inheritance and polymorphism in a practical way, and it was satisfying to test and see the different monster behaviors come to life.

I’m most proud of how clean and modular my code ended up. Even though there were some bumps along the way, I managed to make each class readable, reusable, and easy to test. Debugging became much easier once the structure was solid, and the logic flowed nicely between the classes.

After submitting the assignment, I treated myself to a good cup of coffee and relaxed with a Netflix series. It was a small celebration, but it felt well-deserved after balancing school and work.

Comments

Popular posts from this blog

Confessions of a Chronically Confused Note-Taker

Part 1: Review and Reflect Learning Strategy One of my strengths is making and revising a study schedule. I am good at planning my time and organizing my tasks, which helps me stay on track. I also do well at finding the main idea and important details when I read. This skill helps me understand the most important parts of the material. However, I need to improve in a few areas. Taking notes is hard for me because sometimes I write too much or miss key points. I also struggle with outlining textbooks since I am not always sure what to include. Another challenge for me is answering multiple-choice questions. Sometimes I overthink the answers and doubt myself. Part 2: Preview Time Management Skills Link:  https://docs.google.com/spreadsheets/d/1KNpOCEeEtB0whGXmduCl-BP1txBSaqMnxBG3fvfV-AE/edit?usp=sharing Part 3: Project Management Basics I watched three videos about project management. They helped me understand important concepts. The first video was about the basics of project man...

Balancing Beaches and Bytes: My Week 1 in the CS Online Program

Before the first week of my CS Online course started, I was happy to connect with my teammates early. I really enjoyed working with them. We shared ideas, created designs, and had fun being creative together. It was a great start, and working as a team helped us a lot. To be honest, when Week 1 of the course started, I was in Hawaii on vacation with my family. It’s not a usual way to begin a new class. At first, I wasn’t sure if it was a good idea. This course is very important to me because it helps me prepare for my future, and I didn’t want to fall behind. But at the same time, I knew that spending time with my family and making special memories in Hawaii was also important. So, I gave myself a challenge: Can I enjoy the vacation and still keep up with my school work? Here's a photo taken from my drone.  I’m really happy with how this course is set up . It has both group work and individual assignments. I enjoy working on my own because I can focus, but I also like working w...

Tourist by Day, Techie by Passion: My Week 4 Snapshot

My educational goal in the Computer Science program is to become a skilled software engineer who can design and build innovative, efficient software solutions using both strong programming skills and AI tools responsibly. I want to complete my degree with a solid understanding of core computer science principles, such as algorithms, data structures, and system design, so I can solve complex problems without relying only on AI. After graduation, I aim to work on projects that improve people’s lives by combining creativity and technology, constantly learning new skills to stay ahead in the fast-changing tech world. This goal excites me because I see myself growing as a confident, adaptable developer who uses both traditional knowledge and AI to create a meaningful impact. My career goal is to be a software engineer who makes intelligent and helpful technology for people. I want to work at a company that uses AI and new tools carefully and responsibly. I want to grow as a leader who helps...