Posts

Week 15: CST 338 - Software Design

 Wk07/08 - Learning Journal Summary Looking back at the HW1 Looking back at HW1 Hangman, it wasn't hard. The prompt and rubric were documented well, so it felt straightforward: follow the instructions and ship. Even though I hadn't programmed in Java before, the task wasn't challenging because it focused on basics - classes, standard collections and their methods, simple control flow, and a clean separation of logic. We also practiced the basic GitHub workflow (clone, branch, commit), which mirrors what I already use elsewhere. If I did it today, I'd take the same approach but with cleaner structure, better tests, and tidier commits. Overall, it showed Java's OOP patterns align with other languages I know. Highlighting at least two victories Two clear victories this semester stand out for me. First, I finally understand singletons - not just the theory, but why and when to use them. Seeing a thread-safe implementation in real code (lazy initialization, private const...

Week 13: CST 338 - Software Design

 Week 5 Learning Journal – Markov assignment review This week I worked with Maria Caicedo to review and discuss our approaches to the Markov assignment. We compared our code implementations, talked through how we tackled the problem, and gave each other feedback. It was a helpful collaboration that revealed the different strategies we used to complete the task. My strategy was similar to what I did for last week's assignment: I started coding right away. Since the assignment prompt provided a clear description of the expected functionality, I didn't feel the need to plan anything out on paper or map out logic in advance. I prefer to write the code, run tests, and debug as needed. This allows me to work quickly and stay efficient, which is especially important since I'm working full time and balancing a heavy course load. Maria's approach was a bit different. She carefully read through the entire assignment prompt and the README file first. She mentally outlined what nee...

Week 12: CST 338 - Software Design

Week 4 Learning Journal –  Project 1 (LDPM) review This week for Project 1: LDPM, I collaborated with Ysabelle Kim. We both approached the assignment with similar strategies, primarily following the structure and guidance provided in the project prompt by Dr.C. Since the prompt already laid out what variables and methods were needed, we didn't create a separate plan on paper. Instead, we dove straight into implementing the required elements, then moved on to testing and debugging. It was efficient and effective, and I don't see any reason to change my approach. One thing that really helped streamline our development process was using IntelliJ's autocomplete and auto-formatting features. This allowed our code to closely follow the Google Java Style Guide without much manual effort. I also learned that many of the style guide rules can be enforced automatically, which is something I'll rely on more going forward. The most challenging part of the project was debugging — e...

Week 11: CST 338 - Software Design

  Week 3 Learning Journal – HW 1 Code Review This week was extremely busy. Between multiple programming assignments, studying for quizzes, and finishing up other coursework, I didn't get a single day off - not even Sunday. I worked through the entire weekend just to keep up. One of the last things I tackled was the code review assignment, not because it was difficult, but because it was worth fewer points compared to other assignments. Ironically, despite being worth less than half of another assignment, it took nearly the same amount of time. Reading, testing, and analyzing other students' code takes real focus - especially when you're trying to give meaningful feedback and not just check a box. But I'll be honest: even though it felt like extra work at first, the peer code review assignment turned out to be one of the most helpful parts of the week. Looking through other people's code - seeing what they did right, where they made mistakes, or how they handled logi...

Week 10: CST 338 - Software Design

Week 2 Learning Journal – Reflections on Lab 00, Lab 01, Unit Testing, Git, and Interfaces We're now at the end of Week 2, and looking back, Lab 00 and Lab 01 were fairly simple but served as a solid introduction to Java, JUnit testing, Git, and working with IntelliJ. As someone who hasn't worked with Java before, I found it surprisingly similar to C++, though there are some odd differences. For instance, String.length() is a method, while array.length is a public field. These inconsistencies can be a bit confusing at first. Although I have some experience using Google Test in C++, JUnit was new to me. Still, the concept was familiar - writing tests to validate code behavior - and I appreciated the hands-on practice. I can already see how unit testing helps catch small mistakes and improves confidence in code changes. Regarding Git, I was already familiar with basic version control concepts and commands, but most of my prior usage was through the Visual Studio GUI. These labs g...

Week 9: CST 338 - Software Design

First Steps in CST338: Java, Git, and Coding Challenges This week, we started a new class: CST 338: Software Design. It is exciting, and I like it so far. In this class, we are using the Java programming language along with IDEs like IntelliJ and Android Studio. These tools are new to me, but I haven't experienced any major difficulties yet - Java feels quite similar to other languages I've worked with, and the IDEs are intuitive once you get used to them. Dr. C. also introduced us to version control using Git and GitHub through the integrated terminal. He showed us how to use basic Git commands such as git status, git add ., git commit -m "message", git checkout -b branchname, and git merge. We also learned how to set up .gitignore files using a plugin and how Git tracks file changes locally until they are pushed to GitHub. The lectures provided helpful context on using Gradle as a build system and how we can structure our Java projects cleanly with folders for main,...

Week 8: CST 300 - Major Pro Seminar

Part 1: Review Other Teams' Final Video Projects The first video I will review is " Digital Immortality" by the group Fantastic 4.  The video fully meets and exceeds the evaluation criteria. The topic is timely, deeply relevant, and impressively well-researched, with strong supporting evidence throughout. The presentation is clear, logically structured, and engaging from start to finish. The narration is professional, and the use of visuals and sound effectively enhances the message. The pacing and tone are balanced, holding attention without overwhelming the viewer. The ethical considerations and legal implications are thoughtfully explored, making the content suitable for both general and technical audiences. Team collaboration is evident in the cohesive production quality and depth of information. My only concern is that the footage and visuals appear sourced from the web, which may raise questions about proper licensing or usage rights. The next video is " Drones...