Skip to content

Plan future development of course #118

Open

Description

@Scottan

Following course on 30 April, and incorporating feedback #117 from students.

There was some fruitful discussion with students at the end of the course yesterday, my main takeaway was that there was appetite to go into more depth with I also had some discussion with @douglowe and @SJaffa after this course. These are my thoughts following that.

I think this course would benefit from being split in two, which can be done in two separate days or ran as a two-day course. The split would be something along the line of:

Intermediate Python

Includes the chapters:

  • Python recap
  • Dictionaries
  • Defensive programming
  • Software package management (possibly using other options e.g. venv, pip, uv)

And expanding with e.g.:

  • Classes / basic OOP
  • Structuring Python projects (i.e. moving beyond Jupyter notebooks, how to organise a folder, include file(s) containing functions / objects, using argparse and main, possibly introducing IDEs?)
  • Testing (if there is time - I suspect we won't have time to do this justice in a 1-day course, but I'd be inclined to include a chapter or two and encourage students to work on it in their spare time)

A lot of the expanded content can be adapted from this course.

Data analysis with Python

Includes the chapters:

  • Python recap (if done as a one-day)

  • Numpy and matplotlib essentials (expanded into separate chapters)

  • Units and quantities (possibly slimmed down)

  • Pandas essentials

And expanded with:

  • Something that combines all of the above to give a more real-world example of a data analysis workflow. This should be a set of challenges for the students to work through, that produces a statistical analysis and plots of a large dataset.

I think it would be good if the contents of the data analysis course don't rely on the contents of the intermediate python course, so they can each be run as a 1-day course and student can choose which is more relevant to them, but that may not be possible.

I'm largely spitballing here, please add thoughts below @andrewgait . Once we've gotten some ideas together we can decide if / how we develop the course and what capacity we have to do it.

Activity

  1. andrewgait commented on May 1, 2026

    @andrewgait
    Collaborator

    I would first note that your split is quite similar to that suggested in #46, so that would indicate that it's a good idea for some sort of split.

    I think a lot of yesterday's attendees were (more) interested in the data analysis side of things, so I guess I would also wonder about whether the "Data Analysis" side might be more popular than the "Intermediate Python" side - would there be enough interest in the latter?

    I like the flow of the two courses you have suggested - it feels like you could probably get through most of the sections in "Includes these chapters" in the morning, and then expand as you suggest in the afternoon.

    It feels like you've got a good handle on what could go into an intermediate course - OOP/classes, structure/organisation/IDEs and testing are all chapters of their own.

    For the data analysis side, it feels a bit like this course at the moment (though without the specific angle towards social scientists); I had a look through the Data Carpentry courses in general and the majority if not all of them are at least titled in such a way as to appeal to particular sets of researchers rather than having a more broad appeal, so if we could come up with some way of extending what we have to be as general as possible that would be great. I think some chapter on testing in this particular instance would also be quite useful.

    I would also note, we have taught the data carpentry image processing course before as well (to a single institute/group within the university) and are considering teaching that more widely as well (see UoMResearchIT/Training#32), so we would need to consider the elements of that course alongside any proposed new elements to be added to these courses. I don't think from what you've outlined that there are any particular clashes but it would be sensible to have it in mind when designing the "data analysis workflow".

  2. pinned this issue on May 1, 2026
  3. Scottan commented on May 5, 2026

    @Scottan
    CollaboratorAuthor

    Next step - write up into a document to share for further feedback and make decision on how we proceed

  4. andrewgait commented on Aug 4, 2026

    @andrewgait
    Collaborator

    Intro to Python leaders are currently evaluating the Library Carpentry Intro to Python lesson for use, which has some Pandas chapters in it. We should keep this in mind for our proposed "Data Analysis" course.

  5. andrewgait commented on Aug 4, 2026

    @andrewgait
    Collaborator

    It may be possible to add something about units to the numpy/matplotlib chapter, rather than having a units chapter.

  6. andrewgait commented on Aug 4, 2026

    @andrewgait
    Collaborator

    The main question with the data analysis course, particularly the afternoon, is what dataset(s) could we use for a "real-world example" of a data analysis pipeline?

  7. andrewgait commented on Aug 4, 2026

    @andrewgait
    Collaborator
    • Proposed titles for the new courses: "Data Analysis with Python", and "Software Development with Python".
    • Create two new repos for these courses and copy across the relevant chapters from this current course.
    • Retain this repo and teach the material from it as-is one more time this autumn, and then introduce new courses (in spring/summer 2027).
  8. andrewgait commented on Aug 4, 2026

    @andrewgait
    Collaborator

    Is there some way we could incorporate e.g. Streamlit into the data analysis course?

  9. andrewgait commented on Aug 6, 2026

    @andrewgait
    Collaborator
    • Proposed titles for the new courses: "Data Analysis with Python", and "Software Development with Python".

      • Create two new repos for these courses and copy across the relevant chapters from this current course.

    I have created two new repos:

    and imported the course notes for the relevant chapters into each of these, as well as adding stubs for proposed new chapters. These imports are currently on a PR in each repository which need a review, happy for this to come from @douglowe or @Scottan.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions