Nov 5th - Nov 7th 2024 / Python for Scientific Computing
News and Important info
5/11/2024 update: Preparing for Day2 – I’s most important to have Jupyter working so you can do the exercises - if you had problems, now you can work on solving it before tomorrow. An extra installation session will be offered to participants from partners organisations.
Watch here: https://twitch.tv/coderefinery/ (recording available for 7 days)
YouTube playlist (videos appear when processed) Twitch videos (raw, for 7 days, immediately available)
This is a medium-advanced course in Python tools such as NumPy, SciPy, Matplotlib, and Pandas. It is suitable for people who know basic Python and want to understand some internals and important libraries for science - basically, how a typical scientist actually uses Python. Read the learner personas to see if the course is right for you. Prerequisites include basic programming in Python.
Part of Scientific Computing in Practice lecture series at Aalto University, in partnership with CodeRefinery.
Practical information
Registration
This is an online course streamed via Twitch (the CodeRefinery channel) so that anyone may follow along without registration. You do not need a Twitch account. There is a collaborative notes link which is used for asking questions during the course. The actual material is here.
While the stream is available even without providing personal data, if you register you may get collaborative notes access for asking questions and will support our funding by contributing to our attendance statistics.
Schedule
The course consists of three online hands-on sessions 4h each with lunch break in between. All times EET (convert 9:50 to your timezone). The schedule is tentative, we may run earlier or later, so join early if attending a single lesson.
Warning
Timezones! Times in this page in the Europe/Helsinki timezone. In Central Europe, the course starts at 8:50! (convert 9:50 Helsinki to your timezone)
(week before) Installation help sessions (for sites that offer them)
Please connect to all sessions 10 minutes early: icebreakers and intro already starts then.
Tue 5.nov, 9:50-15:00
09:50 Icebreakers and warming up (Richard Darst, Enrico Glerean)
10:00 Intro (Richard Darst, Enrico Glerean)
10:15 Jupyter (Diana Iusan, Richard Darst)
11:00 NumPy (Ashwin Mohanan, Yonglei Wang)
12:00 Lunch break
13:00 Pandas (Simo Tuomisto, Richard Darst)
14:30 Xarray (Gregor Decristoforo, Marijn Van Vliet)
15:00 End of day 1
Wed 6.nov, 9:50-15:00
09:50 Icebreakers and warming up (Richard Darst, Enrico Glerean)
10:00 Working with data (Thomas Pfau, Simo Tuomisto)
10:30 Plotting with Vega-Altair (Radovan Bast, Richard Darst)
12:00 Lunch break
13:00 Scripts (Thomas Pfau, Yonglei Wang)
14:00 Profiling (Gregor Decristoforo, Radovan Bast)
14:40 Python productivity tools (autoformatting, linting, AI tools) (Gregor Decristoforo, Radovan Bast)
15:00 End of day 2
Thu 7.nov, 9:50-15:00
09:50 Icebreakers and warming up (Richard Darst, Enrico Glerean)
10:00 Library ecosystem (Thomas Pfau)
10:30 Dependency management (Radovan Bast, Sabry Razick, Simo Tuomisto)
11:30 Parallel programming intro (Johan Hellsvik, Richard Darst)
12:00 Lunch break
13:00 Parallel programming continued (Johan Hellsvik, Richard Darst)
14:00 Packaging (Ashwin Mohanan, Richard Darst)
14:50 Outro
15:00 End of day 3
Preparation
Prerequisites include basic programming in Python.
Software installation:
See the installation page of the course material.
In principle, if you are at Aalto, the service https://jupyter.cs.aalto.fi should be sufficient to do most of this course without any local installations. Perhaps not everything, but it will be OK for most people.
Mental preparation: Online workshops can be a productive format, but it takes some effort to get ready. Browse these resources:
Attending a livestream workshop, good to read in detail.
How to use HackMD to take answer questions and hold discussions.
It is useful to watch or read the Linux shell crash course, since these basic command line concepts are always useful.
Credits
It is possible to obtain a certificate from the course with a little extra work. The certificate is equivalent to 1 ECTS and your study supervisor will be able to register it as a credit in your university study credit system. Please make sure that your supervisor/study program accepts it.
Learners with a valid Aalto student number will automatically get the credit registered in Aalto systems.
To obtain a certificate/credit, we expect you to have registered to the course by 7/11/2024, follow the 4 sessions and provide us with at least the following 5 documents via email (1 text document, 3 or more python scripts/notebooks). Please remember to add your name and surname to all submitted files. If you are a student at Aalto University, please also add your student number.
1 text document (PDF or txt or anything for text): For each of the 3 days, write a short paragraph (learning diary) to highlight your personal reflections about what you have found useful, which topic inspired you to go deeper, and more in general what you liked and what could be improved.
3 (or more) .py scripts/notebooks: For each of the 3 days take one code example from the course materials and make sure you can run it locally as a “.py” script or as a jupyter notebook. Modify it a bit according to what inspires you: adding more comments, testing the code with different inputs, expanding it with something related to your field of research. There is no right or wrong way of doing this, but please submit a python script/notebook that we are eventually able to run and test on our local computers.
These 4 (or more) documents should be sent before 30/November/2024 23:59CET to scip@aalto.fi. If the evaluation criteria are met for each of the 4 (or more) documents, you will receive a certificate by end of December 2024. Please note that we do not track course attendance and if you missed one session, recordings will be available on Twitch immediately after the streaming ends.
Additional course info at: scip -at- aalto.fi
Community standards
This is a large course, and we will have many diverse groups attending it. There will be people attending at all different levels, from “just learned Python” to “been using Python for a while and want to see some tips and tricks”. Everyone will choose their own path, some people will be more hands-on or more “watching”. Everyone is be both a teacher and a learner. Even our instructors are always learning things and make mistakes (and this is part of the point!). Please learn from our mistakes, too!
This course consists of both lectures, hands-on exercises, and demos. It is designed to have a range of basic to advanced topics: there should be something for everyone.
The main point this course is the exercises. If you are with a group, we hope people to work together and help each other. We expect everyone to help each other as best as they can with respect for different levels of knowledge - at the same time be aware of your own limitations. No one is better than anyone else, we just have different existing skills and backgrounds.
If there is anything wrong, tell us - HackMD is best. If you need to contact us privately, you can message the host on Zoom, instructor chat is via CodeRefinery chat, and by email contact CodeRefinery support. This could be as simple as “speak louder / text on screen is unreadable” or someone is creating a harmful learning environment.
Code of Conduct
We are committed to creating a friendly and respectful place for learning, teaching, and contributing. You can read our Code of Conduct here. If you need to report any violation of the code of conduct, you can email the organisers at scip _at_ aalto.fi, alternatively you can also use this web form.
Material
Partners
This course is hosted by Aalto Scientific Computing (Aalto University, Finland) and CodeRefinery. Our livestream, registration, materials, and published videos are free for all in the spirit of open science and education, but certain partners provide extra benefits for their own audience.
Staff and partner organizations:
Radovan Bast (CodeRefinery, The Artic University of Norway) (instructor, helper)
Richard Darst (ASC, Aalto University) (instructor, instructor coordinator, director)
Gregor Decristoforo (The Artic University of Norway) (instructor, helper)
Enrico Glerean (ASC, Aalto University) (instructor, coordinator, communication, helper)
Johan Hellsvik (PDC, NAISS, KTH) (instructor, helper)
Diana Iusan (UPPMAX, NAISS, Uppsala University) (instructor, helper)
Ashwin Mohanan (ENCCS / RISE) (instructor, helper)
Thomas Pfau (ASC, Aalto University) (instructor, helper)
Teemu Ruokolainen (ASC, Aalto University) (instructor, helper)
Sabry Razick (University of Oslo) (instructor, helper)
Simo Tuomisto (ASC, Aalto University) (instructor, helper)
Marijn Van Vliet (Aalto University) (instructor, helper)
Yonglei Wang (ENCCS / Linköping University) (instructor, helper)
…and many more contributors to the learning materials on Github.
Contact
Registration inquiries: scip -at- aalto.fi
Other organizations who want to join as a partner: scip -at- aalto.fi
Chat with us on CodeRefinery chat (anyone) or Aalto University scicomp chat
See also
Last year edition