Monday, May 5, 2025

Week 1

 Week 1 (4/28-5/6)

First week in Intro to Database Systems

1. Relational database tables and spreadsheets look similar with both having rows and columns.  What are some important differences between the two?

One of the main differences between relational databases and spreadsheets is the rules, such as the data types and relationships between tables, that spreadsheets don't have. Also, databases manage data more securely, allowing many users to access data simultaneously. DB can query SQL to search, join, and analyze data better.

For instance, using Excel to track customer transactions, anyone can type anything without making sure not to leave blanks, misspell, or enter text instead of numbers. Meanwhile, databases preserve rules like ensuring transaction data has a valid date, transaction ID exists in the transaction tables, and the amount is a number instead of text. Relational DB prevents bad data from filtering when big data sets are implemented and keeps everything linked.

2. Installing and configuration a database and learning how to use it is more complicated that just reading and writing data to a file.  What are some important reasons that makes a database a useful investment of time? 

The most important reason a database is a useful time investment is that it prevents mistakes, keeps data concise, and follows rules and constraints to keep all users on the same page in a safe manner. Also, DBs protect data with backups and recovery features, which are extremely helpful when mistakes happen. 

3. What do you want to learn in this course that you think will be useful in your future career? 

This is one of the core classes in CS, at least, for the Data Science field that interests me quite a lot. I want to gain as much knowledge as possible to help me understand how a company's warehouse stores all the data and how it is handled across departments when interning at a company or in the workforce. 

Tuesday, April 22, 2025

Week 14

 Week 14 (4/16-4/22)

The HW1 assignment was fun, I think I'll approach it more calmly, read slower, and not rush it. It is challenging to do so in this class because it moves really fast.

Jotto, Markov, Pocket Monsters, GymLog. All great assignments to understand concepts better. Especially GymLog since it was with Android Studio, which I had never used before.

Two victories: one was understanding GymLog. Being able to watch the videos is one ability, but understanding them and translating them to any Android app is another. I think using outside resources helped me to grasp other concepts better.

Another victory is the Savnac Android App that my team and I are building. I've spent more time on this project than I have on any other. It has been two weeks of working on it every day. And even though our app isn't finished yet, I already see it as a victory to see how far the team has come and how we've overcome obstacles along the way. Hard to believe that this is the last week of class, two months fly!

I think the one thing I've become better at is understanding the Database, entities, DAOs, the repo class and the ViewHolders. This is essential in an app, so I'm glad I've learned about it.


Monday, April 7, 2025

Week 13

 Week 13 (4/2-4/8)

Markov

With whom did you work? Wootark Kim and Michael Sorensen 

What was your strategy for solving the Markov assignment? Did you start writing code right away? Did you plan it out on paper?

I read the prompting a few times and analyzed the logic data structures and line-by-line implementing methods. I did not start writing code right away. I used sticky notes for methods() names, types, and access modifiers. I read the prompt first, then looked at the UML piece by piece and had it on the side to keep looking at it for the access, types, and names of the methods. I started writing fields, autogenerated constructors, and setters/getters and started working on the most challenging methods first and left the easiest ones to the end.

What was their strategy for solving the Markov assignment? It seemed like they also followed the instructions line by line and added internal comments to their methods to help them not get lost. One teammate followed the lecture/lab video, and the other, with more experience, did it by just reading the prompt and UML.

How would you change your strategy having worked on the assignment? Maybe work on the easiest methods first and then the most challenging ones to the end. It gives room for improvement early on and the ability to leave the frustration to the end and not the beginning.

According to your classmate(s): how well does your code follow the Google Java Style Guide? When I showed them my classes, I didn't have the Javadoc fully developed, so they suggested that I finish the documentation before the submission.

Did you know you can automate applying some of the style guide rules? I learned that while working on this assignment.

Monday, March 31, 2025

Week 12

 Week 12 (3/26-4/1)

Project 1: LDPM

With whom did you work? Wootark Kim and Michael Sorensen

What was your strategy for solving the assignments? reading the prompting a few times and analyzing the logic and data structures and line-by-line implementing methods

Did you start writing code right away? Did you plan it out on paper? I did not start right away, and yes, I used paper for methods() names, types, and access modifiers. I read the prompt first, then looked at the UML piece by piece and had it on the side to keep looking at it for the access, types, and names for the methods; then I started writing fields, autogenerated constructors, setters/getters and started working on the most challenging methods first and left the easiest ones to the end

What was THEIR strategy for solving the assignments? It seemed like they also followed line by line and added internal comments in their methods to help them not get lost

How would you change your strategy having worked on the assignment? Maybe work on the easiest methods first and then the most challenging ones to the end, it gives room to leave the frustration to the end and not the beginning

According to your classmate(s): how well does your code follow the Google Java Style Guide? When I showed them my classes, I didn't have the Javadoc fully developed, so they suggested that I finish the documentation before the submission

Did you know you can automate applying some of the style guide rules? I learned that while working on the project.

What was the most challenging part? attackModifier(), I used hashmaps and a helper method but then I realized that it applied a lot more lines of code and gave me trouble later on, the TA suggested removing the helper method because it didn't follow the Java style guide

What was the most interesting? the attack(), attackModifier(), sub classes, calculateAttackPoints(), toString() and the setType()

What are you the most proud of? passing all tests.

How did you celebrate completing the assignment? I actually celebrated by starting the Jotto Guess Word game right away :( this class goes by way too fast to be able to even celebrate.


Week 11

 Week 11 (3/19-3/25)

Summary of my feedback


What are some trends when evaluating others' code? Was any part of the code a struggle for YOU? Was any part of writing the code easy for YOU? What is your biggest victory?

It seems like most of us struggled with attackModifier(). This includes me. I implemented a helper method. Luckily, I joined the office hours with the TA, and Pol was so helpful to let me know just by looking at my code real quick to fix the helper method because it did not comply with the Google Java Style Guide, so I was able to fix it a day before submission. Can't say there are many trends, we all used different approaches when implementing methods, maybe setType() was a bit similar.

I struggled with passing setType() especially the expected -1, it was the one i had a hard time with because i was not setting the highestModifier in the attackModifier() but in the setType, at first, I used hashMaps in the attackModifier so i switched it to else if, which is not as effective but it helped my setType to be set up more simple.

The constructors, auto-generated setters, and getters are clearly the easiest part to write. After that, the toString(), getPhrase(), and setPhrase(Monster monster) methods are used.

My biggest victory was, like most people would say, seeing all the tests pass.

Peer feedback: https://docs.google.com/document/d/1uS3zxM_Za1-Uj1ZNxaYKUX4BqJhvcUr2izGR-tkuKME/edit?tab=t.0





Tuesday, March 18, 2025

Week 10

 Week 10 (3/12-3/18)

Homework 1 (Markov text generator) Which unit test was/is a challenge to pass, which was easy, what was the thing you were the most proud of completing?  

When working through Markov method, the most challenging part to work with for me was the addWord method because I had the statement as if (words.containsKey(prevWord)and the test kept failing, then I realized that the prompt was asking for the opposite if (!words.containsKey(prevWord)then the test passed. I also had a hard time digesting getSentence until I used StringBuilder. The fields were very straightforward because of the UML in the prompt. What I am most proud of completing is passing all tests; I thought I would spend a while debugging, but it was quicker.

Write a paragraph or two about what you worked on during week 1

I worked on the CodingBat in week 1. It took me longer than I expected because I worked on more questions than I anticipated without realizing it. I had a hard time breaking down some of them. Check-in 1 for Project 1 was not too bad. When I was making my first commit, I realized I didn't create a branch in the beginning until later, so the entire time, I was working on the main branch. Luckily, after looking it up, I found a way to add a branch after writing code from the terminal.

I've found it more efficient to create commits in the terminal and create a branch other than the main in the beginning. The quizzes are pretty straight forward and if I am following the lectures I am able to complete it before the estimated time. I also learned how to create Junit tests and UML by right-clicking in the class folder and showing a diagram. I also learned this only works with the Ultimate edition and not the Community edition because there is a plugin I found in Intellij called plantUML that helps you create UMLs in case you only have the Community edition. So far, so good!

Wednesday, March 5, 2025

Week 9

 Week 9 (3/5-3/11)

This is the first week of Software Design CST 338, and I got to work in CodingBat. I used this site before in community college for Java 1, which is a good refresher for this class. 

Discuss the process of solving the Coding Bat challenges.  A major part of software design is thinking about approaching a problem with the tools we have at our disposal.  What were the steps you took to solve some of these challenges? 

I follow a structure that involves reading the problem, understanding it, breaking it down or visually writing pieces down to help me understand it. Finally, I focus on what's needed. Then I put chunks of code in my head, write it down, and then organize and fix syntax.

Did you plan it out or throw code at it? 

I plan it out, and I need to understand it first to write code. Especially the conditions and what's being asked.

What worked? This approach works for me. Sometimes, I write it down visually or do extra steps to help me grasp the process. 

What DID NOT work? Sometimes, putting the code together in my head gets a bit overwhelming, so I try to visually write it down and write some pieces of code and then, lastly, put it together,

How many tries did it take? How many tries it takes depends on the subject. Map and String take me longer to write down, so more chances to get the syntax wrong. So, it took me more time to fix my process and syntax in those problems that involved more critical thinking. As usual, practice helps us master a subject.

SWE Week 6

 Week 6 CST 438 Write a weekly entry describing important things you learned this week I was only familiar with unit and integration testing...