Introduction

This is a blog I am writing to document my achievements in my CSP and CSA career, as well as what I plan for my future. I’ll discuss what I did before taking CS courses, the projects I have worked on, what I have learned, and what I still have yet to learn.

Before CSP

Before CSP, I had very little computer science experience. I remember playing around with Scratch in elementary school and then python and a bit of java. I remember buying a small Raspberry Pi to have a separate device to program python on. However, the issue that I had with learning it this way was that it was difficult for me to learn without a goal in sight. I was being fed information by the tutorials, but I didn't actually understand it.

A bit later, I was one of the founding leadership in Sahil Samar’s 3D Development Club (now called the Game Development Club). It was something I found interesting, and I decided that it would be a great way for me to learn a programming language (C#) while also being able to teach others. However, even with this, I still sometimes found it difficult for me to understand the Object Oriented Programming concept that was found everywhere in C#. Thus, I feel like I wasn’t truly learning a substantial amount about programming until I started CSP.

So far in CSP

In much of trimester 1, I was a bit overwhelmed with the daunting task of scrum master in a subject that I was mostly unfamiliar in. I was having to learn proper team management skills while also learning how Python, Flask, HTML, and CSS worked. It also allowed me to get really familiar with the Github layout and how to organize the project on there, with which I think that organization is still one of my greatest strengths in PBL. Though it was somewhat stressful for me, I am quite proud of how our website turned out here, especially as our very first website. It was a nature/animal website designed to randomly generate images of animals for the user. We had different categories, and the user could select a specific category and get an image along with a description. I even learned how to make our own imageAPI that served image links to the user. Though relatively simple, I think a lot of this was more about the process of learning how python and html could interact through flask and jinja, and how to properly style a website. You can take a look at the images below to see. homepage randomizer

In trimester 2, I was much more familiar with how to design a website. The most major takeaway I had from this PBL was learning how to create and use databases and database tables, as well as properly understanding how Object-Oriented Programming works. It was really useful for storing and modifying data that the frontend javascript fetch could then call and display on our frontend. Through making the database for the tea shop part of our website, I learned what classes were, what objects were, and how exactly classes compared to the standard programming that we were doing before then. I’m not as proud of the website during this trimester, mainly as I believe we could have done more during this to execute our idea of a shop. However, I think that everything I learned as Technical Officer during this trimester was extremely useful and there are so many concepts I still use today.

Trimester 3 was the project that I was most proud of. Being required to get ourselves a sponsor this trimester, I decided that I could take this opportunity to choose an extracurricular that I really enjoyed being a part of and combine it with computer science. So I asked Ms. Emily Stevenson from the Poway Career Technical Education program to allow us to design a website to advertise the CTE program. We advertised the program by showing what courses were offered and at which schools, we had a gallery of CTE events (that used a database with images). We also had an events calendar that pulled information from a database we made, and we had an admin login that allowed only the admin to modify the important database data for ease of updating the website. We also had many more information pages about the program. Overall, this was the most successful website, as it combined many technicals that we learned over the past year with new technicals from the trimester, and it ended up looking good as a website overall. image

So far in CSA

This trimester was really about coming back to the PBL style in a new programming language. I started out struggling in Java, as I was struggling to wrap my head around what all this 'public' and 'private' and 'void' all meant. As a result, my first month of coding featured me switching tabs between google and vscode, looking up how to write a simple class with a method in Java. However, I started to finally understand it and am now familiar enough to be able to write without needing google opened up all the time. I also saw the advantages of using Java as a language, as it being a strongly type language is something that actually becomes more convenient as you come to use it more. Our PBL was a K-Pop song website, which pulled data from our backend to display on the fastpages frontend. I liked this style more, as having our frontend be on fastpages meant less work for CSS styling (and less work to scale for mobile pages), which allowed me to focus more on the backend and setting up the API stuff there. A lot of my success in PBL this trimester was mainly due to my organization. I managed to keep my team organized and had issues for them to work on. However, I think I could have done more to learn more specifics of Java backend development as well as deployment.

My strengths / what I’ve learned

Throughout all of this, I have learned a lot and I’ve started to notice my strengths when it comes to working on Computer Science work.

  • Organization - This is without a doubt my strongest value, I think that a large part of it stems from me starting out CSP as a scrum master. I like to make sure that myself and my team is organized and that I can confidently start working on something after having a plan laid out.
  • Python backend and databases - After a whole year of working with Python, I feel very confident in my ability to use it properly and implement different programs using it. I also have become very familiar with the use of databases due to the fact that I worked on most of the database work in almost every CS group that I’ve been in. I see how useful they are for storing information as well as their potential for uses beyond that, such as for user/social interaction.

Plans for the future

Near future

For my near future, I want to make sure to focus more on learning the concepts that I am less familiar with and be more versatile in what I can do. The main areas I would like to focus on are:

  • Java backend development
    • Understanding JPA better and what I can do with it
    • Seeing if there are any Java packages or libraries that could be useful for my next PBL
  • Deployment
    • I think deployment is my weakest subject. Though I have played around with it on a raspberry pi and have set up servers for certain games through Oracle, I think that it would be best for me to better understand deployment by doing it for the project this new trimester.
  • Overall understanding of Java
    • I think that there are still a few things in Java that I could understand better, such as using Arraylists as well as still adjusting to Java syntax and formatting.

Further future

For my further future, my goal is to get into a good university as a computer science major. My reach goals would be either the University of Washington CS program or the Berkeley EECS program, as both seem to be very prestigious compared to the programs at other universities. Apart from doing CS in college, I want to also get an internship in the CS field as early as possible, and I think that to best stand out in getting an internship I must first focus on the goals I have laid out for my near future.