Open bernhold opened 3 years ago
I want to turn this into a thread to capture discussions and develop a roadmap for how to evolve the hands-ons. We discussed the idea above on the 2021-12-16 call and @frobnitzem and @adubey64 thought it might work, especially if we target longer standalone tutorials. @frobnitzem has already made a start on the multi-language idea in https://github.com/frobnitzem/simple-heateq
Other relevant issues that should be considered and perhaps subsumed into this thread include:
The hands-on problem we're using is not that challenging and doesn't require a huge code base. What if we took the approach of walking through the steps to develop the whole code base "from scratch" in the participant's language of choice?
We could provide solutions in multiple languages: C, C++, Fortran, and Python would probably cover most of our participants. We could also work backwards and pull them apart, in stages, to provide scaffolding that would allow participants to grab the scaffold and fill in the meat. Maybe some things we would provide in complete form from the start so that participants don't need to worry about them. Those might be the routines that don't add value, educationally.
And maybe this becomes the basis for new extended tutorial, where we walk through the example with the participants as a microcosm and then follow with a series of presentations that generalizes and extends the concepts to larger and more complex scientific software systems.
If you imagine giving ourselves more time for this, you can perhaps imagine doing the heat equation example via live coding. And perhaps the overall structure would actually have the hands-on for a particular topic followed immediately by the presentation that expands it. So that there is more back and forth between hands-on and listening, to foster engagement (hopefully).