Capstone Update

The project I have been working on is an app for veterinarians to calculate medication dosages for their animal patients. Our team decided to split the work up, where each team member worked on one portion of the project.

My responsibilities have been to implement a web app for the admin to access the database. This is where they can create, edit or delete specific information about different medications for each animal.

Initially, I thought this would be a simple CRUD application, but it proved to be a bit more complicated than that. Also, I have only created a couple of web apps previously, and although I enjoy the act of designing and creating web applications, I am not very comfortable with the entire process. This was great practice for me!

One thing that proved difficult for me was starting the application and learning as I went. This made it tough because had I known what I know now, I would have structured the architecture of my code differently to make the process easier.

Another struggle I’ve had was learning how to connect the database to the web app. I don’t have any experience using axios, which seems to be the best way to access the data for this particular project. It’s been a learning curve but I’ve noticed I have a tendency to overthink these things and make it seem more complicated that it actually is.

Something that I learned along the way was the semantic-ui library and specifically the Modal component. This made creating my edit button relatively easy. The boilerplate code in the semantic-ui docs for the Modal created a popup, where I just had to edit the content within the popup to create the form, with the data prefilled in for the user to edit.

Overall, this project has been a great mix of challenging and engaging. I’ve learned a lot along the way that I hope to be able to take on to my future projects. I know that it’s hard to start a project when you’re not very comfortable in the frameworks, because “you don’t know what you don’t know”. This has given me a few more tools to add to my toolbox of knowledge, that will hopefully help me out in the future.


Favorite Tech Stack

When starting this project, I wasn’t exactly sure what tech stacks my team would be utilizing. Sometimes, when starting a project, it can get overwhelming trying to think about what to use vs. what not to use.

My task for this project has been to start the Web App for the admin side of the project. I have been working on the page that will allow an admin to create, edit, or delete certain information within the database.

When I got started, I came across a front-end framework, similar to Bootstrap that I wanted to try. This framework is called Semantic UI. I chose this framework over Bootstrap because it provides more pre-built elements that are easier to customize.

For example, I initially had a text box where the user could input a type of animal, however the team decided it would be better to have the animals listed in a dropdown, with the option for the user to type out the name while they searched. I wasn’t sure how I was going to go about this, so I searched Semantic UI’s documentation and found the exact element I was looking for!

Ex. Typing in the search box to find the animal

The best part I’ve found so far, is that Semantic UI also provides a sandbox, where I was able to test the code before putting it into my main code. I was able to take their example code, and tweak it so that it would show a list of animals and look more like how I wanted it, as opposed to how their example was set.

Semantic UI Sandbox

This has been a great experience for me to get more comfortable with diving into documentation and trying certain elements out for this project!


Clean Code

What is Clean Code?

Writing clean code means to be an efficient communicator.

Clean code is easy to read, easy to understand and easy for anyone to step in and make fixes or changes when needed.

When writing code, you should not be thinking about whether it makes sense to you- you should be considering if it will make sense to the next person who’s going to look at the code.

Clean code allows you to clearly communicate with the next person who works on your code.

5 Tips for Keeping Code Clean

  1. Use meaningful names: When coming up with names for your variables, classes, or functions, it’s imperative to use appropriate names for them. They should be clear and descriptive, and represent what that variable, class or function does.

2. Keep it simple: When it comes to writing clean code, it’s important to remember “less is more”. Avoid duplicating code whenever possible, which will make it easier to navigate and maintain.

3. Use comments sparingly: Comments are extremely helpful when trying to show others what you’re trying to do with a particular part of code. However too many comments can make the code look muddled and make the code more difficult to understand/maintain.

4. Reduce number of characters in a line: Remember that we want to write code that’s easy to read. By avoiding long lines of code, you can ensure that whoever opens the file to work on that code, will be able to read the code without scrolling horizontally to see what the code is doing.

5. Single Responsibility Principle (SRP): The SRP is the idea that each function or class within a program should only contain one main responsibility or goal.

My Goals

One thing to try

For the most part, I feel like I try and stay true to most of the principles listed out above. However I know I have a tendency to write a lot of comments. My goal is to make sure the comments I write are efficient and necessary.

One thing to avoid

I will avoid writing duplicate code. I have struggled in the past with duplicating code that should have been turned into a function that gets called when needed. I will aim to work on this, avoiding duplicate code.


Fall Reflections

As Fall term comes to an end, I am eagerly trying to wrap up all of my assignments in order to get as early of a start to Winter break as possible. Luckily I only have one final, and the rest of my classes have final projects. The projects are all due this week, so the next few days will certainly be packed. However, I prefer this as opposed to dragging out finals into next week.

Calculus (Mth 251):

Admittedly, I have been putting off calc for as long as I possibly could. I have been terrified of taking this class, because of the horrible things I’ve heard about limits and derivatives. I must have built up this awful image in my head, because it honestly wasn’t nearly as bad as I thought it would be. The concepts weren’t overly confusing, and the professor, Dr. Brittanney Adelmann was incredible. The algebra was honestly the toughest part. The professor posted worksheets each week which went along with her video lectures. I found that if I printed the worksheets, and worked through them with her during her lectures, it helped solidify the knowledge. She also had weekly online homework, weekly written homework, and biweekly quizzes. The online homework gave you unlimited attempts at solving a problem which helped create a low-stress learning environment. The written homework was graded mostly on participation, with one of the 5 or 6 questioned being graded on accuracy, and the quizzes were graded completely on accuracy. I really appreciated her teaching style and found I learned a lot better with this style of teaching.

Social & Ethical Issues of Computer Science (CS 391):

This course was fascinating, however the workload felt a little excessive. Generally speaking, I usually enjoy writing and find I use writing intensive courses as a good creative outlet. However, the wordcounts for this class felt like a stretch. I found myself spending hours on an assignment that should only take 20-30 minutes; solely due to the intense wordcount requirements. Between all of the weekly assignments, I found I was writing around 3,000 words almost each week, plus a lot of independent research, homework, etc for this 3 credit course. Based on the stellar reviews I saw from students who took the course previously, I am curious if this was a new implementation and if this might be adjusted for future students. Besides this, the course was excellent. Dr. Safonte was engaged and accessible throughout the term, and you could tell she cares about the material and the students. She had a good mix of reading material as well as several YouTube videos, Ted talks, and interactive websites for her learning materials. I found this helpful and really enjoyed the class.

Computer Networks (CS 372):

This class doesn’t have a stellar reputation and gets a lot of flack from other CS students. Honestly, I enjoyed the class and felt like it’s taught as well as it can be. Yes, it’s a dry topic- but all things considered, I found the professor to be engaging and the learning material as good as it can be. I have a great appreciation when professors take the time to incorporate video lectures, or outside learning material. There’s nothing worse than jumping into a required course to find out you’re only provided with a wall of text to read through and try to comprehend. Professor Lewis incorporated video lectures, animations, textbook readings, examples, and several practice “check your knowledge” questions which helped a ton. The programming assignments were vague and difficult, but I found that if you start them early, you generally have more than enough time complete them. When in doubt, I did what I could to get my output to look as close as possible to the example screenshot provided, and I ended up with 100% on each assignment (so far!) I was actually surprised at how much I enjoyed this course.

Senior Software Engineering Project 1 (CS 461):

This has also been an enjoyable class! We’ve spent the majority of the term communicating with our project sponsor and building our requirements and design documents. Our sponsor has been excellent to work with and our team has gotten along pretty well so far. It has been challenging to coordinate asynchronous times to meet, but we have managed fairly well so far and I look forward to developing a more effective working relationship with the team over the next few terms. I think that the skills we develop as we collaborate, compromise, communicate, and work together will be extremely beneficial as we prepare ourselves for future careers in the field.


Advantages of being an Adult Student

The first day of classes is always very exciting; regardless of how old or young you might be. However, for students who have been out of academia for some time, it can be a bit overwhelming and stressful. Most adult students are juggling work, family, friends, and household responsibilities on top of their schoolwork. One thing I’ve learned since returning to school, is that these responsibilities are what give me an advantage over traditional students. I’ve learned so much prior to returning to school, that rather than feeling intimidated I have learned to feel empowered.

3 Advantages Adult Students Have:

1. You don’t have time to procrastinate

When returning to school as an adult, you have a lot more responsibilities than your typical student who’s fresh out of high school. On top of school work, you have to think about managing a job, paying the bills and taking care of a family (or in my case- my fur babies).

There usually aren’t enough hours in the day, so you must learn to be extremely efficient in your day-to-day tasks. This teaches good time management skills, which ultimately helps you become a better student.

You need to find what works for you, but one trick I’ve found is that I write all of my assignments out for the month on a white-board calendar. As I complete each task, I will simply erase it from my board. This helps me because I can see what I have planned, and what assignments might take a little more time. Then once they’re completed, I can simply erase it from my list.

2. You Have Grit

As an adult student, you are making a conscious choice to further your education. It’s not an assumed decision, like it is for so many traditional students. You go into it fully aware of the sacrifices necessary and the time that it will take away from other aspects of your life. You go into it with a determination to get yourself through school, and this grit will carry you through the hard days and trying times throughout your educational journey.

3. You don’t get distracted by “college-life” distractions

The traditional college experience usually involves loud parties, learning the basics of how to live independently (paying bills, grocery shopping, doing laundry, etc), and college dorm roommates who may or may not be a good fit. As an adult, you most likely have these figured out by now, so that you can focus on your priorities: furthering your education.

Take Advantage of your experiences!

Being an adult student can benefit you when going back to school. You’re determined and know exactly what you want and how to get there. You have goals, motivation and drive that most traditional students don’t have. You have spent time in the “real-world” and know exactly how this degree with benefit you. Take the motivation and remember that it will be worth it!


How I Got Started in Computer Science

I get asked why I chose to pursue a degree in Computer Science quite often, and to be honest, I don’t really have a great answer for anyone.

I never fit the stereotype of a “computer guru”. I was never a gamer, and I certainly didn’t find amusement out of taking computers apart and putting them back together again. So why CS?

I remember several years ago thinking up different ideas for apps that I thought would be useful, yet not having the skillset to create them. So when the pandemic started and everyone had to quarantine at home, I figured what better time to go back to school and finally finish that degree I’d been putting off for more years than I’d like to admit…

But I wasn’t finishing a degree in CS. I had about a year and a half left to complete my Bachelors in Business Administration. So I went back to school to finish that up. However, when registering for classes, I saw there was an Intro to CS course and I decided to take it along with my other business classes.

It was a disaster!

The professor had never taught a lower level CS course before, and he was thrown into it 2 or 3 days before the term started because of a health emergency with the original professor. Long story short, the assignments he would give us were way over our heads. Think assignments requiring 3D matrices by week 5. Most of us had never even written a single line of code prior to this course. Ugh!

Most of the students in the class had little to no coding background, and there were several students who claimed they were switching their degrees away from CS because of how ridiculous that class was.

Luckily, I was also taking a course on writing research papers, and decided to focus my final paper on the Implications of the Gender Gap in Computer Science. I was shocked at what I discovered. Yet, I wasn’t surprised.

One important stat I found was that during the 2017-2018 school year, women made up over 57% of all bachelor’s degrees awarded in the U.S. Yet, only 18% of bachelor’s degrees awarded in computer science were to women. More women were pursuing their education, but less than a quarter of all CS majors were women.

The more I looked into the gender gap within this field, the more fired up I got about actually pursuing this degree instead of business. So I decided to take the next course in the Intro to CS sequence, and eventually switched my degree to Computer Science with a minor in Business. The more classes I took, the more I fell in love with the field.

I love how computer science works both sides of your brain. It can be used as a creative outlet, but also requires you to be very analytical and a problem solver. Hopefully this passion will continue to grow, and hopefully I can inspire other girls to at least give computer science a chance.