Posts

CST 334 Week 1

I learned Docker by installing Docker Desktop, verifying with docker run hello-world. I dove a little deeper into what containers were, how it mounted and what I can do inside a docker container which taught me layering and caching.  In C#, I realized high-level features hide a lot of complexity: strings are immutable and managed by the runtime, and memory allocation “just works.” To see what really happens under the hood we did an assignment based on C string library where I needed to juggle heap versus stack. The string struct itself lives on the stack or wherever i declare it but its data pointer refers to a heap buffer hat i allocate with malloc or grow with realloc. Managing the buffer safely can avoid issues and avoid memory leaks. A few new methods/concepts i've also learned on the fly was memmove where it lets me shift bytes directly inside my buffer even when the source and destination overlaps for example in my insert and erase function that I did for the string library a...

CST363 Week 6 June 4th - June 10th

This week was a challenge but I found it also very rewarding as well regarding Lab 17. Being able to connect to your SQL database and perform SQL commands in Java was pretty cool. The Sql homework are getting a lot more challenging now that we are nearing our end of semester, combining everything we've learned so far to achieve specific data set and structuring the sql code statements to achieve that result.

CST363 Week 4 May 21st - May 27th

Five things i've learned so far in the course so far... 1. Relational Schema Design and Normalization How to structure data into tables, define their primary and foreign keys, and apply normalization rules to eliminate redundancy and ensure data integrity. 2. Basic CRUD operations with SQL Writing SELECT , INSERT , UPDATE , and DELETE statements to retrieve and manipulate data, including filtering with WHERE , sorting with ORDER BY , and limiting results with LIMIT 3. Joins and Set Operations Combining data across multiple tables using INNER JOIN , LEFT/RIGHT JOIN , as well as operations like UNION and EXCEPT to merge or compare result sets. 4. Aggregate Functions and Grouping Using COUNT() , SUM() , AVG() , MIN() , MAX() along with GROUP BY and HAVING clauses to summarize statistics and filter groups. 5. Database Design Designing databases by creating ER diagrams using primary and foreign key relationships between entities. Three questions I have regarding databases... 1. Scali...

CST363 Week 3 May 14th - May 20th

A view is essentially a saved query that you can treat like a table. Under the hood, the database doesn’t necessarily store the view’s data separately; it re-runs the defining SELECT every time you reference it  The similarities to a table are the Rows and Column, you SELECT from a view similar as to how you would do it from a table. Join and filters also looks the same. The key differences between the two... Aspect Tables View Storage Physically stores data on disk. Usually virtual (query results are generated on the fly). Some DBs support materialized views. Primary Key Defined directly on the table; enforced. No inherent PK—though some systems allow unique indexes on views, most treat them as keyless. Updatability Always updatable (barring triggers/locks). Only if certain rules are met: Comparing SQL with Java there are notable differences a...

CST363 Week 1 April 28th - May 6th

 1. The key differences between relational tables and spread sheets is it's structure and schema. On a spreadsheet you can mix data types in a column/cell because there are no enforced schema where as a relational table has declared data types for their columns, so age would have to be an integer value. There's also no built in validation for types or wrong data type in spread sheet whereas a relational table would reject invalid data. The biggest one would be the ability to query. I've done queries on large datasets via excel before and it takes forever and isn't maintainable on a bigger scale versus relational tables where I can query and cross reference specific data from different tables to get the results quick. 2. From what I've learned so far, investing in a database means data integrity and consistency via schemas. From personal experience, I know that database are often compatible with other tools such as tableau, power bi, and excel. All of which are great...

CST338 April Week 7/8

Reflecting on the HW1 assignment, I realize that, with the knowledge I have now, I would have conducted research before diving in. This proactive approach proved invaluable, and I plan to adopt it for all future projects. My first victory was configuring the debugger so I could step through my code and inspect variables line by line. That hands-on insight was a major leap in sharpening my programming skills and made tackling homework far more manageable. My second victory was actually finishing the assignments, even when I started them at the last minute. By drawing on what I’ve learned both in class and from my own experience, I’ve been able to deliver on time, and seeing that success has really boosted my confidence. I’ve become much more proficient with Room for local data persistence, I can define @Entity classes, create DAOs, and configure a RoomDatabase so that storing and querying structured data is both clean and type-safe. I’ve also mastered view binding, which allows me to ac...

CST338 April 2nd - April 8th Week 05

For week 5 we went over our Markov assignment with our team mates... For this Markov assignment, I worked with two classmates: Kha Ai and Josh. We met up via discord to review our code, discuss challenges, and share ideas on implementing the assignment's requirements.  I began by writing the initial code stubs. Instead of spending too much time on planning with extensive notes or diagrams, I trusted that the assignment prompt provided enough structure. By creating these stubs early, I established placeholders for all the required methods. Kha Ai followed the Markov Intro Video and assignment prompt closely. She mentioned that, similar to me, she did not plan extensively on paper before coding. Instead, she jumped directly into writing code by creating stubs first, following the prompt’s order to define their methods, and running their test to confirm functionality. Much like my teammates, I did not spend a significant amount of time planning on paper. I believe the clarity of the a...