Programming in Oslo – Part 2

After a few weeks of extensive traveling and working on school I am back on the SAGA Blog! Soon I will be posting about my travels across Europe, but for this post I will be talking about the other engineering class I am taking, Computational Physics.

You might say, that doesn’t sound like an engineering class, it’s physics! You are right, but at the core of Computational Physics is creating simulations to solve these complex physical equations. This makes it more of a programming course than actually learning all the concepts and theories in physics. This is most likely true for the majority of students in the class, since they are physics students, but I quickly learned that some of the concepts being discussed were well above Physics I / II at UAH. I should have expected it considering this is a senior level class in their physics curriculum and they have already taken Special Relativity, Quantum Mechanics, Magnetism etc. However, thankfully the teacher, Morten Hjorth-Jensen, has been exceptional at explaining the theory to the class. Typically this instruction is meant as more of a layout guideline for discretizing or deriving the algorithmic process, but for me it was the baseline for actually learning the theory or method itself. I took this course from the recommendation of another former UAH student that studied abroad at UiO, Christopher Parker, who suggested it for a specific project in the course using Monte Carlo methods. I can say with confidence that finishing up the 4th project a few weeks ago with only one more to go, this course was incredible.

As always I try and get out whilst programming, this specific time I hammocked along the Akerselva river that runs through Oslo.

Hammocking while Programming

I can say though that being suspended in the air literally over a river while holding your laptop can be scary. I usually prefer safer situations for my electronics, but it was one of the last gorgeous days in Oslo and I couldn’t resist the sound of a waterfall while working on the project. Also, this place is conveniently only a 7 min walk from my student house!

I would go into detail explaining each project, but they are fairly complicated and deep in Physics so I will summarize and provide links to view my final reports for each if you are interested in a topic. Also as always, all the code/results are listed in the Github repo.

The first two projects were not part of the final grade and the feedback was used for our own benefit to improve before the projects that actually counted for our grade. The first project was familiarizing the class with dynamic memory allocation and using matrix/vector operations in programming. This was pretty much review for me and a nice task to warm up my skills for the semester. The second project was the algorithmic development of a solution to Eigenvalue problems using the equations of a buckling beam coupled with Schroedinger’s equation. This project was definitely stepping up the physics knowledge, especially dabbling into Quantum dot theory. The feedback provided by the TAs/professor was exceptional in giving me a basis of how the physics department expects reports. I also learned how to format code beautifully using proper syntax highlighting in the text with crisp rendering. They also could tell my lack of theoretical knowledge translation when writing in project 2 and suggested routes of ensuring I had a firm foundation when writing my reports in the future. I am a big fan of this detailed feedback, especially being a TA at UAH for 3 previous semesters in ENG-101. On that note, if you’ll be taking ENG-101H this spring, I’ll see you then!

The third project was the first real graded project worth 33% of our grade. Even though this brought additional stress, I actually really enjoyed the problem being solved. We were tasked with creating a simulation that modeled the solar system. Several different solvers were used and lots of different planetary quantities were evaluated. This project really combined everything I had learned and it showed in the grade I received back today, a 95. I really worked hard for it and I think classes like MAE-311 really prepared me for the rigorous writing style, resulting in a comprehensive 22-page report. This is why I always stress to freshman that listening to feedback, going to office hours, and putting in the effort always makes the difference in college.

The fourth project simulated the Ising Model using the Monte Carlo method coupled with the Metropolis algorithm. This project was the reason I took the course and it lived up to my anticipations. This project was where the mathematical equations got intense really fast with constants and variables appearing out of thin air. Actually programming it was fairly short, but understanding the math took a lot of studying. Once it was all done though it was actually really interesting seeing how the model interacted.

The fifth project is due in a week and a half and I will be starting it this weekend. I just got done taking my Biologically Inspired Computing final today and I have been dedicating a lot of time towards it. Especially since it is worth 100% of my grade (the assignments were just pass/fail to even get the chance to take the final). With that out of the way, I now have the time to start and wrap up the last project in Computational Physics. Wow, that was a lot of text, I hope I didn’t lose you in the middle! If you are taking finals this week, I wish you the best of luck and remember, it’s almost winter break!


Programming in Oslo

It feels good to be back and posting on the UAH Honors SAGA blog. This post I will be focusing on one of my passions consuming a lot of my time in Oslo. On the academic side, I have been challenged with Senior level programming courses in Biologically Inspired Computing and Computational Physics. Coding has always been a passion for me and through my ME degree at UAH I have constantly felt the desire to learn advanced ML, AI, and randomization methods (Monte Carlo), and the University of Oslo gave me the chance. I have been able to keep my coding skills up by TA’ng ENG101 for three semesters (including the first Honors section!) but I felt it was time to further my skill set.

One aspect of programming Oslo that is like no other is the free wifi absolutely everywhere in public places and it’s super fast. This allows me to work on my projects with views like you can see below.

Aker Brigge, Oslo Bay

It is amazing what a relaxing environment does for productivity. I try and do this at UAH, but Oslo has definitely inspired me to come back and spend more time studying in places like Monte Sano.

Biologically Inspired Computing focuses on Neural Networks and Machine Learning techniques. There have been two mandatory assignments so far and they have definitely challenged my programming skills. This is mainly because I had to receive special permission to take them, due to the fact that they are Senior level Computer Science classes.

The first assignment involved using a genetic algorithm (GA) to solve the traveling salesman problem. By essentially breaking the problem into genotypes and phenotypes, you can use a genetic-based reproduction structure to develop your family bloodline. The GA then produces new generations of children to optimize the results towards the optimal solution.

The second project I just turned in last week was a Machine Learning classifier for EMG signals. The assignment explores supervised learning with the implementation of a multilayer perceptron (MLP). The task at hand was to analyze data from electromyographic (EMG) signals to learn eight hand gestures from a robotic prosthetic hand controller. The algorithm used backpropagation to fill the neural nodes to refine a weighting system for the dynamic classification process. The confusion matrixes are filled with the results allowing for analysis.

Both of these assignments allowed me to learn in-demand algorithm knowledge, as AI / ML is the future of all computing. You can view my work for the course on my Github course page and there are reports included in both for an easy to read summary. I feel blessed to have the opportunity to experience this world-class course that is recognized for it’s rigorous but exceptional content. The applications in the field of robotics (my future career path) are endless and provide a solid foundation for future growth in programming. This is all I have for this week and in my next post, I plan on talking about Computational Physics!