2023-10-25 Initial Fortran Training Meeting #3
Replies: 12 comments 6 replies
-
RSECon23 Pad with notes from the Fortran Training Audience Panel session. |
Beta Was this translation helpful? Give feedback.
-
This is my current course. I expect there's nothing too ground-breaking there in terms of content, but it may be of interest. This includes a GitHub codespace implementation. Click the green "code" button, select the Codespace tab, and copen a new Codespace if you'd like a look at how it works. For anyone interested, here is the tool we use to direct students though our courses. |
Beta Was this translation helpful? Give feedback.
-
Links to my courses are listed here: https://www.everythingfunctional.com/online-courses.html And lists of lots of my other resources are listed here: https://www.everythingfunctional.com/free-stuff.html Feel free to message me if you're interested in more details on anything. |
Beta Was this translation helpful? Give feedback.
-
Since my course was held in German, and it's impractical to translate the whole course, I will only translate my analysis of the course with DeepL. My course material/presentation were Jupyter Notebooks with executable Fortran cells. The first chapter of my summary are all headings scraped from the Notebooks to give you a brief overview of what topics I discussed. I should also mention that I mainly did exercises and as little lecture as possible. The timing chapter gives you an idea on how long it took to go through the course. Each day had 3 90 minutes blocks. The target audience are bachelor students in scientific programming, who already know Java, Python, C/C++ (and Calculus and Linear Algebra). Here is a Fortran Discourse topic I posted to share my experience from the lecture: Summary and short analysis of my first (and until now last) Fortran lectureChapters of the slides
Timing
ConclusionIn general, I am satisfied with the course, especially that the focus was on the exercises. However, it was difficult to create a balance between the fast and the slow students. Also, there was too much focus on the basics of programming, thus lacking time in the end for more depth into more advanced Fortran topics. What remains
What changes
What is added
|
Beta Was this translation helpful? Give feedback.
-
@carpentries-incubator/intro-to-modern-fortran-maintainers Thanks to those who have already commented! Please add your links to this discussion. One of the points I forgot to mention which came out of the conference was the need to have examples and case studies that covered a broad range of domains. We had a few offers of case studies from Physics, Geology, and Climate at the conference - it would be good if we could get more example use cases. |
Beta Was this translation helpful? Give feedback.
-
The ARCHER2 introductory course "Introduction to Modern Fortran" is https://github.com/ARCHER2-HPC/archer2-fortran-intro which is intended to be two days in real time. An intermediate course is also planned which would cover largely object-oriented features and software engineering considerations. If there was an advanced course, it would cover broadly, parallelism. We haven't quite decided where C/Fortran interoperability sits yet. |
Beta Was this translation helpful? Give feedback.
-
I prepared the basic installation guide. Since the Dislin graphical library is free to use, it shows how we can use a single statement to get the plots. |
Beta Was this translation helpful? Give feedback.
-
It might be questionable, but "development of python extensions modules" would have a big impact as well! and since it depends on the C interoperability (use of iso_c_bindings) with the extra step of creating shared objects, it might be material for a half-day advanced topic. Given the ubiquity of python it might be quite beneficial. |
Beta Was this translation helpful? Give feedback.
-
"Joao asked at the introductory level are we actually making use of F2003+ 'modern' features? Or is this applicable to F95 at the intro level?" Well, of course it should be limited by the features which are already strongly supported by the most used compilers. Up to 2008 it would be safe, 2018 there are things hanging in some compilers. |
Beta Was this translation helpful? Give feedback.
-
This the course material I am using when teaching Fortran: https://modern-fortran-in-science-and-technology.readthedocs.io/en/latest/ Here is a list of my current Fortran YouTube material: https://www.youtube.com/playlist?list=PLgLiRoLGqjOiAPAwFLNYLUDoPeczadoaw I also gave a lecture in OO-programming and mixed language programming at HPC2N in Umeå: https://youtube.com/playlist?list=PL6jMHLEmPVLwkF-Qh0VqqN9YLgVrKYSYi&si=1qkpBUYI8NOaVTyo The Qt Creator extensions for Fortran can be found here: |
Beta Was this translation helpful? Give feedback.
-
Oh, I just thought, we also have a Fortran exemplar as part of our ReCoDE project which aims to guide students through longer, more complicated examples, demonstrating best practice. There may be anything of interest in there too. |
Beta Was this translation helpful? Give feedback.
-
Hello! I'm interested in contributing to this project. I come from an environmental background, working with Met Office codes. |
Beta Was this translation helpful? Give feedback.
-
⏰ Time
Wednesday the 25th of October 2:00 - 2:45 pm London Time
1:00 - 1:45 pm UTC
📝 Agenda
Very rough agenda. If you would like to add anything please post below!
Minutes
Who is our target audience?
Dimitrios: There seemed to be general agreement that a learner should already know another language, we are teaching Modern Fortran not programming.
Dimitrios: The Software Carpentries format has a section for Learner Profiles. I have been writing these locally based off ones in other courses, see this Containers Lesson. I will open an issue to add Learner Profiles to the lesson.
Delivery
Chris C: Mentioned that the Imperial course uses codespaces to deliver a reproducible and easy environment through GitHub for their course (see his comment below).
That also links to a comment by Jonas: That the environment needs to be easy to install. The use of the Compiler Explorer was also mentioned.
Shahid and Jonas both commented that we should emphasise how easy it is to code Fortran with tools such as: VSCode + The Modern Fortran Language Server + fpm, or Qt Creator and extensions.
Content
Jose: Even though fpm & Fortran libraries may not be fully 'polished' perhaps we should still teach it very early on like you might Python + Conda.
Kevin: Mentioned that when he wrote the epcc training he made a choice to focus on the language and not introduce fpm, debugging, legacy code etc.
Iva and Jose both commented on basic debugging and simple tools should be in the Intro course like you would when teaching Python use the debugger in VSCode or Jupyter notebooks from the start. This could build up to more complex tools in later lessons.
Joao asked at the introductory level are we actually making use of F2003+ 'modern' features? Or is this applicable to F95 at the intro level?
Dimitrios: The Met Office has specific needs that go beyond an intro course, Fortran & HPC, C++/Fortran interoperability and the Software Carpentry courses are short 2-3 days so I think collectively we have content for several courses.
Chris mentioned Learning Pathways, see his comment below, which are a great tool to help guide not only students but curriculum development.
Actions
Please let me know if there are things I have missed or recorded incorrectly.
Beta Was this translation helpful? Give feedback.
All reactions