Posts

CST438 Wk2 Journal

 React is a neat frontend framework that helps generate HTML code dynamically and only updating the parts that is new instead of reloading the whole page.  After awhile of learning how it works I found it really cool. I feel like there's a bit of a learning curve but after realizing how much you can reuse code to make a much more complex website that autogenerates tons of information it's just wonderful. 

CST370: wk 7

 This week we went over dynamic programming for collecting coins on a grid and Floyd’s algorithm for finding all-pairs shortest paths. The coin problem was pretty cool because it wasn’t just about getting the max coins, but also figuring out the exact path to take, and having to follow a weird tie-break rule where you pick left over top if they’re equal. Floyd’s algorithm made sense once I thought of it as letting more “stops” into the route one at a time and checking if that made a shorter path. I also got some practice handling -1 as infinity in the input/output. Overall, I feel like I’m getting more comfortable with DP grid problems and shortest path algorithms, and using Scanner in Java made the code way easier to read.

CST370: Wk 6 Trees, Heaps, and Hash

 So this week we covered AVL trees, max Heaps as well as hashing functions.   AVL trees are an interesting way to store data and to actively keep them balance and organized.  Heaps are useful to keep the highest value towards the top of the heap.   Hashing is interesting to myself in particular when it comes to dicts in python, since there is some kind of hashing function going on behind the scenes. 

CST370: Week Quatro (Midterm)

 Honestly, I felt good during the midterm, but was shocked in my results.  I think theres stuff I definitely need to review like calculating the TSP problems.  I must have just done some arithmetic error, im not sure what I did wrong there. I also forgot how to calculate logs on the calculator when its log base 2.  I missed some easy points there.. :(

CST370: ALGO Week Dos

 Interesting week in learning about time complexity.  I remember learning Big O notation in the past but wasn't aware of Theta and Omega notation as well!  I hadn’t realized before that Big O only tells you the upper bound of an algorithm’s growth rate, while Theta is for tight bounds, and Omega gives you the lower bound.  I remember my professor was mostly concern about the worst case scenario. It was a bit challenging to figure out the notation and remember what the math notations mean again.     Recursion is a difficult topic to understand and grasp and is something I still struggle with. The idea of a function calling itself makes sense in theory, but when it comes to actually tracing through code, especially with multiple recursive calls.  I start to lose track of what’s going on.  I tried to do many practice code online using codingbat, which helped but it still hasn't stuck with me.     Overall, this week was b...

CST370:Algo - Wk1 Intro

 So this week we covered the following topics Pseudocode Important Problem Types (sorting, searching) Fundamental Data Structures (linked list, stack, queue)  Graphs Algorithm Analysis framework    It was a good review of topics that I've seen in previous course work and I realize that an essential topic, graphs, is something I need to focus more attention on, since it is very key in developing efficient and effective algorithms.  Before I was told that graphs were important, but for some reason the reasoning never clicked in my head.  I definitely watched various videos online to gain a better understanding and pulled up my old notes from my previous discrete structures course!  

CST 462 Service: Learning Journal Reflections

  What went well? Triaging bugs for libreoffice went fairly smooth, though was challenging to figure some bugs since they were features that I didn't even know existed.   What would you improve? Im not sure what I would improve, since it went fairly smooth.  It was difficult on my part because I was traveling during most of it, but the supervisor was very accommodating and worked around each others schedules.  What was the most impactful part? Being able to support the open and free libreoffice office suite.  I was an early benefactor of the software when I was younger when the software was called openoffice.  So it was nice giving back the time :)  What challenges did you face? Scheduling and time do to me traveling during most of it.   What advice do you have for future SL students? Have fun and be curious :).  The fun part was figuring out bugs I had no clue about but was able to walk through steps to figure them out! 

wk7; Persistence

 There were many topics I've learned for this week, some particular topics I enjoyed learning was about RAID, which is Redundant Disk Arrays, which are used to make backups of harddrives but make them appear as a single harddrive to the user.  This allows the disks to provide redundancy and in some case performance improvements where data is spread across multiple harddrives to increase read and write speeds.   Another topic I heard before but never understood was journaling.  Journaling is a technique used in file systems to maintain the integrity and consistency of data by keeping a log of changes that will be made to the file system.  Journaling main goal is to prevent data corruption and ensure the file system can recover graceully after unexpected shutdown. 

wk4: The Illusion of Memory

 I remember during my intro to comp arch course at a community college, the professor always showed us and reminded us that the memory that the program sees is not the physical memory.  I appreciate  him teaching us about this early on as it gained my interest to learn how exactly the OS manages that. Memory virtualization is a topic that makes every process think they have their own playground.  This allows the OS to manage the memory allocation while the program itself can do what it was programmed to do.  I also learned about paging which allows the translation of the virtual memory space to the physical memory locations.    For as long as I remember I tried again and again I tried to learn linux systems and something that caught my eye was the step to make swap space on the harddrive.  I wondered why Id have to do such a thing since windows doesnt have it.  But the idea behind it to use the harddrive as a backup memory location makes...

wk2: Trust the Process

 In the year 2012, Kobe Bryant was having a season filled with injuries and ups and downs, but confidently he said to "Trust the process" in order to achieve his goal of another NBA championship.  While he wasn't able to get this sixth championship, his saying still lives on.  Though I'm sure Kobe wasn't aware that trusting the process lies within our computers that allows them to perform whatever we tell them.   I've learned the interesting bits about how the OS manages processes through the fork() and exec() commands, which appear simple but allow the OS to perform multiple processes.  I later learned about how the OS manages permissions between the user and kernel, so the user can temporarily access higher permissions through the use of traps. Also fun to think about the potential of traps if one were to gain access, they can run malicious code.

CST334 - OS - WK1

 The first week of CST334 has been interesting, since I've always wondered how computers bridge the gap between hardware and software, and it seems like the OS is the glue that holds it all together.  I remember back in the lower division course of Computer Architecture, the professor spoke about how data is placed in memory and seeing where in the memory this information is being stored.  He was careful to point out that the memory address that was seen is not exactly the hardware memory address because of virtualization.  Then in the first week of this course we were exposed to virtualization to see how the OS manages the flow of information.  I find that all the computer things I've learned in the past through online tutorials like setting up linux machines, etc, are coming together, to understand why that command I copy and pasted to change file permissions are actually doing!

CST 363 Final Week

 The top 3 important topics I learned in this course are probably the following: SQL Database Design  Learning databases are designed and how information is organized and categorized in tables CRUD Operations Understanding CRUD operations is essential for building applications that interact with databases, as it covers how to add, retrieve, modify, and remove data.   NoSQL like Mongodb It’s important to understand the benefits and use cases for NoSQL databases, like scalability and handling unstructured data, as well as their trade-offs compared to relational databases.

CST 363 Wk7:

 I 100% prefer MongoDB, it's very intuitive compared to SQL statements, since it's more modern.   Some similarities are the CRUD operations, which makes going from SQL to MongoDB easy to handle. I do like how flexible the data is stored in MongoDB rather than SQL.

CST 363 Wk5: Slow Indexes

 Well hello! it's been awhile hasn't it? Even though indexes are generally fast and enhance query performance, but if the database is poorly designed and/or maintained then the index would have a negative effect on performance. For example table data can be unsorted and the index scan has to search all matching indexes instead of just finding a single matching value. .

Wk07/08: Learning Journal Summary

Taking a look back at HW1 Histogram  After looking at Histogram assignment, I feel like some operations could be handled in a different class.  For example a separate class to read in the file.  Then another class that does the counting of letters and counts, as well as creating a histogram.  Then the main class is one that handles all the class creation and displaying the histogram.   Highlighting two victories   Looking back to see where I started and now I'm impressed at how much I've learning especially in software design.  I learned to appreciate creating class diagrams early on to visualize how information flows and create a better product at the end.  I actually started implementing this strategy at work for some simple python tools.   The 2nd victory would be Android programming in general since I originally had no clue how Android programming worked.  I heard it's close to java, but has it's own built in libraries and built...

CST338: Wk05: Learning Journal Markov

 I worked with Rahim, Jess, and Saria to review the Markov assignment.  Honestly, I just started coding right away, just going through the hw prompt, but did notice that some methods depended on others so I just worked through each. Everyone else seemed to be more methodical approach than my just do it approach.  In particular Jess started work on methods that did not depend on other methods.  Saria, did more planning upfront to understand how the data flows.  If I were to approach this assignment differently than I would probably would understand how the data will flow through each method and see what the dependencies are.  According to my classmates, my code seemed to follow the Google guidelines very well.

CST 338: Code Review

The histogram hw was a fun little project that I enjoyed doing.  The sorting portion was the most difficult and everyone mostly wrote the code the same way.   The sorting code was a struggle since I had to remember how I did it from years ago!  I'm impressed with how IntelliJ does all the autogeneration, which saves so much typing!  I remember having to write all that from scratch.  

CST:338 Wk 1

 Did some codingBat practice with was a fun refresher to java.  Looking up examples of Map help refresh my memory.  I haven't done too much of the lambda functions in the past but I do like the style of them.  Reminds me of the loops you can do in Python, so it's something I'll use more in the future. 

Week 7

 The final research video planning was quite difficult to gather all our thoughts and share those with each other.  Rahim was instrumental is gathering our thoughts and creating stock footage to use for the video.  The time frame in particular is difficult.  There might be easier ways to collaborate using cloud tools online but I'm not too familiar with them.   I do enjoy learning about presentation skills as this is something that has been challenging for me in the past.  Currently, I do have to present technical data and information to numerous technical review boards, so that has helped me explain my thought process and ensure I'm saying accurate information!

Week 5: Teammates' Goals, Capstone Ideas, Learning Journal

Looking at the Capstone presentations I think developing a game would be the most enjoyable for me.  Especially something physics oriented, like a planet/satellite orbit calculator.  All I need is a little project to entice me to learn orbital mechanics :).   I think any type of game I'd like to pursue.  Other ideas I've thought about are a simulation type game either in stock trading, or economic type game.   Teammates Goals: Enjoyed reading through everyone's career plan as everyone is in a different boat with their own unique approach to achieving their goals.  It's very inspiring to be in the same group with these very motivated individuals!  Saria's Rahim 's Jess 's Looking to pursue graduate schools, where I'd prefer to be at the forefront of innovation.  I've been an engineer for 10 years now and I don't feel like I'm working in a field/industry where science and engineering principles merge and go hand in hand.  Some areas o...