About Me

Hello! My name is Daniel Harrington. I'm currently a high school senior based in central Florida. I've always been interested in science, physics, and computer programming, but haven't always had a way to connect them. A few years ago, I applied to a summer program that asked for a portfolio of projects, and I realized that nothing I had done reflected the goals and things that I wanted to learn.

I took advantage of pandemic free time and dove into more formal CS education, taking Harvard's CS50x course (highly recommend!) and studying on my own. At the same time, I started studying physics and realized I could use computer simulation to combine the two areas. I brushed up on C++ and started developing small exploratory projects that I catalogue here. In the future, I hope to study physics in college with an emphasis on computation. I love teaching and sharing with others, and this blog has been a great way to do it..

About Me

Hello! My name is Daniel Harrington. I'm currently a high school senior based in central Florida. I've always been interested in science, physics, and computer programming, but haven't always had a way to connect them. A few years ago, I applied to a summer program that asked for a portfolio of projects, and I realized that nothing I had done reflected the goals and things that I wanted to learn.

I took advantage of pandemic free time and dove into more formal CS education, taking Harvard's CS50x course (highly recommend!) and studying on my own. At the same time, I started studying physics and realized I could use computer simulation to combine the two areas. I brushed up on C++ and started developing small exploratory projects that I catalogue here. In the future, I hope to study physics in college with an emphasis on computation. I love teaching and sharing with others, and this blog has been a great way to do it..

About the Project

Format

For each topic of physics investigated, there are one or several programs demonstrating the corresponding theory through visualizations or simulations.

Programs are written in C++ using the SFML framework. Though Python is often a popular choice for scientific uses, I chose C++ due its comparative speed and popularity in computer graphics. The main advantage of Python is the large amount of abstraction it offers both for mathematical and scientific computations, but since the goal of this project is to develop these tools from scratch, this is not an influential factor. In the future though, as I progress to more involved concepts, I may transition to Python through frameworks like Processing or SciPy.

Topics

Through this project, I aim to cover principles of physics presented in a calculus-based introductory physics course, as well as anything else that happens to interest me. Although the structure is not organized around any particular curriculum, material is loosely borrowed from MIT's 8.01 course and University Physics by Young and Freedman. Knowledge of basic calculus and programming principles are assumed in communication of concepts.

Download

If you wish to try any of the programs or build upon them, SFML must be installed on your platform.

Daniel Harrington