As the virtual meetings continued, we finally did one of our coolest demonsrations, which was using a program called putty to connect our computers together into one "parallel computing" network. This was incredibly interesting and also very inspiring, as I learned how all of our computing power can be connected to solve problems (in reference to NVidia's plan to use parallel computing to help scientists find a vaccine for covid-19 via the pathways of protein modeling. Too bad we won't have SHODOR for a while, but I'm hoping we can have summer meetings. Unfortunately, I still have a textbook which I borrowed from SHODOR, so I hope that I can return it as soon as possible. Similarly, I have a few projects left to catch up because of the increased schoolwork recently, but I hope I can get those complete as soon as possible too.
Today, we started our newest and final subject, which was that of parallel computing. We first ran through many practice projects, which helped us work on our computational thinking and allowed us to really get in the "brain" of a parallel computer by simulating how splitting up the tasks could really improve the speed and efficiency of projects. We didn't do too many new things today, but I'm really excited about what we can do next week when we begin to actually link up our computers and see parallel computing in practice rather than in concept. The computational exercises, however, were still good practice for us to learn about how parallel computing works in the context of small scale applications and how it can be increased to far larger applications with millions of nodes.
Today, our hard work over the last few weeks finally paid off when we made our presentation of the project. The meeting started out with numerous technical errors from our side, and we were unfortunately unable to get the program to the final stage we had initially hoped for in the first planning, but we were still able to come up with a project with good visual use. Our presentation went relatively smoothly, but I do hope that we could spend some more time getting the project slightly more technologically advanced. Our project was still generally somewhat worthwhile, as we discovered numerous new programming tools, like JavaScript objects.
Today, we continued to work more on the large project, and immediately were met with numerous roadblocks which we had to spend hours working on. Our initial collision detection model was massively incomplete and inefficient, so we had to replace it with a new object-oriented system, which took up a good deal of time. Aaron was immensely helpful though, and he helped us flounder our way through many of the difficult parts of JavaScript, including objects and other more complicated parts. I'm looking forward to the presentation next week!
Due to current circumstances, we (SHODOR) began conducting meetings from online now, and it was a great time! Although I arrived at the meeting prehaps a bit later than preferred, I was able to quickly get caught up and begin working on the group project. It was definitely frustrating having to work out the various kinks and issues associated with any complex particle collision model in JavaScript, and issues ranging from typoes to computational/software errors plagued the program. However, the process was overall incredibly rewarding as my partner (Hudson) and I were able to figure out the mechanics of the particle collision model. I can't wait for continuing work on this nextmeeting.
Too bad Aaron was sick last week, but luckily he's feeling good now! After a short two week hiatus, we finally returned to programming concepts with the same bouncing particles program. It started off a little bit slower today, still, as people had several errors during the initial project, but everyone was still able to work on the two-dimensional model and make basic collision detection with the walls. Afterwards, we began to discuss the new project, and Aaron was very informative in what he wanted computational models to look like, and helped expand greatly on how models should be used in science. I'm greatly looking forward to the project in the next few weeks, and I believe it will be very educational, both in the thinking and programming aspects.
Today's lesson was incredibly informative, as we continued to work on the JavaScript canvas project. I learned a lot about different advanced programming concepts to continue to expand my knowledge of JavaScript. We also learned a lot more about reusable code, including "choose random number between" and "draw a circle on a canvas" which can be very helpful for JavaScript projects in the future. Furthermore, we also began to learn more about different ways to allow particles in the model to move. I am looking forward to learning more about the concepts we learned today and expanding the model for further functionality. Aaron and Ernie are the best, especially for letting me borrow another textbook!
It was really exciting coming back to the SHODOR apprenticeship program after a month of break. Aaron gave us a very educational overview of many important programming practices, tools, and concepts, such as the sequence of "plan-implement-test" and resources such as W3Schools and StackOverflow. We began working on a new major project with JavaScript, which seems to be extremely interesting with a lot of potential - collision detection with stochastic motion is applicable to a lot of different disciplines/scenarios, such as particle motion, fluids, and even the spread of disease (now that sounds familiar!). This project seems pretty difficult and I look forward to working on it and future projects in the next few weeks. I also began working on my portfolio website, but I'm still dealing with various issues converting this blog page into the same format as the rest of the portfolio website, but I should figure this out in the next two months :).