Thursday, March 21, 2024

Week 12 Report

 CST 338 Week 4 Learning Journal

I worked with Guillermo Zendejas and Edward Torres on this task.

I first read the instructions and then commented on the methods with JavaDoc style comments to explain them. Then, I begin completing each method one by one, until they are all finished. Afterwards, I complete any debugging in tandem with running unit tests to assert correct functionality. Then I will polish the program for maximum readability.

Eddie starts similarly to me, with many todo’s inserted on initial coding. Eddie simply starts typing right away, until he encounters a problem upon which he will take a break and either research and/or think about it on paper. For Guillermo, he codes the methods one at a time. Guillermo does a rough mental plan in his mind and then begins writing the methods. Guillermo will also keep in mind what the unit tests require as he is coding, which is a good strategy.

I would experiment next time by running unit tests earlier during program completion, rather than after it is all written. This can help both with assignment completion and project functionality.

My program follows the Google Java Style Guide well, with no notable violations of the guidelines.

Monday, March 18, 2024

Week 11 Report

 CST 338 Week 3 Learning Journal

Jotto Code Review 

    I worked with Victoria Ramirez and Ichiro Miyasato. The feedback I received indicated to me that I missed a small opportunity to keep the game going by offering the player the option to update the wordlist when words are run out of, as my program is coded they must go to the main menu to do that. Another small improvement is to include the proper score sum output when the player guesses the correct word, rather than only including it in the menu.

    The improvements I would make to my code include updating the program so that the player has the option to add more words when they run out and try to play a round, rather than having to do it from the other option in the main menu. To be honest, the only unit test that I had trouble with was getLetterCount(), but it was only because of the need to capitalize the input in the method in addition to doing so in the game round process. It was easy to fix.

    The clearest improvement that could be made to the getLetterCount() test is one of two options: remove the capitalized GRAPE word that is tested, or include in the Jotto instructions to capitalize the passed in String value at the beginning of the method definition. This is sincerely nitpicking though since the unit tests are overall well designed and appropriate.

    I only struggled a bit with understanding the different variables, for example in differentiating the local “score” variable in guess() and the global “score” variable in the class fields. I think this could be improved in the future by changing the global variable to be named “final_score” and the local variable “round_score”. Also, learning how to work with File and StringBuilder objects was cool.

qVictoria struggled with IntelliJ, specifically her Gradle tool kept bugging out. She was being gatekept by the compiler, it seems. We are still looking for a proper solution, I am sure we will find it eventually. With the Jotto program, we had similar struggles, mostly being confused by the overlapping score variable. She also struggled with coding getLetterCount(), but was able to solve it with focus.

     I am most proud of the fact that I was able to put all the code together and then most of the tests passed afterwards, which in retrospect is potentially a foolish way to complete similar assignments since test driven development should involve continuous testing rather than coding marathons in between testing. I look forward to implementing more stops and testing in between coding in future projects.

Saturday, March 9, 2024

Week 10 Report

     For this week of CS online in CST 338, we got to work with developing a small text based game named Jotto guess. The unit tests were all straight forward and easy to pass, with a small exception being the tear down test issue that Dr. C had let us know about occurring in windows machines (now I am curious what percent of the course students are using windows vs mac). There was a unit test that also expected getletterCount() to lower case the input which was not mentioned in the instructions, so I went ahead and fixed it after most of the program was complete. I am frankly most proud of simply getting the program finished way ahead of schedule. I had it complete at least a week ahead, which is exactly how my die hard Type-A mind likes it. All prophecies of immeasurable ambition aside, I thought the program was a cool challenge for us to learn Jotto, File, scanner, and array list methods. I think if the program was in C++ we would have finished it much faster since we are comfortable with that language more right now, however this is quickly shifting as we learn more about Java. I think within two weeks from now I may actually prefer Java.

    Looking through the new videos for week 2 now, I am hyped to train harder and become stronger as a programmer. In honor of Akira Toriyama I vow to become the software super saiyan

Tuesday, March 5, 2024

Week 9 Report

    This week is technically our first in CST 338: Software Design, a course for Java fundamentals and a good introduction for software engineering. Already I have learned a ridiculous amount of new knowledge, particularly about working with GitHub, IntelliJ, and Java classes. Our professor and TA are really cool, which makes the learning process easier. 

    For our first week, we completed several assignments including progress in CodingBat, which is to help us get comfortable with strings, arrays, hash maps and whatnot in Java. When it came to tackling the problems in CodingBat, I would briefly plan out the solution in my head into at least two steps and then write the beginning of each part in the compiler. For instance, in many of the problems I would generate variables and then get to the loop to complete the task. The problems were actually fun, they are like little puzzles. It would take me usually at least two tries to get the proper solution, though often I got it on the first thankfully. None of the problems were particularly frustrating, especially since we are just barely getting acquainted with Java. 

    We also got to learn about UML and Unit testing with Junit which looks like a great technique for software development. In test driven development, test coverage refers to what percent of the code in the program is covered by unit tests, and the more test coverage one can build, the better, usually. We got to put many of these skills to use in our full calorie homework, Jotto Guess, which is basically a mini project in Java for a text based word guessing game. I am grateful that we received quite a bit of starter code from Dr. C, because that was probably the more complicated code since it involved Unit testing and several instances of File objects being summoned with respective try catch blocks. The process for completing Jotto was rough at first, since there was much researching to be made regarding Java syntax, array list methods, and other fundamentals. My favorite part was actually creating the method getLetterCount(), which compares how similar two words are and returns a score for it. 

I am hyped for learning more about Java and software development in this course. 

Saturday, February 24, 2024

Week 8 Report

Part I: Video Project Reviews

Otter This World - Genomics

Otter this world put together a solid video presentation. It's obvious that the research used was plentiful and of high caliber. The topic is thoroughly covered, though one area in which the video can be improved is in engagement. As the video stands, it is somewhat too plain, and I think having some soft music in the background can really help improve audience engagement. Another facet in which the video can be improved is in Lia's audio - essentially, either she recorded a mono track or the video editing process was executed in a manner that resulted in her audio being contained only within the left audio track of the stereo sound, which can bother some listeners. Centering her audio in the stereo track can help fix this issue. The presentation is appropriate for professionals, and I appreciate their work because I learned quite a bit, especially about the Human Genome project. 

Super4 Web Solutions -The Eternal Human

Super4 Web Solutions did a good job on their video presentation. The research is clearly quality, and so is collaboration between members. I'm a big fan of the topic, since it is quite philosophical in addition to it's relevance to modern technology. The team did a good job covering such a broad topic, in an engaging way. One area in which the video could be made better is slightly improving the audio, for example Ichiro's voice is producing harsh sounds that could be mitigated with better mic placement or using a pop shield (this is mostly nitpicking though). The presentation itself is absolutely appropriate for professional audiences and I am more educated as a result of watching it. 

Stack Otterflow - Autonomous Vehicles

Stack Overflow put together a great video presentation. I particularly liked how well edited the video is, with plenty of moving parts and graphics, though for some it may have been too much or too distracting. The topic was well covered, and the research is outstanding. The audio sounds good, although there is one improvement I believe could be made: the music. Currently, the soundtrack has a solo instrument in it which can be distracting for viewers. I recommend that the music be changed to a different track lower in frequency and more repetitive so that the music does not collide with the speaker audio as much. The video is certainly appropriate for professionals and I learned all about autonomous vehicles thanks to it.


Part II: Weekly Reflection

Link to our professional video

Link to our casual video

Overall, this course was interesting. I think we gained a considerable amount of experience with team collaboration and writing skills. I would say this course was worth taking, for that reason and especially since I was able to meet my awesome team, Gigabit Goon Squad. Our team collaborates and communicates quite well, I am proud of their hard work this course. I think one way to improve is to perhaps be more specific with assigning who does what part of a given project in the future, which should be easy to implement. Another improvement can be for all of us to purchase high quality microphones like the one Victoria has, since we are probably going to do more presentations in the program. Ultimately, I am hyped to work together on our future programming projects, doubly so since that is why we are in the CS program for in the first place.

Tuesday, February 20, 2024

Week 7 Report

Final Research Video Project Planning

The video project went very smooth overall. The Gigabit Goon Squad tends to excel when it comes to collaboration and this time was no exception. We collaborated primarily through Discord as usual, and at least once every day. I got a lot more experience learning how to edit videos with Vegas, which is great. The difficult part was not actually the editing (that was fun), but rather the researching and creation of the script. Thankfully our team simply blew it out of the water with our recordings and contributions, I am proud of them.

 

Reflection of Week 

The TED Video I selected was by Kwabena Boahen, a Stanford scientist developing a computer that works like the brain, in this case the Neurogrid. The brain processes information extremely efficiently, at least a hundred thousand times more so than current computers which is amazing. The natural neural network found in the human brain has zero bottlenecks, its ridiculously well designed. Boahens team is doing their best to find a way to alter computers to work like natural neural networks, basically. Their designed retina chip shows promise in accomplishing this task.

Sunday, February 11, 2024

Week 6 Report

Capstone Discussion w/ Gigabit Goon Squad

For Eddie, he has an internal conflict because everything he writes about is related to education. Because he is a teacher, all of his capstone ideas are about education. His first idea is to create a grading and management system, allowing people to create different groups and seating charts, size of groups. It can integrate student's individual education plans. The goal is to create the perfect seating chart. His second idea is to create an all in one school environment, where students don't have to go to different apps. Sort of like google classroom, but more involved such as with deadlines and homework assignments. It allows teachers to observe student's position in many regards. His third idea is a video game like Kahoot!, a quiz game with four options that is also timed.

For Victoria, first idea: an app that helps parents see children's current grades and also be able to communicate with teachers, among many other features. Second idea: an app that helps people scan food and/or food products and it can tell you if any ingredients may be toxic or carcinogenic. Third idea: a fitness app that enables more in-depth customization and has reminders for vitamin and medication regimens. The app can also include exercises that help with the user's age or condition. Another idea that Victoria has is a book app that can help reading enthusiasts to connect and form clubs. It can have a rating system for users to review books.

For Guillermo, his first idea is something simple, like a pantry storage app. With a phone, one is able to scan items that they have in their pantry and manage grocery inventory. People can have different profiles. His second idea is to make an app that takes a recording and turns it into music sheets or tabs. Third idea: weather app that can form air quality maps from existing APIs. A cool re-creation of features that many weather platforms have.  

 

Weekly Learning Summary

This week was overall fairly challenging but also rewarding. This is mostly because Gigabit Goon Squad decided to get ahead with the video project, and therefore there was considerably more work condensed into this week. However, now that most of the project has been handled, things will feel a bit more downhill from here on out. We learned how to compose video scripts, advance our video editing knowledge, and even gain some more audio editing experience which is great since I am an amateur musician. 

The ethics paper was surprisingly smooth to complete once I understood the gist of each section. Critical thinking is truthfully easy for me, so getting into the nitty gritty of each argument from stakeholders was sort of fun. Creating our website shells for ILP portfolios was also a good experience, and a cool brief look into web development (I think, or rather hope). Another good experience was creating our cover letters and resumes, which will no doubt prove useful in the near future when we graduate and enter the workforce. 

Sunday, February 4, 2024

Week 5 Report

 Support and Comment on Teammates Goals 


Possible Capstone Ideas

One possible capstone idea I have is to develop a small game, such as a basic 2D platformer. I have always been amazed by the development of video games and this would be really good experience for possibly pursuing it in the future. 

A possible second idea is to build a program that works with sound, since I am also a musician. Perhaps some type of tuning application, or a pitch shifter. I may actually end up using such a program in my own practice room, which sounds fun. 

Third, another good idea could be some type of database management program for a local business. This project would be more practical and since I like to help others, it could end up being a win-win situation. 

Summary of Weekly Learning

This week was great overall. I had quite the grind while researching and forming arguments for my ethics paper, but learned a ton about how companies and consumers relate to each other ethically, and how stakeholders may have opposing priorities. More importantly, learning how to compromise and find a middle solution for utilitarian end goals is rewarding. Going forward in the future, I believe companies will need to begin actually listening to consumers and prioritizing their health, and my paper touched on this topic a fair amount. 

We also picked our three proposed topics for our final video project, which looks fun. I am confident that our team can handle any of the three topics proposed, especially since I have at least a bit of video editing experience with sony vegas (now rebranded to magix studio vegas). Next week is looking quite exciting, truthfully, and I am hyped to train even harder. 





Tuesday, January 30, 2024

Week 4 Report

This week was a definite challenge. We got to learn more about ethics, goal setting, and career planning as well as collaborate with our teams and figure out how we can work better, which was cool. Researching for my ethics paper is difficult but it will pay off since I believe this can be a great end product. 

My educational goals in the CS program are: to establish a strong foundation of programming for a future career and to gain teamwork and leadership skills. I want to be able to program a basic 2D game by the end of the program, which I think should be easy to accomplish. I think I will go ahead and take on this project next year when I am a college senior. Beyond this, the learning never ends technically speaking so I am certain to learn far more after graduation. 

My career goals are to first get some internship experience and then get some more experience at an official full time programming job. I am unsure exactly which route I will take but it will be either in data science, game development, or software engineering. The important part to get there is to build a strong portfolio and gain certifications. Afterwards, I will be starting my own company. 

After viewing the ETS page, I believe I will earn a grade in the top 10 percentile at least. This is because I am going to apply myself rigorously not only to the programming aspect of the programming but also study on my own time to boost my mastery of computer science. 

We were able to learn more about goal setting and thinking about our future. I particularly liked creating my personal mission statement, since I already had a clear set of core values when coming into the program. I am staying true to my personal mission statement until the day I die, and perhaps beyond.


Saturday, January 20, 2024

Week 3 Report

 This week we learned quite a bit about ethics, study techniques and the CS curriculum at CSUMB. 

For the study tips, I chose the topic of effective note taking techniques, since that is an area where I must improve. I learned about the 2-6 method which is making two columns on a paper and then six columns for actual note taking, where the first two columnists are for highlighting key points. Another good technique is the split page method, where one side of the page is for notes and the other side for highlighting text. We can also add a third column for questions. One of the coolest things I learned is to use colors for note taking, which is proven to help students retain more information. Therefore I bought some colored pens for this purpose. 

In terms of ethics we learned a bunch of new stuff. The key topic is the different ethical frameworks. For instance, there are virtue ethics which refers to a framework based on virtues such as truthfulness, moderation and justice among others. Another important ethical framework is utilitarianism, which refers to a framework based on achieving the greatest good for a majority of individuals. Interestingly, many corporations explicitly claim to be for utilitarianism but in reality much of their actual practices adhere to ethical egoism, which is a framework based on maximizing self-interest. This is a topic I am exploring more in depth in my ethics essay, which will be examining the role of social media platforms regarding the impact on consumers' health and well being. 

We are applying ethical frameworks to the stakeholders of a given issue in technology, which is a great assignment since it teaches us more about the philosophy of the industry while also bolstering our critical thinking and writing skills. As I am beginning to research my ethics essay topic more I begin to realize that every company has an overt ethical framework they claim to follow and then an actual framework and oftentimes they mismatch. 

An assigned reading taught us about what a computer science major needs to know. A portfolio is essential for a computer science major wishing to pursue work in the field. GPA and resumes are relatively worthless compared to the portfolio, and honestly degrees are also probably not nearly as worthy as actual hands-on experience. One of the most underrated skills for computer science majors are good oral communication and collaboration skills, which makes sense in terms of explaining why our CS online program is so team-oriented. Knowing the Unix philosophy and having administration and Linux skills are essential too. There are numerous topics that computer science majors must be decent at, including: operating systems, database systems, computer architecture, data structures, algorithms, various languages, and more. The cool part is our program covers the majority of the necessary skills, from our examination of the CS curriculum. 

The CSUMB CS online program presumes that students follow the code of integrity, which is a reasonable set of rules to maintain academic and personal integrity while completing courses. There are three basic rules: do not submit solutions or code that is not your own, do not share solution code with other students, and an indication must be made whenever external assistance was received on a submitted assignment. These are honestly basic common sense rules to live by, and I have no issue following the code of integrity.

Friday, January 12, 2024

Week 2 Report

 When it comes to studying, three things that I am good at are: maintaining a good study space, getting the main idea when studying, and picking out key words. Three things that I must improve at are: scheduling (especially being more consistent on my schedule), researching areas of confusion more often, and taking more notes. 

In lecture, we learned a fair amount more about the world of programming. JavaScript and Python are the most popular programming languages being used right now. AI is still advancing at a crazy pace. Progress in the technology world is developing at a ridiculous pace, as in exponentially.  Moore's law said that our progress with transistors doubles every year, and in about 25 years one thousand bucks will be able to buy us the computational power of the whole human species, which is insane. We learned that crowdfunding is going to reach 300 billion dollars in 2025, venture capital and initial coin offerings are also peaking in recent times, meaning we are at a point of incredible capital abundance. The cost of bandwidth, storage, and costs of tech creation in general are all plummeting compared to decades past. Telecommunication are over a thousand times cheaper, and we may even have satellite internet soon with starlink and with good connection too. We are going to see over 4 billion minds coming onto the internet in the next seven years, which will almost certainly produce immense technological advancements - even more so than we are seeing now. Brain computer interfaces are something we may see. Experts predict that in about twelve years we can reach longevity escape velocity, or the velocity at which 1 year of life produces technological advancement that extends the average lifespan by more than 1 year. This is both terrifying and exciting in many ways. 

We learned that time, scope, and cost are the main elements of a project. Projects arise in response to specific needs, such as legal or business needs. How a corporation chooses a need to address is decided by urgency and typically follows a routine project proposal to a board who then selects the project(s) that have the highest return on investment. Boards of directors will typically perform project portfolio management to accomplish a cost-return analysis in their decision making on projects. When a board of directors approves a project, the project manager, who is the "ceo" of a project, handles the execution of the project, maintaining position within the project budget, time, and scope. The project manager is the most accountable for ensuring that the project, or in many cases projects, are properly completed. The project manager is the face for the project, and is the go-to contact for any questions or concerns regarding the project. The first skill that project managers have is project management and business knowledge. The second skill is people and workflow management skills, and the third is strategy and leadership skills. Projects have been seen throughout all of history, such as with pyramids. Dupont invented the critical path method in the 1950s, which can help managers to identify the best way to sequence activities in a project. The project management office is the department responsible for managing project related work. Project stakeholders are people who participate in, influence, or are influenced by projects. This means that even a public project restructuring your driveway makes you a stakeholder of that project.

 In the online learning initiative, we got to learn more about teamwork. Specifically, teams with more women, equal participation and high social sensitivity are more successful because they have more collective intelligence. Even at google we noticed that teams are looking for people who are great team players and have dynamic, flexible thinking. 

In the writing lab, we got to improve our writing skills and learn how to write for a specific target audience. We went over different errors that might be made such as using cliches, not properly citing, and making personal references. I also learned how to peer review another person's paper, in this case I was able to peer review 2 of my teammates' papers. This is a helpful skill because critiquing others' work is important if someone is in a small team of developers. By helping them to improve, I can also learn more at the same time so everyone wins.

For our industry analysis, I learned a ton about the game development industry, which is my chosen topic for our industry analysis assignment. For starters, game developers need specific skills in order to succeed. Soft skills, teamwork, good communication, and expertise among various languages such as Java, C++, C#, and with game engines such as Unity and Unreal. The industry is still growing, and it actually did have a small boom during the COVID-19 pandemic as many people who were locked down chose to game more often. There were certain games like Genshin Impact which were mini pioneers in the style of free-to-play-with-in-game-transactions, particularly during the pandemic. Moving forward, it is the free-to-play-with-in-game-transactions games that look to be dominating the market, especially mobile games.Therefore, one could consider mobile game developing a potential future career if they were to be interested in the field. That being said, we can never be too certain since new avenues with VR and AR can play a huge role in the next few years or not, depending on many factors.

Monday, January 8, 2024

Week 1 Report

This was the first official week of CS online for us. So far, I have learned quite a bit of new information. I think the most impactful thus far is regarding teamwork. Dr. Tao laid down some serious knowledge for us in his video. In order for team meetings to go well, there must be two elements: an agenda listing the activities of the meeting as well as the time required for each activity. We got to actually practice this with our team meeting minutes assignment, which was cool to create and execute. 

We were able to learn all about APA formatting in preparation for our first major paper, as well as how to create a good outline. Admittedly I already have experience with writing APA formatted papers, but getting refreshers is always welcome. We had to pick an industry to research for our paper, and I decided to go with game development. So far the research has been good. I learned that the game industry is expected to rise even further, especially with the looming integration of AI, VR, and even augmented reality. I also read that the industry boomed from 2019 to 2020, which is not surprising since that was when the novel coronavirus showed up. 

For our online learning initiative (OLI) work, we were able to take a quiz testing our traits in regards to teamwork beliefs. I'm still unsure what the main purpose of that was, though I presume we will learn it soon. The first module had us review a video of a team meeting which went poorly. It taught me how important it is to be organized and to be mentally flexible and dynamic when collaborating with others. Compromising and finding middle ground is extremely important, when in times of clashing ideas. 

We also learned how to setup our LinkedIn account, as well as this blog account. We got to learn all about CSUMB as well, my favorite fact is that it was built way more recently than I thought - in 1994. Furthermore, it was basically built over ex-military base property (Fort Ord). Since I live not too far from campus, I intend to visit it again one day, although honestly it may not be until graduation next year.