Modern Fortran Carpentries course

I don’t know if this has been discussed before (a quick search of the forum says not), but has anyone considered creating a Carpentries course for (modern) Fortran?

For those not familiar with Carpentries, they are an organisation who promotes the teaching of foundational programming skills through community-developed lessons. The lessons are hosted online and are intended as a template for educators to use when teaching the lesson, or as a useful resources for students/learners to use to develop their skills independently. Here’s a list of the Software Carpentries lessons: Our Lessons

Carpentries are all the rage in the research software engineering community and you can see all of today’s trendy languages like Python and R have lessons. It would be great to add Fortran to that list.

I think the best first step to getting a lesson onto Carpentries is to go through the Carpentries Incubator: GitHub - carpentries-incubator/proposals: Open an issue in this repository to share Carpentries-style lessons and lesson ideas.. Having a quick look through their repos, I can’t see any that already cover Fortran.

Lessons are generally quite short (1.5, 3 or 6 hours) and so I think we would have to pick a focus. It would probably be good to start with an intro/beginners course. There would obviously be room for developing further lessons after this.

I’ve never contributed to any Carpentries lessons before, so if anyone here has prior experience, it would be great to know.

6 Likes

I’m not familiar with Software Carpentries, but I agree that having a good tutorial for Fortran there will not hurt.

I might be able to offer the course we developed for our students here in Bonn as starting point: Introduction to Fortran — Advanced Quantum Chemistry Methods. The main focus of this six week course (3.5hrs per week) is quantum chemistry, where we cover the Fortran programming basics in the first week, before going into a domain application. The workload of the Fortran introduction might be just right for a beginner course. The material is currently licensed under CC-BY-SA, but we might be able to drop the share-alike term, if there is interest.

5 Likes

Looks like Rohit @rgoswami is a maintainer of the Programming in R course, maybe he can give us some pointers on starting a Programming in Fortran course.

1 Like

My university is a hub for Software carpentry activity and this link shows some Fortran related activity and a contact.
https://www.staffnet.manchester.ac.uk/staff-learning-and-development/learning-pathways/professional-and-technical-development/it-skills/research-computing/research-courses/

2 Likes

Sounds like there’s some good content and inspiration out there already. @awvwgk I love that the course you developed introduces fpm upfront - I was thinking that this would be a great way to introduce new Fortraners to the exciting stuff going on here.

@rgoswami I’m curious how the course development works - did the Programming in R start off as a Carpentries Incubator and then get invited to the main Carpentries lessons? I noticed Carpentries Lab (the peer reviewed lessons) is invite only, so I was wondering how they decide who to invite.

1 Like

Hi, sorry I was AWOL for so long.

The Programming in R course in particular is a bit special, it was one of the foundational courses so it was already part of the lessons set when I took over maintenance.

If there is interest in this I can reach out the Carpentries core team about an invite and to get updates on the process :slight_smile:

3 Likes

That would be really useful, thanks. I didn’t get around to doing anything on this yet, but it’s on my radar. So it would be great to have some inside knowledge on the process from the Carpentries team :slight_smile:

1 Like

Sure, I’ll ping this thread when I hear back :slight_smile:

2 Likes

There is GitHub - acenet-arc/fortran_oop_as_a_second_language: Software Carpentries style workshop teaching object oriented features of Fortran.

2 Likes

Good spot. It looks under active development at the moment.

1 Like