Posts

CST 438 - Week 4

 This was our fourth week in CST 438 - Software Engineering. Reflection Last week we set up a GitHub organization, along with some repositories and a project, for our multi-week group project for this course. We also planned who would do each task for the first two weeks, and our gave our estimates for how large and time consuming each task would be. This week we started working on the first set of tasks, which all focus on the API for the backend of the service. In the lecture material for the prooject it was mentioned that writing unit tests would take up more time than the code itself. This ended up being true, as most of my time was spent writing tests.   As part of this reflection, we were given the prompt "What is the most interesting thing you have learned in your reading of Software Engineering at Google ?" For me I think the most interesting thing would be its coverage on tests, which I talked about in last week's post . The second most interesting thing that SAG...

CST 438 - Week 3

This was our third week in CST 438 - Software Engineering. Reflection This week we covered software testing (such as unit tests). I have had some limited experience with unit tests in previous classes, but not integration or E2E tests. Those classes also did not explain the importance of testing. It seemed like an extra, arduous step that I sometimes had to take with some coding projects. The reading for this week, both of which I summarized some of the main ideas below, did a good job at explaining why software developers write tests and how to write good tests. During the reading, I found myself thinking about how I could add tests to my personal projects to help improve them. This week we are setting up a group project on GitHub that will last for mutliple weeks. Currently the project is only going to consist of three empty repositories, but already I am thinking about how I will write tests for whatever my portions of the project end up being.   This week we also covered the ba...

CST 438 - Week 2

Image
This was our second week in CST 438 - Software Engineering. Relfection This week we covered the basics of React, which is a Javascript library (using Node.js) that is used to control the information displayed by webpages. It is made up of functions that return HTML elements to the browser, and it is known for having fast performance because it only updates the DOM object with the delta changes, instead of updating the entire thing. In the lab for this week, we built a basic React service that serves as a frontend application for the backend controller that we built during last week's labs. My first impressions of React are that it is a powerful tool to create web services that only take a small amount of code to create. If I were to implement the same service in Express (also using Node.js), which I am more familiar with, I am certain that it would have taken more code to create. That being said, the syntax for React was a little hard to wrap my head around. It requried the use of ...

CST 438 Week 1

This was our first week in CST 438 - Software Engineering. Reflection In our first lab for the week, we covered RESTful API, Spring Server, and Java Persistence Architecture (JPA). Although I had heard about RESTful API in the past, I had never used it up until this lab. Although some of the implementation was rather complex, the concepts of the API themselves seemed straightforward, as I was already familiar with how HTTP requests work from another class. I had also briefly learned about JPA in another class. I remembered JPA being complicated and difficult to learn in that class, and it continued to do so in this lab. Although I do feel like I have a better grasp on the architecture after the first lab, I think I will have to practice more to feel comfortable with it. We used Spring Server for both labs one and two. Similar to the  other two APIs/tools, the usage of Spring was complicated, although some of the setup was simplified thanks to this tool . In our second lab we covere...

CST 383 Week 7

Image
 This was our seventh week in CST 383 - Data Science. Reflection This week we reviewed ordinal and nominal (dummy variables or one hot) encoding. We discussed a couple of ways to do each in code, and when we want to use one type of encoding over the other. Although we have covered this in previous weeks, it was still helpful to review the topic, as we had to use it during this week's lab. We also discussed logistic regression, which is similar in concept to linear regression but is designed specifically to predict binary, categorical variables. Although linear regression can be made to do this (for example, if we consider all predictions above 0.5 to be True), logistic regression is generally better at it. Although we didn't have much of a chance to explore the regression model during the lab, it appears to be a powerful tool. In one of our textbooks, we also covered in more detail how linear and logistic models are trained. We also covered another similar model, the polynomial...

CST 383 Week 6

Image
This was our sixth week in CST 383 - Data Science.  Reflection This week we continued to focus on hyperparameters, which we begun discussing last week. We also covered KNN and Linear regression models, and how we can asses the accuracy of regression models using MSE, RMSE, and MAE. Going through the lecture, the concepts seemed to be relatively straightforward. I didn't feel confused about any of the concepts going into the homework. This feeling continued into the homework. While the portions of the homework that covered this week's concepts weren't necessarily easy, none of them were problematic. One homework topic that gave me problems was One Hot Encoding. We learned about encoding last week, but last week's homework didn't really include it. This week's homework did, and it proved to be the most challenging part by far. It felt like either the reading material wasn't fully explaining how to use the OneHotEncoding object properly, or that I simply wasn...

CST 383 Week 5

Image
This was our fifth week in CST 383 - Data Science. Reflection This week we covered how to process missing data in datasets, how to scale datasets, and the basics of training and testing machine learning algorithms. Some of the more straightforward concepts this week were those about missing data. Although much of the information itself was new, it corresponded the most with what we've learned about DataFrames and other data types in previous weeks. I would say that the most difficult concepts covered this week were those about training and testing algorithms. We covered some basic ideas around this in the first weeks of the course, but this was the first time that we covered how this is done in code. Despite the material being difficult, enough was covered in class to greatly help with the homework that covered these concepts. I imagine that we will expand on these concepts in upcoming weeks. Class Lecture  Missing Data This week we discussed missing and bad data within data sets. ...