---
# System prepended metadata

title: Python for Scicomp Hackathon 2022
tags: [Training]

---

# Python for Scicomp Hackathon 2022

###### tags: `Training`






# Poll

Add initials to vote for a time

Day starts with a Zoom coffee at 9 CET

Mon 5.12: JR, JH, DI
Tue 6.12: JH, DI
Wed 7.12: JR,
Thu 8.12: JR, RD(½), DI
Fri 9.12: JH, RD(½)

Mon 12.12: RD, JR, DI, JH (10-12 CET)
Tue 13.12: RD(½), JR, DI
Wed 14.12: RD(½), JR, DI
Thu 15.12: RD(½), JR, DI
Fri 16.12: RD(½), JR, DI



RB: I will not be able to help sync but I can participate async and also work on some issues so please keep me in the loop and I can take some tasks.

DI: Morning Fri Dec 9 clashes with the planning for the data worksflows course.


## Notes
* numpy-advanced
    * We need much better explanation of the advanced numpy lesson
        * Rather a better/clearer definition of the prerequesites
    * Course emails should emphasize more that day 1 is advanced numpy, read basic numpy 
    * Or move advanced numpy to a later day, where the difficulty fits.  So it's clear "not everyone will follow this". :+1:
* Dedicated description of "just because you can do something with Python statements doesn't mean you should: use the right libraries".  like a fireside chat 15-minute session?
* .iloc needs more emphasis/description overall.
    * or general best indexing practice
    * https://pandas.pydata.org/docs/user_guide/indexing.html 
    * https://towardsdatascience.com/explaining-the-settingwithcopywarning-in-pandas-ebc19d799d25
* Pandas
    * Beware of being split over two days and needing to re-run the notebook
    * Look at reducing duplication between the first and second halves.
* Most lessons ran out of time right as they got interesting
    * Does this mean we need to focus on the start of the lessons - optimize presentation of simple things?
* Two courses, basic + intermediate?
    * Add a prerequisite to each individual lesson that tells about the basic stuff.
    * Less lost lists, more discussion and showing whole workflows?
    * Less "API jeoprady"
* Data formats
    * Create a good examples that illustrate the usage of data formats. Leave actual formats as reference material.
* TOC for the lessons and add a description to each so that the participants/helpers understand if they should go through the material in advance (=basic lesson) or if it not be taught at all (=optional), but kept for reference.
* if some exercises are to skipped, it would be good to inform the helpers about it in advance
* Top matter (boxes at top of each lesson) should be:
    * Objectives: 
        * bullet list: three (2-5) overall points which learners should be able to understand.  Very broad and high-level.  Learners should be able to look at these and see if the course is useful.  Teachers should be able to understand the general level of teaching expected.
        * How it is generally taught and what you should prepare to do? (rough balance of demo, type-along, exercise, and how deep we go)
    * Prerequisites: What you need to know to get ⅔ of the material.  What happens if you don't have that.


## Letter to our future selves

Hello, our future selves!  If you are reading this, you probably didn't follow up on the python-for-scicomp hackathon. That's OK, we knew we would get too busy, and knew we would pick better life balance.  This lesson tells what you need to know

In general, here are our overall hints:
* People thought that we ran out of time right as we got to the good parts.  Pay particular attention to the flow of start of the lessons so that it goes *quickly*
* Add a "prerequisites/advance reading/background info" at the top of each lesson.  In communication, say "please review the background info so that you can follow along.  If you don't, you can still follow along, but you might miss some parts - this is OK."

Here's the most important thing we think about each lesson (if it's not already covered above):

* Jupyter: a few more advanced things for advanced users
* Web APIs: one more advanced web API
* Data formats: spend less time going over the long list (leave the list, but scan over it).  Have a better full example at the end.


