Saturday, April 27, 2024

CST 363: Introduction to Database Systems WEEK 1 REPORT

This is Gigabit Goon Squad captain Luis reporting in for database week 1 intel briefing.

While spreadsheets can hold data, it is an older form of database named "file" database compared to our modern relational database used in SQL. This means that in relational databases, data is more securely protected and also the system ensures that data is more consistent by using constraints. Another big difference is that relational databases are designed with concurrency in mind, meaning it can be used by many people at the same time without having nearly as many errors as a spreadsheet or file database would. For a very small business, a spreadsheet might work but not for big companies such as google or tesla. Yet another big difference is that spreadsheets are far more prone to data redundancy, and relationships in relational databases mean they are far more organized and efficient. 

The main reasons for learning to a database is not only for the above, but also that if one wishes to create their own database or work for a data centered company in the future, an understanding of how databases function is absolutely important. For instance, if one were to encounter an error, they may not know how to address it without knowing the appropriate mechanism at fault. Also, a good programmer should be well versed in a variety of subjects, and databases are no exception. 

In particular for this course, CST 363, I believe that learning how to work with databases in Java or python would be great, especially since data science is a booming field. Knowing the fundamentals of database interactions with regular programming languages would surely help all students to grow professionally.

Wednesday, April 17, 2024

CST 338 End Course Report

    In CST338: Software Design, we are about to wrap up our final project and major assignment of the course. This course was incredibly educational, I learnt a ton about Java and Android and how to properly design and test software. 

    The first major victory I accomplished was completing the Jotto assignment. This is primarily because we are all new to Java (at least most of the students, since we started with C++). Having to overcome the initial learning curve the language presents along with implementing it into a word guess game was very challenging and yet rewarding, since I acquired a much better understanding upon completion. If I could go back in time, I would actually simply learn Java ahead of time (this is something that could be recommended to CS online students ahead of the first course, actually). I gained the ability to understand Java code, and that is massive. Another skill I gained is knowing how to create and run unit tests, which are very important in the world of software development. Yet another skill gained was a decent expertise over GitHub, which today is probably even more important than knowing unit tests!

    The second major victory I accomplished was definitely completing the android project. This thing was an absolute beast of an assignment, and conquering it proved equally as rewarding. I easily have probably 100 hours into the assignment, if I had to guess. However, the effort was well compensated as we now have an awesome mobile game application, one that Pokemon fans are especially certain to enjoy. Training with android studio taught me much; I particularly feel that I now have a strong foundation for Java app development, including a whole bunch of tools such as activity layout design, SQLite database operations, threading, recyclerviews, livedata, mediaPlayers, adapters, intent factories, push notifications, and much more. 

    Overall, this course was awesome, and I am grateful to have had a tremendous professor and TA for it. Thanks for the training and guidance Dr. C and Polina!