
Show HN: Project Lovelace–Learn science and programming through problem solving - bazram
https://projectlovelace.net/
======
MrTonyD
While I like the idea of this site, I think it is good to understand how it is
fundamentally flawed.

I do training. And most outside of training don't stop to think about how
there are a variety of approaches to training, and a variety of topics, and
not every topic aligns well with every approach. And choosing the wrong
approach has some very bad consequences - harder learning, poor learning, and
less joy in the learner.

I read the first problem - rocket physics - and it does a disservice to both
physics and programming. Personally, rocket physics is where I would probably
take a historical approach to teaching - what did we learn, how did we learn
it - embedded in failure and success stories. And there were software failures
there too. But I understand that this site isn't trying to teach those things.
It is taking it's one hammer (problem based teaching) and applying it to a
bunch of nails.

~~~
aliram
Thanks for taking a look! We're definitely not experts so we appreciate
critical feedback!

I agree Project Lovelace basically tries to do one thing (problem based
teaching) without much regard as to what scientific topics would be
appropriate for the website. Problem suitability is not something I've thought
hard about, I guess we just tried to aim for variety and "rocket science"
seemed like a fun way to introduce the rocket equation and how code submission
works. But it doesn't really teach you anything about rocket science or how to
program. It may actually leave you with misconceptions and bad programming
practises as you point out.

Maybe sticking to purely computational science topics might be better, e.g.
solving an ordinary differential equation for the trajectory of a projectile,
as it would neccessarilly require scientific code to be written and tested
which is what the website does. Do you think this will better align with the
approach Project Lovelace takes? Or is it more than just the choice of
topic/subjects to cover?

The motivation for building the website stemmed from our perceived lack of
resources for learning scientific computing, or really how to solve science
problems on a computer which forms a large chunk of scientific research.
Learning how to simulate the weather is an example we had in mind. We thought
a Project Euler approach might actually help a lot since we're big fans, at
which point we thought maybe it could be of general interest and started
thinking of easier and more varied problems to put up. This may have been a
mistake.

While the website is purely recreational right now, we may try to integrate it
into a science course in the near future at which point it will be critical to
address the fundamental flaw you pointed out. Project Lovelace will always be
free and open-source though.

~~~
MrTonyD
I have only respect for your idea and approach. The tricky part is figuring
out where and how to apply it.

I think of the time I spent coding "lunar lander" and how I then read a
physicist's description about the algorithms that I had implemented. I
discovered that all the code I had created was really garbage - it was
simplified to the point of fiction compared to anything in the real world. So
there is an opportunity cost - what could I have been coding that would have
been both instructive as code and for the problem domain too? There are lots
and lots of good answers, and probably even more bad answers.

First we would have to ask what we want to accomplish from the code
perspective as well as from a science perspective. My own personal preference
is for mechanics and dynamics - perhaps in a 3D context (so matrix algebra
would get involved.) This can be related to real-world things (building
failures, game design, etc.) Also both coding and science principles are
fairly well understood in that domain (well, it would be relatively easy to
explain many of the mechanics issues - such as Feynman did in his well known
books. And then there are the recent model failures due to poorly understood
energy storage discovered for energy in structures during earthquakes. No
models really exist to describe that yet.) And other science areas would
certainly work. I don't know "weather", but I'm sure that there are some edge
cases where simplified models are meaningful and insightful.

The reality is that it is very difficult to create good Training. And if you
are trying to do two things at once - teach coding and physics - it is even
harder. That is why there are usually prerequisites, so that coding can be
taught, and then physics taught. I truly wish you only the best.

~~~
aliram
Thanks again for your feedback!

Trying to teach both science and programming is definitely very difficult due
to the number of prerequisites required, so we'll try to figure out exactly
who might benefit from out website. I suspect we'll end up more on the
programming side of things as you write and submit code, while the best way to
learn science (in my opinion) is to actually wrap your head around the
concepts and go through the derivations (+ read up and understand the
experiments).

Classical mechanics is not something I've thought of much with linear algebra,
I'm still stuck in Lagrangians and Hamiltonians with differential equations
but 3D mechanics with matrices would be a good problem to think about.

Some simple models do exist for atmospheric science, e.g. for describing
frontogenesis, but it usually boils down to differential equations. There are
plenty of simple climate models (usually described as energy balance models)
that are simple to describe and solve.

