Posts

CST489/499 Week 16 Final Learning Journal

 Wow! It's finally over!? Really??  It felt like a very long two years and it's honestly difficult to remember some portions of that time, but I made it here and that's what matters. Looking back at my first journal entry from January 9, 2025, I found a funny little coincidence. I began this program feeling very sick after a crazy New Years Eve party that I attended with my friends. Here I am now in the final week of the program, and I'm sick again! It's made my experience getting through this last week with the video presentation a bit worse than it probably should've been. I think my condition is probably stress-related. Fair enough.  The whole 2 year program felt like a blur in retrospect. I learned a lot of things and internalized them and that's what really matters. This program definitely reinforced my belief that group projects are the absolute worst, but hey, I don't have to do any more of those! I'm not the right type of person to write a re...

CST489/499 Week 15 Learning Journal

      Summary (Green Potion Games Capstone) The project is complete so I spent this week wrapping up user testing, writing up the test report, and recording the video presentation draft. My plan for next week is to attend the Capstone Festival and finish up the remaining assignments. No problems!

CST489/499 Week 14 Learning Journal

    Summary (Green Potion Games Capstone) Pretty much all project milestones have been reached and I just need to prepare for final deployment. I got users to start testing the bot this week. I have console messages that log everything that the bot does and haven't had a single issue yet. It looks like the Discord bot is stable. The thing is that the usage of the bot is very straight-forward, so it's pretty hard to make mistakes or break it. Quick edit: Dylan requested that usernames get separated from player's real names so I worked on the project for another 4.5-5 hours this night and even fit in a bunch of other improvements and fixes too. I'm very satisfied with the current state of the project and believe that it's ready for deployment some time this week, but we'll need to figure that out. My plan for next week is to wrap up project testing and to work on my video presentation draft. I'm still collecting feedback, but everything is good so far. The pro...

CST489/499 Week 13 Learning Journal

  Summary (Green Potion Games Capstone) Project development is slowing down since there are only a few small tasks left to complete. I had a meeting with my client, Dylan, and we discussed the state of the project and the schedule going forward. I'm developing a few existing features even further to improve ease-of-use. Everything is still on schedule! I'm working with Dylan to get a few users to test out the bot features and give feedback. I don't know whether or not I should worry that I have only gotten positive feedback so far. I'm going to fix a few bugs with the Discord bot and finalize everything before we do the final deployment. Some code stopped working even though I didn't touch it during extra feature testing in different parts of the codebase, but that's just how things go. I remain confident that I can accomplish everything on my own, so there's no need to worry or get assistance.

CST489/499 Week 12 Learning Journal

Summary (Green Potion Games Capstone) Project development is going very well. All planned features have been implemented and I'm just adding some bonus features for improved user quality-of-life. Next week is dedicated to debugging before we run a test deployment for the client's users to test the Discord bot. I've experienced some challenges in implementing the data import feature, but it turns out the main issue was with data integrity on the client's side. No instructor assistance needed.   What I've accomplished   Development is still going very well. The import and export features were integral for the Discord bot to be a useful tool for the client. It was pretty difficult to do correctly, but I got it all working. I also added some more edit and delete commands for various things. I attached the latest changelog from my GitHub repository below.  Latest Update (11-26-2025): Data Portability & Maintenance Implemented CSV Import/Export tools (/import-sheet, /...

CST489/499 Week 11 Learning Journal

  Summary (Green Potion Games Capstone) The core architecture and minimum viable product (MVP) features are fully implemented. That means the Discord bot works and has all of the features that I originally planned to add.  My plans for next week are to test/debug the project and add additional features like data import and export (client request). I'll also be taking client feedback to adjust or change any current features. I haven't had any major challenges requiring assistance.   What I've accomplished I'm not really in the mood for describing everything since I implemented so many features since last week, so I pasted a snippet of the documentation that lists all of the currently implemented commands and what they do. It should give you a good idea of how it works and how development is going. Command List User Commands /help - Shows a smart list of available commands (adapts to user permissions). /stats - View detailed stats (Rank, Points, Win Rate, Percentile) for ...

CST489/499 Week 10 Learning Journal

Image
Summary (Green Potion Games Capstone) I achieved a major milestone in development (getting the core features online) and project development is going well. My plans for next week are to continue feature development. I haven't had any major challenges requiring assistance.    What I've accomplished      I made some really good progress this week and hit a major milestone in development. The core foundation of the project is complete. I implemented the core admin commands for the bot that allow you to register players, individual games, and seasons (per game) into the database. The most difficult feature was the command to report new events.       You can run "/register-player name:" to register a new player. That player then exists in the database and the auto-fill functions I created allows the bot to automatically suggest registered players to the admin when they are reporting on the data for an event.      The basic work...

CST489/499 Week 9 Learning Journal

     I'm the solo developer on the Green Potion Games Discord bot capstone project.      This week I spoke to the client, Dylan, about the details of the project and now have a direct line of communication with him in case I need his input on anything during development. He requested a feature to import data from Google Sheets and the option to export data as well. I was already considering implementing this feature, so I'd like to do some research on how to accomplish that and see if I can work on it after the core features are complete (hopefully within 2 weeks).      I designed the PostgreSQL database schema and deployed it to the test environment. I also began building the back-end logic for admin commands; stuff like registering players and event data into the database. Lastly I fixed a bug that was causing issues when it came to syncing command lists with the test guild (Discord server). Everything is on-schedule and I plan to work on...

CST438: Journal Entry Week 8

Q. List the 5 most important things that you learned in the course, and why you chose them. A. I think the 5 most important concepts I learned during this course were Agile development with BDD and TDD, Git version control, automated testing with JUnit and Selenium, Cloud Deployment with AWS, and service-oriented architecture. These concepts are very important because they all tie into the ability to be able to rapidly deliver reliable and scalable high quality software.

CST438: Journal Entry Week 7

 Q.  Describe some of the differences between using an Agile process and using a Plan and Document (or Waterfall) process.   A. The primary different between Agile and a Plan and Document (Waterfall) process lies in how they approach requirements and execution of a project. Waterfall uses sequential phases that need to be fully completed before moving on to the next phase of the plan. This model makes it difficult to make changes later on. Agile works in much shorter cycles that iterate on themselves which allows the project requirements to change and grow as the product is incrementally refined into a final product. Waterfall makes a plan with comprehensive documentation (unaware of future complications) and Agile prioritizes putting together smaller pieces of the project while staying open to being able to adapt to an environment of smaller changes that might need to be made to the project. Plan and Document is more rigid while Agile is more flexible.

CST438: Journal Entry Week 6

The most important thing I learned this week is about CaaS (Compute as a Service) and how it solves the messy and inefficient processes that came before it. Previously, teams managed their own "snowflake" machines, which were unique environments that wasted engineering effort on tasks like OS patching and manual scaling. CaaS provides a standardized platform where developers simply package their application in a container and declare its resource requirements. A central cluster manager then automates scheduling, resource allocation, and failure recovery for a large shared pool of hardware. This shift in strategy improves efficiency and reliability, which allows engineers to focus more time on building products instead of managing infrastructure.

CST438: Journal Entry Week 5

 This week I learned about large tests from the textbook. This also went into when, where, and why you would use larger tests sometimes as compared to smaller tests and weighs the pros and cons of both. The things that stood out to me the most in this chapter were the sections talking about unfaithful doubles and issues with configurations causing bugs and not being caught because they sometimes aren't including in the version control system with the rest of the project code. Interestingly, the textbook claims that configuration changes is one of the major reasons for major outages at Google.

CST438: Journal Entry Week 4

Q. What is the most interesting thing you have learned in your reading of "Software Engineering at Google"? A. I think it's interesting how Google does code reviews. I didn't expect that they would tag approved changes with something kind of silly like LGTM which stands for "looks good to me", but it does make sense and seems quite practical in use. It's also cool to learn that Google uses an in-house code reviewing tool, Critique, since I haven't heard of it before.

CST438: Journal Entry Week 3

Q. Describe what are the good points about using Git for source code management. A. Git is a good version control system. Everyone gets their own copy of the project which adds extra redundancy in case the main version gets deleted. Git allows you to create branches to keep the main branch of the project clean while developers work on new code. As a version control system it prevents your projects from getting messed up or corrupted. Q. What are possible problems that Git merge does not solve when merging code from different developers? A. Git merges do not take context into consideration. 

CST438: Journal Entry Week 2

Q. Summarize what you learned about React this week. A. I learned that React uses the two-server model where you have a separate front-end and back-end. The React front-end is just a fancy way of sending API requests to the back-end that actually does everything. Q. In your opinion, what are the strengths and weaknesses of React? A. I think one strength is React's component based architecture. It's easy to organize and manage different components of your project. I think one weakness is that it can be difficult to set up and configure the application to get it working properly. That might have just been an issue exclusive to my experience though.

CST438: Journal Entry Week 1

Q. What did you expect a course in Software Engineering would cover? A. I believed we'd be building desktop applications with graphical user interfaces. Q. After completing week 1, how has your opinion changed? A. It turns out we're working on web services instead. I think that my personal preference toward desktop apps over web-based ones, especially regarding sensitive information and potential security concerns, is why I had the wrong initial impression.

CST462S: Learning Journal Reflections

This service learning course gave me the chance to dive deep into the topic of wildfire insurance in California. I learned how different groups like homeowners, insurers, tech companies, and government agencies all play a role in making wildfire insurance more accessible and effective. One thing that went well was our ability to gather and organize information into a market map and mission model canvas. These tools helped us better understand the system and communicate it clearly to our partner organization. One challenge was staying on track with deadlines while working as a team. We had to communicate often and adjust our plans when something wasn’t working. The most impactful part for me was realizing how complex but important this issue is. Insurance affects people’s ability to live in their homes, especially in high-risk areas, and I hadn’t thought about it much before. It made me appreciate how policy, technology, and community action all connect. My advice to future students is...

CST370: Journal Entry Week 7

This week the concepts we covered were Counting Sort, Radix Sort (A version of Counting Sort), Dynamic Programming, Warshall’s Algorithm, Floyd-Warshall’s Algorithm, Greedy Technique, and Prim’s Algorithm. It sounds like a lot when you list them out like that. I think the thing I had the most trouble grasping was how the intermediary arrays were calculated in Counting Sort, but I figured it out in the end. It was just a little unclear in the lecture. Hw6_1 was more difficult than hw6_2 because of the complexity; probably because only hw6_2 had a nice hint with the pseudocode and hw6_1 didn’t. I have to keep preparing for the final that’s in 4 days. One of the next class orientations is only an hour after the end of the window to complete the final. Week 8 is super barebones and the only assignment is the final so that’s basically it for this class. I think I’m going to miss this class. There’s definitely a lot more to learn about algorithms.

CST370: Journal Entry Week 6

Week 6. I’m beginning to dislike trees as a concept. AVL just hasn’t really clicked with me yet. I can do it but it feels weird. Anyways we also covered heaps and hashes this week on top of AVL and 2-3 trees. Those were easier to understand. The homework assignments weren’t too bad besides having to handle extra commands in the inputs that we haven’t really dealt with before, but it’s nothing some switch statements can’t handle. I’m pretty sick right now so that’s all I want to say for now.

CST370: Journal Entry Week 5

I’m just finishing up my work for Week 5 right now. We covered quick sorting, binary trees, decrease & conquer, and pre-sorting in the lectures. The homework was fairly simple after I figured out what the two different schemes were for the quicksort algorithm in the first part. I was a little confused why you’d withhold the information and just refer to them as the first and second methods taught in class since they’re named after Hoare and Lomuto, but I digress. The second part with Kahn’s algorithm and directed acyclic graphs felt more complicated. I like how the homework is structured in this course. I use a few scripts I wrote to compile and test the code against the sample outputs and it’s worked for everything except for one of the Homework 3 assignments where it was displaying erroneous and incomplete outputs in the comparison, I never found the root cause of that. Anyways that’s all for now.