Tuesday, June 25, 2024

CST 334 - Week 1

 For the first week of CST 334, we did some readings that helped explain the purpose and design of an operating system. Two of the main purposes of an operating system are acting as a resource manager and to provide a layer of abstraction between the user and the hardware. This allows the average user to interact with the computer's software and components without having to have a thorough knowledge of low-level language.

During the lab portion of this week, we covered how to use GDB to trace our steps through a program. We utilized GDB in my computer architecture class, but I never quite got the hang of it. Hopefully I will get more practice using it in this class as it seems more comprehensive than my constant use of print statements. For the programming assignment, we brushed up on some C programming by doing some string manipulation and playing with pointers. It was definitely a good refresher.

Thursday, June 13, 2024

CST 363 - Week 8

 This course covered a wide range of important topics regarding the design and use of databases. Three of the most interesting and important topics we covered were the use of MySQL and how to use joins, views, and subqueries to most efficiently retrieve data, the important of transactions and how mishandling them can create a cascading mistake, and how indexes can be very useful, but utilizing them in a database design must be well-balanced as to avoid negatively impacting performance.

Tuesday, June 11, 2024

CST 363 - Week 7

MongoDB and MySQL are similar in many ways. They both are free-to-use and open source. They both provide a way to handle and analyze large amounts of data easily. In addition, they are also both capable of being used in tandem with other coding languages, like Java and Python. Both database management systems contain encryption features that allow for needed security.

The most obvious difference between the two systems is that MySQL is a relational system and MongoDB is a non-relational, or NoSQL, system. MySQL stores data using specifically defined schema, which leaves less room for flexibility, while MongoDB stores information like a hash map using key/value pairs. MySQL is more limited when it comes to scalability, while the use of sharded clusters allow MongoDB to be extremely easy to scale.

One reason, I would choose MySQL over MongoDB would be when I need the data formatting to be clear and consistent. For example, employee records all need the same information, so the row/column structure maintains that record-keeping would be consistent. It also allows for some desirable safety features, like referential integrity. However, I really enjoyed the flexibility of MongoDB, so I would choose it when foreign keys aren't as necessary and I want the ability to store data using different schemas. I also though the JSON style structure was easy to understand as that's something that I've had exposure to in other programming areas, while MySQL statement can be complex and take some getting used to.

Tuesday, June 4, 2024

CST 363 - Week 6

 This week we focused mainly on how to use JDBC, which is Java API that is used for database connectivity. We utilized its tools to connect our database design with a web application that simulates registering new doctors and patients and writing/filling prescriptions. For the application, we used PreparedStatements in a Java program to put together SQL statements for database queries/inserts. It was very interesting to learn how to connect my knowledge in Java with what I've learned about databases in this class. It was also fun to get a refresher in the way the web app is viewed on the page, since it's been a while since I've done any web development.