Tuesday, July 16, 2024

CST 338 - Week 4

This week we got together with teammates and reviewed each other's code for project 1.

You can work with up to three people (you MUST work with at least one other person)
1. With whom did you work?


I worked with Alan and Abdul.


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


For the first 3 parts of the project, I didn't plan anything out, I read the prompt and took it one piece at a time, never moving on until I finished the first part. For the final part of the project, I just wrote everything and then dealt with the errors and bugs later. 

What was THEIR strategy for solving the assignments?

I would say me and Abdul took a similar approach and took it one step at a time, and Alan opted to write a skeleton for each class and then work on implementing it.

How would you change your strategy after having worked on the assignment?

Honestly, I don't know. I had a lot of trouble with the Library.java class, but the others went smoothly. So, I don't think I would change much. I did mess up writing another class by not paying close enough attention to the prompt, so I guess I will pay closer attention in the future.

According to your classmates, how well does your code follow the Google Java Style Guide?

There were a few issues with my code such as using 4 spaces for indentation, a column limit of 100, line-wrapping, and braces for if statements even when it's a single line.

We also learned we can automate some of the Java style guides in Intellji https://medium.com/swlh/configuring-google-style-guide-for-java-for-intellij-c727af4ef248.
 I never used JetBrains before this class, but I love them now!

Tuesday, July 9, 2024

CST 338 - Week 3

Feedback received about my Histogram Java code

Abdul brought to my attention that I can use append("=".repeat(29)) instead of creating a long string of equal signs. He noted my variable names, comments, and formatting were all good.

Alan mentioned that I could implement the bubble sort algorithm with a single loop by utilizing a boolean that tracks whether we changed the list on the previous pass. He also mentioned that my imports should be replaced with individual imports for each utility to increase readability and compilation time.

Farooqkhan mentioned he had no issues with my code's logic, formatting, variable names, or comments.


Identify any trends you noticed when evaluating the code of others

After viewing everyone's code, and reflecting on my own, I would say the thing it seemed everyone struggled with was creating the display and getting it to work according to the assignment specifications.


Was any part of the code a struggle for YOU?

Yes, I found the display to be difficult to display properly. It took me hours and trying a bunch of different things before I managed to get it to work.


Was any part of writing the code easy for YOU?

The sorting algorithm was not particularly difficult. I had never used a bubble sort algorithm prior, so I had to research it, but I found it easy to implement and understand.


What is your biggest victory?

My biggest accomplishment was completing the assignment on time and having my display work correctly.

Tuesday, July 2, 2024

CST 338 - Week 2

This week we worked on parts 1 (Book.java) and 2 (Reader.java) for our first project in the class which stores, manipulates, and analyzes information stored within a library. I didn't really have any issues, except for not realizing there was an enum class I needed to use. We will finish up Project 1 in the coming weeks by completing Shelf.java, and Library.java.


We also had to complete our first heavy homework assignment, Histogram, which reads a text file from a user and displays a histogram from the occurrences of characters in the file.

I never really ran into issues passing the unit tests, but I spent too long trying to implement a solution for taking the numbers from counting the letters, removing all duplicate numbers, and then printing them in descending order, so instead of 1 2 3 4 4, it printed out 4 3 2 1. I imagine I was overcomplicating the solution and there was a much simpler way to go about it. 

After trying a few different solutions and still having trouble, I thought I would use a HashMap to store the unique numbers as keys and then return those unique keys. However, I still encountered issues. While working to figure out what was wrong with my HashMap, I learned about LinkedHashSets and how they don't include repeating elements, and return the output in the same order it receives the input. This solution ultimately worked for me, but again, I feel I was overthinking the problem, and there was probably an easier way.

Going forward, I will try and spend a little more time thinking of possible ways to solve the problem and why my current approach is not working, instead of getting frustrated and constantly going through numerous methods to solve the problem.


Monday, June 24, 2024

CST 338 - Week 1

Discuss the process of solving the Coding Bat challenges.

(1) What were the steps you took to solve some of these challenges?

My initial steps to solving the problems involved reading the problem a couple of times and thinking through how I would approach the first step, such as iterating through a string using a for loop. I found myself struggling with some of the problems, spending over an hour on a couple of them. I should have come back to it later instead of overthinking my solution. When I struggled, I tried to reference the Java help sections on the Codingbat website and rewatched the videos.


(2) Did you plan it out or throw code at it?

Generally, when working on the problems, I plan my approach and write comments on what I need to accomplish for each line or comment on my thought process to stay on track and explain why that solution works. There were a few times when I was tired and frustrated, and I just kept trying different ideas until the code ran. Occasionally, if my shorter solution wouldn't work, I would essentially "brute force" my solution with more lines of code than likely needed.


(3) What worked?

I found that using the basic concepts explained in the respective sections on the Codingbat website was all I needed to solve the problems. I often went to using "for loops" and "if statements" for many of the problems.


(4) What DID NOT work?

I tried using the ternary operator multiple times for a few problems, but I could not get it to pass all the tests. I would pass every test except for one or two, so I decided to default to if statements. These were some of the problems I spent way too long trying to complete.


(5) How many tries did it take?

For the easiest problems, I usually needed 1-4 tries, often because I forgot semicolons or misspelled something. For the tougher problems, it took anywhere from 10 to 20 tries, and I spent at least an hour on a couple of them. Later, I discovered various methods on the Oracle website that would have made some of the problems shorter, such as the .endsWith and .startsWith methods.

Saturday, June 15, 2024

CST 300 - Week 8

Part 1: Review Other Teams' Final Video Projects

ByteBoost - Biometrics
Intended for General Public - https://www.youtube.com/watch?v=UgyhVizO2mA
Intended for Professionals - https://www.youtube.com/watch?v=a58BF17CZGw

1. is the topic well covered? Yes, it is well covered. Some of the things it covers are the types of biometrics, how they work, security concerns, and overall pros and cons.

2. is the presentation clear? Yes, the presentation is clear, in both terms of content and audio.

3. how is the quality of the research? The research quality is exceptional and well put together.

4. how is the quality of the video production? The quality and editing of the video are very well done.

5. is the video engaging and interesting? Yes, I found the video to be engaging. The usage of footage successfully engages you while the speaker gives you the information. The topic itself is also fascinating.

6. is the team work evident? Yes, the teamwork is very evident as we can hear each member speaking throughout.

7. is the video appropriate to the audience (either general public or technology professionals)
Yes, I think both videos did a tremendous job of explaining biometrics to their respective audiences. They did an excellent job condensing information and making it easily digestible in the video intended for the general public.



Beacon Code Solutions - Wearable Tech in Healthcare
Intended for General Public - https://www.youtube.com/watch?v=oLeVlee880U
Intended for Professionals - https://www.youtube.com/watch?v=BAAfhoSiGUI

1. is the topic well covered? Yes, the topic thoroughly goes over the topic of wearable tech. They did an excellent job of citing data and incorporating it into their presentation.

2. is the presentation clear? Yes, the presentation is clear.

3. how is the quality of the research? The quality of the research is exceptional.

4. how is the quality of the video production? The video production was good, but some background music may have helped.

5. is the video engaging and interesting? For me, I find the topic and presentation to be a little dry (for the professional video). I do think having some background audio could have improved that.

6. is the team work evident? Yes, the teamwork is evident by all the members speaking.

7. is the video appropriate to the audience (either general public or technology professionals)
Yes, the professional video was appropriate for its audience, and the group did a fantastic job taking the professional video and making it digestible for the general public. I do think the general public video can also improve by utilizing background music.



JKO Dynamics - Green Computing
Intended for General Public - https://www.youtube.com/watch?v=AExRg0XpvCI
Intended for Professionals - https://www.youtube.com/watch?v=eBUQ63qQjGk

1. is the topic well covered? Yes, I thought their topic was thoroughly covered considering the time frame. They briefly went over e-waste, energy-efficient data centers, and how some companies are meeting these sustainable energy goals

2. is the presentation clear? Yes, very clear and put together.

3. how is the quality of the research? The quality of the research is excellent.

4. how is the quality of the video production? Adrian's audio seemed a little low, but overall the production of the video was great.

5. is the video engaging and interesting? I thought the topic and video were very engaging.

6. is the team work evident? Yes, we see all members speaking throughout their presentations.

7. is the video appropriate to the audience (either general public or technology professionals)
Yes, the video is appropriate for their respective audiences. They did a good job changing their approach to suit the general public and younger individuals.




Part 2: Keep Up With Your Learning Journal

ByteBridge Solutions - Virtual Reality
Intended for General Public - https://www.youtube.com/watch?v=N5pJx8CaFoY
Intended for Professionals - https://www.youtube.com/watch?v=D4_qJ8CB5iY

This class has gone by faster than I expected. Throughout the course, I have learned a lot, but I would say the most significant things I learned were managing my time better, and effectively collaborating in a group environment. Previously, I had also only used MLA format in writing, and in this course, I learned how to write and cite sources using APA.

Our team frequently communicated through Google Chat to send assignment reminders and clarify things we discussed before or after our Saturday team meetings.

Overall, I think we did a good job collaborating, and I would attribute that to our communication and the constructive feedback we gave each other. In the future, I believe maintaining communication is the most important part of success, and we could improve on it even more.

Tuesday, June 11, 2024

CST 300 - Week 7

(1) Reflect on your team's Final Research Video Project Planning

We communicated in our group chat and team meeting to select specific topics so each person knows what their part of the project entails. We don't need to change anything in our planning for future projects, everything has been going smoothly.


(2) Reflect on what was learned through the weekly readings and activities

  • Review ted.com videos

"The Mind Behind Linux" This was a fascinating video covering Linus Torvalds journey in creating Linux and Git. One thing that I found interesting was his preferred work environment. He mentioned he prefers working alone, which influenced his creation of Git. He also mentioned that he tries to keep his office space "boring" or "plain" to remove any possible external stimulations to maintain focus. I feel that I could benefit from making my work area a little less cluttered or removing some distractions, such as multiple monitors, as I may feel the need to do additional work or have videos as background noise on the side.


A ted video that I personally thought was interesting was "Your right to repair AI systems"

I enjoy trying my hand at repairing electronics, and I believe it is crucial to avoid e-waste as much as possible. Many electronics that can easily be repaired are often treated as disposable and thrown out. Chowdhury explained the movement by comparing it to the topic of right-to-repair concerning John Deere's smart tractors, which forbid individuals from repairing like they used to, requiring specialized maintenance instead. I don't understand how right-to-repair would work for AI systems as many companies keep their code secure, but if there was a system it would be fascinating to see it applied.


  • Presentation skills reading/video
Presentation skills come down to how your content is organized, and the effort you put into practicing to become a confident, engaging speaker. Using visual aids such as graphs, charts, props, and images to support your topic can help keep your audience engaged. However, it's important not to overwhelm the audience with needless graphics and special effects, as this can have the opposite effect on the audience.

Tuesday, June 4, 2024

CST 300 - Week 6

(1) Help Your Teammates to Develop Capstone Ideas

This week in our team's group chat, we discussed possible capstone projects. Ideas that interest me and that I mentioned include a network traffic analyzer with real-time monitoring and debugging, and a computer vision project, such as a camera with facial recognition capabilities. 

One idea that stood out to me was from my teammate, Abdul. His idea was an advanced CCTV software that recognizes occupants of a residence based on prior registration in the system.


(2) Weekly Activities

This week, we continued working on our ethical argument essay and conducted peer reviews for our teammates' essays. We also created a website for our individual learning portfolios and previewed our next class, CST 338 Software Design with Java. Additionally, we were tasked with preparing a cover letter and resume as if we were applying for an internship. 

Finally, our team's research/presentation topic was finalized as Virtual Reality. In our upcoming team meeting, we will discuss the content of our project in more depth and determine how to evenly distribute the workload.

CST489/499 - Week 16

This marks the end of my journey in the CSUMB CS Online program. I will officially graduate and receive my bachelor's degree in Computer...