Posts

CST462 - Service Learning Reflection: LibreOffice

 Service Learning: LibreOffice Software Development Reflection           Throughout my service-learning experience with LibreOffice, I gained a much-needed and hands-on understanding of what it actually means to engage with a large, long-lived open-source codebase. One of the biggest victories was simply learning how to navigate the environment--getting the project to build, understanding the workflow through Gerrit, and becoming comfortable using tools like "git grep" to locate and modify relevant code. These may seem like small steps but in a project of this scale they are foundational and non-trivial. I feel very prepared to dive into another huge codebase where I must accept that I simply will not be able to understand much of what I see and instead will have to drill down into one specific focus to gain understanding and contribute efforts.           The most impactful parts of the experience were seeing how rea...

CST370 - Week 7 Reflection

   Week 7 Learning Recap           Week 7 of CST370 was a reinvigorating volley of algorithmic delights. I found myself looking forward to the programming assignment during this week’s lectures and puzzles. I always love actionable steps, the pathway to victory as my Calculus professor once called it. As the shadow of the final exam looms ever closer, I have been quite intentional about fully absorbing the lecture, example, and textbook excerpt before moving onto the next concept.           This week's algorithms folded very nicely into each other throughout the module. Counting sort using frequency and distribution to place in the index was the perfect simple intro to stack Radix's LSD method of going digit by digit.  The coin collection problem was my first "alright pausing on this and clocking back into work" moment, but upon returning became quite clear--I appreciate that dynamic programming is tactile and ca...

CST370 - Week 6 Reflection

 Week 6 Learning Recap           Week 6 of CST370 revealed many clear-cut rules and hands-on navigation tools for the handful of data structures covered, including but not limited to: balanced binary search trees (AVL and 2-3 trees), heaps, and hash tables. In the fight to not feel overwhelmed amid the many moving pieces we deal with in CST370, I greatly appreciate how each structure from this week has a strict internal rule set with an accompanying specific algorithmic repair process when those rules are violated. In theory, that's how all algorithmic concepts should be, but I found working through the example problems to be more tactile and logical than I perhaps expected. This week proved to be a bit more like a Lego set and less abstract than some attempts have proven to be in prior modules. It could just be that the nearness of the next exam looms and needing to absorb the material sufficiently now for the exam is not lost on me. The heap and...

CST370 - Week 5 Reflection

  Week 5 Learning Recap          On the other side of our first midterm exam, I'm now attempting to absorb the material at a more demonstrable level. I was mindful of ensuring practical understanding before continuing my traversal of the week's offerings of Quick Sort, binary trees, Decrease & Conquer, Insertion Sort, Topological Sort, and Transform & Conquer--among other puzzles and detours. A sizeable gap in my exam performance revolved around analyzing time complexities for new algorithms and programs I hadn't encountered yet. This week's module offered moments to rectify that trouble right away by analyzing time costs calculations with the Quick Sort worst-case and best-case T(n) equations.           Following along to Professor Jia's explanation of Quick Sort and w riting out the recursion tree by hand helped clarify why the linear work per level accumulates logarithmically--in the most favorable case at least. Bin...

CST370 - Week 4 Reflection

  Week 4 Learning Recap          Week 4 was a change of pace for CST370 as it was predominantly looking back at the material thus far in preparation for the midterm. I mostly found it to be an enjoyable retrospective; a lot of ideas have fallen neatly into alignment with each other. Naturally, I don't know that I'll feel so serene once I see my grade on this exam. I have a tendency to panic that I must persistently fight to override. Instead of a swarm of fresh concepts and ideas, new material simply focused on Merge Sort as an extension of Divide and Conquer. I'll briefly run through some of my exam preparation strategy and then recount what I recall from Merge Sort.          I first ran through all of the lectures and textbook readings before focusing in on any one topic. From there I broke up the weeks and attempted to use the module items for hot button topics to keep track of and quizzes as a guiding post for how questions migh...

CST370 - Week 3 Reflection

Week 3 Learning Recap          Another week, another dizzying array--or in my case with the homework, vector--of concepts, time-complexity conundrums, and new perspectives on age old programming cornerstones I have only vaguely glanced upon prior to CST370. As the perilous march to the top of the Algorithm mountain persists, I feel both comforted and daunted. On one hand, it is evident that the best cases and best algorithmic solutions to complex problems are a constant moving target that can require varying blends of planning, experimentation, calculation, brute force, and elegance--perhaps even all at once, when necessary. On the other hand, amid the raw mass of strategies and concepts I find myself somewhat awash in a sort of mountainside river that can quickly carry you downstream and force you to retrace your steps back up the range.          In an attempt to gain more stable footing on this week's slew of mental hikes, I will ...

CST370 - Week 2 Reflection

  Week 2 Learning Recap           The second week of Design and Analysis of Algorithms reminds me that "computer science" can perhaps be a bit of a misnomer. By the same naming convention, time complexity and recurrence relations would be reduced to "telescope science" if they were astrological phenomenon. The mathematical and proof-rooted logic presented in CST370 this week wove many strands of thought together--I may have panicked when I heard "induction"--that I will attempt to unweave and reweave here for the sake of my own understanding.          Big O, big omega, big theta ruled--and I sense will continue to rule--the time complexity conversation. I will surely never forget O means upper bound, theta means lower bound, and omega means exact. Prior to CST370, I had some negligible and nebulous understanding of how loops are interpreted for the sake of n , but the lecture and textbook have laid it out very plainly as T(n) g...