Welcome to Project Lovelace! We're still in early development so there are still tons of bugs to find and improvements to make. If you have any suggestions, complaints, or comments please let us know on Discourse, Discord, or GitHub!

About Project Lovelace

What exactly is Project Lovelace?
Project Lovelace is an open online platform for learning about science and developing computational thinking through programming and problem solving. It is a collection of computational science problems and tutorials taken from all branches of the natural, social, and mathematical sciences. Each problem teaches a scientific application (e.g. locating earthquakes, DNA splicing) and requires the use of scientific insight and some programming skills to solve. Tutorials teach computational methods that students and researchers may find useful (e.g. solving differential equations, Bayesian inference) and may be required knowledge for some problems. Project Lovelace draws inspiration from similar projects such as Project Euler and Rosalind.


Who was Ada Lovelace?
Ada Lovelace (1815-1852) was an English mathematician who was the first person to realize that computers could be much more than big calculators and published the first complex computer algorithm in 1843. She did this long before any computer existed to execute her algorithm as it was devised for the Analytical Engine which never got built. The algorithm described how the Analytical Engine could calculate the Bernoulli numbers using a recursive algorithm, which you can reproduce in Ada Lovelace's Note G. If you're interested in learning more about her the BBC made a documentary, Calculating Ada - The Countess of Computing, where Hannah Fry (of Numberphile fame) tells the story of her life.


Do I need to know a lot of science and math to solve problems?
Depends on the problem. A higher difficulty rating means more math and science involved. We try to introduce all the science you need to know to solve the problem, and you'll learn more by working through them. We also try to include useful notes and links to videos that might introduce the concepts in a better way. Some problems don't include much math, and we'll try to include many of these especially the ones that have cool visualizations. Scientific computing involves lots of math, especially in the form of solving differential equations, so math is impossible to avoid. If you feel a problem is unclear or could be improved, please let us know!


I have a suggestion or idea for a new problem, or something is broken.
Please let us know on Discourse, Discord, or GitHub! We'll do our best to fix things and add in new features.


Can I post my solutions online?
Sure, we can't stop you! But if you do post your solutions online then try to post good code: well-documented and quality code that others can learn from by reading. A lot of our problems are well-known and not neccessarily original so there are probably already many solutions posted online for those.


Why make another programming website when there are so many others?
We didn't find any good resources for learning about computational science so we thought we'd make one. We liked Project Euler as a way of learning math and improving our programming skills but not being number theory experts we found it hard to solve the problems past the first page or two as we had no idea where to start. Their problems are very well thought out and you can learn a lot, but pretty contrived in our opinion. Other websites like Leetcode (and many others) just teach super boring and generic algorithms (in our opinion) that may be useful for passing technical interviews but maybe not so much in the real world. Since there are so many interesting real-world and applied problems in all branches of science we think this is a good opportunity to learn both science and programming at the same time.


Why call it Project Lovelace?
We wanted to follow in the footsteps of Project Euler and Rosalind and found it difficult to decide on a founding figure for computational science mostly because it's hard to pinpoint the first time a computer was used to solve a scientific problem.

Analog computers were around long before electronic computers, so you could argue that the ancient Greek Antikythera mechanism, which was used to predict the location of the planets in the sky and the timing of lunar eclipses, was the first automated calculation of scientific interest. Many other examples can be found including the torquetum, an astronomical instrument probably from the medieval Arab world that could measure and convert between different spherical coordinate systems, tide-predicting machines which were first built in the 1870's, and the differential analyser which was first built in the early 1930's and used to calculate firing tables.

It's not too hard to argue that the modern computer came out of World War II. Electro-mechanical Bombe computers were famously used by the Allies to break the Enigma machine cipher used by the German army. The first programmable, electronic, digital computer, the Colossus, was built in 1943 and is best known for its use in breaking the Lorenz cipher used to encrypt high-level messages by the German army. The ENIAC, another early general-purpose electronic computer, was initially designed to calculate firing tables but ended up running atomic bomb simulations for the Manhattan Project.

We're getting a little sidetracked here but essentially since we wanted to cover a wide range of topics, and no one can agree on what the first computer was, let alone the first computational scientific calculation, so it made sense to just name it after the first programmer.


What is the logo supposed to be?
Short answer: It's one of the hydrogen atom's atomic orbitals inside curly braces (science + programming!).

Longer answer: The red and blue thing is an artistic rendering of the hydrogen atom's 3dz2 atomic orbital. The red and blue regions show where an electron in this atomic orbital can be found with 90% probability. The red region is where the orbital's quantum wavefunction is positive, and the blue region is where it's negative.

The logo corresponds to the orbital with principal quantum number $n = 3$, azimuthal quantum number $\ell = 2$, and magnetic quantum number $m_\ell = 0$. Wikipedia has a table showing the shapes of these atomic orbitals. It also looks like the spherical harmonic with $\ell = 2$ and $m = 0$ since the hydrogen atom's atomic orbitals can be expressed mathematically using spherical harmonics.