Skip to main content

Posts

Reflecting on Growth: My Journey in CST 338 from HW1 to Now

Looking back at HW1, I’m really proud of how much my skills have grown over the semester. At the beginning, I was mainly focused on just getting my code to work and pass the tests, but now I approach assignments with more planning and structure. I’ve learned to break problems into smaller, manageable pieces and write modular, clean code that’s easier to debug and maintain. One big victory for me was gaining confidence with inheritance and polymorphism—I now understand how to design base classes and child classes that share logic without unnecessary repetition, which made later assignments much smoother. Another important area of growth has been my understanding and use of unit tests. Early on, unit testing felt unfamiliar and sometimes frustrating, but now I see it as a powerful tool that improves both the quality of my code and my ability to catch edge cases before they become problems. I also feel more comfortable applying access modifiers properly to encapsulate data and protect cl...
Recent posts

Markov Algorithm Avenger

For the Markov assignment, I worked with Erin Hurley and Mahmoud Oraby. Before jumping into the code, I took the time to map things out and brainstorm how I would approach the project. I also watched all the guide videos provided, which really helped me understand the requirements and gave me more confidence moving forward. My overall strategy was to break the problem into smaller, manageable parts and build each component step by step, especially focusing on the generation logic. Erin had a similar mindset—she planned things out on paper first and prioritized a clear and logical structure, which helped keep us organized. Looking back, I think I would improve my approach by spending a bit more time upfront visualizing the data flow. That would probably help catch bugs earlier and reduce the need for major rewrites later. According to my classmates, my code followed the Google Java Style Guide fairly well, though there were a few small formatting issues. Erin and Mahmoud's code was ...

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 a...

Guess Who's Bugging Out: A Hangman Tale of Loops, Letters, and Lost Scores

 A common thing I noticed when I reviewed my classmates' code was that many of us had the same problems. Most people had trouble keeping track of the game state, like remembering guessed letters or keeping the score between rounds. Everyone did a good job building the basic Hangman game, but many struggled with the harder parts, like passing some unit tests or writing clean logic. I reviewed Erin Hurley’s and Mahmoud’s code. I looked at their GameLoader, Hangman, and their test classes. Their variable names were clear, and their logic worked well. I told them they might want to keep the score after each round and maybe make some big methods shorter to help with reading the code. The feedback I got on my own code was very positive. Erin said my logic was efficient, especially the makeGuess method, and she liked how I commented my code. The only suggestion was to add my name and the date to the header. I think I still have things to fix in my code, like making the loop that handles g...

Lost in the Terminal, Found in IntelliJ

During Week 1 of CST 338: Software Design , we covered Lab 00 and Lab 01, which introduced essential foundational tools like unit testing, Git, and interfaces. One of the highlights for me was learning how to integrate GitHub with IntelliJ. I was genuinely amazed at how seamlessly these tools work together, and I’m excited about using them in collaborative projects later in the course. Setting up version control and seeing how commits, branches, and pull requests function in a real development environment made the learning experience feel both practical and professional. Learning how to write and run unit tests also stood out—it’s clear how crucial they are for ensuring code correctness and preventing regressions, especially in larger codebases. Although the bulk of the material on interfaces is scheduled for next week, the early introduction helped me start forming a mental model. I’m beginning to understand how interfaces provide structure and promote flexibility in code design. It’...

Lights, Camera, Collaboration: Final Acts of CST 300

  Part 1: Review Other Teams' Final Video Projects Drones. Friend or Foe?   The presentation does a great job of covering the topic, giving a clear and informative overview that is easy to follow. The team explains their points in a way that makes sense, showing good organization and flow. The research is solid, with helpful facts that support their ideas well. The video production is clean and professional, with good audio and visuals that make it pleasant to watch. It's also engaging — the pacing and tone keep the viewer interested from beginning to end. Teamwork is clearly visible, as each member contributes and supports the overall message. Overall, the video fits its audience well, whether general viewers or those with a background in technology, and it successfully delivers its message in a thoughtful and polished way. The Deepfake Dilemma This video presents the topic in a clear and organized way, making it easy to understand for viewers. The content is well-researched...

Meet, Click, Repeat: How Our Team Survived Discord and Found Harmony

Part One For our team's Final Research Video Project planning, we collaborated primarily through Google Meet and Discord. These platforms helped us coordinate meetings, share ideas, and finalize our plans effectively. The process went smoothly, with each team member actively engaged and offering insightful suggestions that helped shape the direction of our project. Looking back, one improvement we could make for future large collaborative projects is to incorporate a dedicated project management tool like Smartsheet, Monday.com, or ClickUp. While our communication was effective, having a centralized platform to assign tasks, set deadlines, and track progress would have made the process even more organized and transparent. Overall, our teamwork was strong, and this experience emphasized the importance of both communication and structured planning in collaborative work. Part Two This week’s lectures and activities offered valuable insights into both human-AI collaboration and effect...