|
| 1 | +:og:title: Python for Scientific Computing |
| 2 | +:disabled:og:image: https://www.aalto.fi/sites/g/files/flghsv161/files/styles/o_914w_ah_n/public/2023-10/PFSC23.png |
| 3 | +:disabled:og:image:alt: Python for Scientific Computing course logo with date of 7-10/11/2023, twitch.tv/coderefinery, and partner logos |
| 4 | +:description: 25-27 Nov 2025, An online course designed for scientists and researchers in intermediate and practical Python skills. |
| 5 | + |
| 6 | +========================================================== |
| 7 | +Nov 25th - Nov 27th 2025 / Python for Scientific Computing |
| 8 | +========================================================== |
| 9 | + |
| 10 | +.. admonition:: News and Important info |
| 11 | + |
| 12 | + * We are updating the content for this year's run. |
| 13 | + * `Course material <https://aaltoscicomp.github.io/python-for-scicomp/>`__ |
| 14 | + * Last year run on `YouTube |
| 15 | + <https://www.youtube.com/playlist?list=PLZLVmS9rf3nMWEKWtagJ6h0q9BrFO49tn>`__ |
| 16 | + |
| 17 | + |
| 18 | +This is a medium-advanced course in Python tools such as NumPy, SciPy, |
| 19 | +Matplotlib, and Pandas. It is suitable for people who know basic |
| 20 | +Python and want to understand some internals and important libraries for |
| 21 | +science - basically, how a typical scientist actually uses Python. |
| 22 | +Read the `learner personas |
| 23 | +<https://aaltoscicomp.github.io/python-for-scicomp/#learner-personas>`__ |
| 24 | +to see if the course is right for you. `Prerequisites |
| 25 | +<https://aaltoscicomp.github.io/python-for-scicomp/#prerequisites>`__ |
| 26 | +include basic programming in Python. |
| 27 | + |
| 28 | +Part of :doc:`Scientific Computing in Practice <index>` lecture series |
| 29 | +at Aalto University, in partnership with `CodeRefinery |
| 30 | +<https://coderefinery.org>`__. |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | +Practical information |
| 35 | +--------------------- |
| 36 | + |
| 37 | +.. admonition:: Registration |
| 38 | + |
| 39 | + `General registration: please register here <https://link.webropol.com/ep/pfsc25>`__ |
| 40 | + |
| 41 | +This is an online course streamed via Twitch (the |
| 42 | +`CodeRefinery channel <https://www.twitch.tv/coderefinery>`__) so that |
| 43 | +anyone may follow along without registration. You do *not* need a |
| 44 | +Twitch account. There is a collaborative notes link which is used for asking questions during |
| 45 | +the course. The `actual material is here |
| 46 | +<https://aaltoscicomp.github.io/python-for-scicomp/>`__. |
| 47 | + |
| 48 | +While the stream is available even without providing personal data, if |
| 49 | +you register you may get collaborative notes access for asking questions and will |
| 50 | +support our funding by contributing to our attendance statistics. |
| 51 | + |
| 52 | + |
| 53 | +Schedule |
| 54 | +-------- |
| 55 | +The course consists of three online hands-on |
| 56 | +sessions 4h each with lunch break in between. All times EET (`convert 9:50 to your timezone |
| 57 | +<https://arewemeetingyet.com/Helsinki/2025-11-25/9:50>`__). |
| 58 | +**The schedule is tentative**, we may run earlier or later, so join early |
| 59 | +if attending a single lesson. |
| 60 | + |
| 61 | +.. warning:: |
| 62 | + |
| 63 | + **Timezones!** Times in this page in the Europe/Helsinki timezone. |
| 64 | + **In Central Europe, the course starts at 8:50!** (`convert 9:50 |
| 65 | + Helsinki to your timezone |
| 66 | + <https://arewemeetingyet.com/Helsinki/2025-11-25/9:50>`__) |
| 67 | + |
| 68 | + |
| 69 | +- (week before) **Installation help sessions** (for sites that offer |
| 70 | + them) |
| 71 | +- **Please connect to all sessions 10 minutes early**: icebreakers and |
| 72 | + intro already starts then. |
| 73 | +- Tue 25.nov, 9:50-15:00 |
| 74 | + |
| 75 | + - 09:50 Icebreakers and warming up (Richard Darst, Enrico Glerean) |
| 76 | + - 10:00 :doc:`Intro <python-for-scicomp/intro>` (Richard Darst, Enrico Glerean) |
| 77 | + - 10:15 `Jupyter <https://aaltoscicomp.github.io/python-for-scicomp/jupyter/>`__ (Diana Iusan, Richard Darst) |
| 78 | + - 11:00 `NumPy <https://aaltoscicomp.github.io/python-for-scicomp/numpy/>`__ (Ashwin Mohanan, Yonglei Wang) |
| 79 | + - 12:00 Lunch break |
| 80 | + - 13:00 `Pandas <https://aaltoscicomp.github.io/python-for-scicomp/pandas/>`__ (Simo Tuomisto, Richard Darst) |
| 81 | + - 14:30 `Xarray <https://aaltoscicomp.github.io/python-for-scicomp/xarray/>`__ (Gregor Decristoforo, Marijn Van Vliet) |
| 82 | + - 15:00 End of day 1 |
| 83 | + |
| 84 | +- Wed 26.nov, 9:50-15:00 |
| 85 | + |
| 86 | + - 09:50 Icebreakers and warming up (Richard Darst, Enrico Glerean) |
| 87 | + - 10:00 `Working with data <https://aaltoscicomp.github.io/python-for-scicomp/work-with-data/>`__ (Thomas Pfau, Simo Tuomisto) |
| 88 | + - 10:30 `Plotting with Vega-Altair <https://aaltoscicomp.github.io/python-for-scicomp/plotting-vega-altair/>`__ (Radovan Bast, Richard Darst) |
| 89 | + - 12:00 Lunch break |
| 90 | + - 13:00 `Scripts <https://aaltoscicomp.github.io/python-for-scicomp/scripts/>`__ (Thomas Pfau, Yonglei Wang) |
| 91 | + - 14:00 `Profiling <https://aaltoscicomp.github.io/python-for-scicomp/profiling/>`__ (Gregor Decristoforo, Radovan Bast) |
| 92 | + - 14:40 `Python productivity tools (autoformatting, linting, AI tools) <https://aaltoscicomp.github.io/python-for-scicomp/productivity/>`__ (Gregor Decristoforo, Radovan Bast) |
| 93 | + - 15:00 End of day 2 |
| 94 | + |
| 95 | +- Thu 27.nov, 9:50-15:00 |
| 96 | + |
| 97 | + - 09:50 Icebreakers and warming up (Richard Darst, Enrico Glerean) |
| 98 | + - 10:00 `Library ecosystem <https://aaltoscicomp.github.io/python-for-scicomp/libraries/>`__ (Thomas Pfau) |
| 99 | + - 10:30 `Dependency management <https://aaltoscicomp.github.io/python-for-scicomp/dependencies/>`__ (Radovan Bast, Sabry Razick, Simo Tuomisto) |
| 100 | + - 11:30 `Parallel programming intro <https://aaltoscicomp.github.io/python-for-scicomp/parallel/>`__ (Johan Hellsvik, Richard Darst) |
| 101 | + - 12:00 Lunch break |
| 102 | + - 13:00 `Parallel programming continued <https://aaltoscicomp.github.io/python-for-scicomp/parallel/>`__ (Johan Hellsvik, Richard Darst) |
| 103 | + - 14:00 `Packaging <https://aaltoscicomp.github.io/python-for-scicomp/packaging/>`__ (Ashwin Mohanan, Richard Darst) |
| 104 | + - 14:50 :doc:`Outro <python-for-scicomp/outro>` |
| 105 | + - 15:00 End of day 3 |
| 106 | + |
| 107 | + |
| 108 | +Preparation |
| 109 | +----------- |
| 110 | + |
| 111 | +`Prerequisites include basic programming in Python |
| 112 | +<https://aaltoscicomp.github.io/python-for-scicomp/#prerequisites>`__. |
| 113 | + |
| 114 | + |
| 115 | +**Software installation:** |
| 116 | + |
| 117 | +* See the `installation page of the course material |
| 118 | + <https://aaltoscicomp.github.io/python-for-scicomp/installation/>`__. |
| 119 | + |
| 120 | + * In principle, if you are at Aalto, the service |
| 121 | + https://jupyter.cs.aalto.fi should be sufficient to do most of |
| 122 | + this course without any local installations. Perhaps not |
| 123 | + everything, but it will be OK for most people. |
| 124 | + |
| 125 | + |
| 126 | +**Mental preparation:** Online workshops can be a productive format, but it |
| 127 | +takes some effort to get ready. Browse these resources: |
| 128 | + |
| 129 | +* `Attending a livestream workshop |
| 130 | + <https://coderefinery.github.io/manuals/how-to-attend-stream/>`__, |
| 131 | + good to read in detail. |
| 132 | +* `How to use HackMD to take answer questions and hold discussions <https://coderefinery.github.io/manuals/hackmd-mechanics/>`__. |
| 133 | +* It is useful to `watch <https://youtu.be/56p6xX0aToI>`__ or `read |
| 134 | + <https://scicomp.aalto.fi/scicomp/shell/>`__ the Linux shell crash |
| 135 | + course, since these basic command line concepts are always useful. |
| 136 | + |
| 137 | + |
| 138 | + |
| 139 | +Credits |
| 140 | +------- |
| 141 | + |
| 142 | +It is possible to obtain a certificate from the course with |
| 143 | +a little extra work. The certificate is equivalent to 1 ECTS and your study |
| 144 | +supervisor will be able to register it as a credit in your university study |
| 145 | +credit system. Please make sure that your supervisor/study program accepts it. |
| 146 | + |
| 147 | +Learners with a valid Aalto student number will automatically get the credit |
| 148 | +registered in Aalto systems. |
| 149 | + |
| 150 | +To obtain a certificate/credit, we expect you to have registered to the course by 7/11/2024, |
| 151 | +follow the 4 sessions and provide us with at least the following 5 documents via email |
| 152 | +(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.** |
| 153 | + |
| 154 | +- **1 text document** (PDF or txt or anything for text): For each of the 3 days, write a short paragraph (learning diary) to highlight |
| 155 | + your personal reflections about what you have found useful, which topic inspired |
| 156 | + you to go deeper, and more in general what you liked and what could be improved. |
| 157 | +- **3 (or more) .py scripts/notebooks**: For each of the 3 days take one code example from the |
| 158 | + course materials and make sure you can run it locally as a ".py" script or as a jupyter notebook. |
| 159 | + Modify it a bit according to what inspires you: adding more comments, testing the |
| 160 | + code with different inputs, expanding it with something related to your field of |
| 161 | + research. There is no right or wrong way of doing this, but please submit a |
| 162 | + python script/notebook that we are eventually able to run and test on our local computers. |
| 163 | + |
| 164 | +These 4 (or more) documents should be sent before 30/November/2024 23:59CET to [email protected]. |
| 165 | +If the evaluation criteria are met for each of the 4 (or more) documents, you will receive |
| 166 | +a certificate by end of December 2024. Please note that we do not track course attendance and if you missed one |
| 167 | +session, recordings will be available on Twitch immediately after the streaming ends. |
| 168 | + |
| 169 | +**Additional course info at:** scip -at- aalto.fi |
| 170 | + |
| 171 | + |
| 172 | + |
| 173 | +Community standards |
| 174 | +------------------- |
| 175 | + |
| 176 | +This is a large course, and we will have many diverse groups attending |
| 177 | +it. There will be people attending at all different levels, from |
| 178 | +"just learned Python" to "been using Python for a while and want to |
| 179 | +see some tips and tricks". Everyone will choose their own path, some |
| 180 | +people will be more hands-on or more "watching". Everyone is be both |
| 181 | +a teacher and a learner. Even our instructors are always learning |
| 182 | +things and make mistakes (and this is part of the point!). Please |
| 183 | +learn from our mistakes, too! |
| 184 | + |
| 185 | +This course consists of both lectures, hands-on exercises, and demos. |
| 186 | +It is designed to have a range of basic to advanced topics: there |
| 187 | +should be something for everyone. |
| 188 | + |
| 189 | +The main point this course is the exercises. If you are with a group, |
| 190 | +we hope people to work together and help each |
| 191 | +other. We expect everyone to help each other as best as they can with |
| 192 | +respect for different levels of knowledge - at the same time be aware |
| 193 | +of your own limitations. No one is better than anyone else, we just |
| 194 | +have different existing skills and backgrounds. |
| 195 | + |
| 196 | +If there is anything wrong, *tell us* - HackMD is best. If you need to contact us |
| 197 | +privately, you can message the host on Zoom, instructor chat is via |
| 198 | +`CodeRefinery chat <https://coderefinery.github.io/manuals/chat/>`__, |
| 199 | +and by email contact `CodeRefinery support |
| 200 | +<https://coderefinery.org/>`__. This could be as simple as "speak |
| 201 | +louder / text on screen is unreadable" or someone is creating a |
| 202 | +harmful learning environment. |
| 203 | + |
| 204 | + |
| 205 | +Code of Conduct |
| 206 | +--------------- |
| 207 | +We are committed to creating a friendly and respectful place for learning, teaching, |
| 208 | +and contributing. You can read our `Code of Conduct here <https://coderefinery.org/about/code-of-conduct/>`__. |
| 209 | +If you need to report any violation of the code of conduct, you can email the organisers at scip _at_ aalto.fi, |
| 210 | +alternatively you can also use `this web form <https://indico.neic.no/event/183/surveys/47>`__. |
| 211 | + |
| 212 | + |
| 213 | + |
| 214 | +Material |
| 215 | +-------- |
| 216 | + |
| 217 | +* https://aaltoscicomp.github.io/python-for-scicomp/ |
| 218 | + |
| 219 | + |
| 220 | +Partners |
| 221 | +-------- |
| 222 | + |
| 223 | +This course is hosted by Aalto Scientific Computing (Aalto University, |
| 224 | +Finland) and CodeRefinery. **Our livestream, registration, materials, |
| 225 | +and published videos are free for all** in the spirit of open science |
| 226 | +and education, but certain partners provide extra benefits for their |
| 227 | +own audience. |
| 228 | + |
| 229 | + |
| 230 | +**Staff and partner organizations:** |
| 231 | + |
| 232 | +* :doc:`Aalto Scientific Computing </index>` |
| 233 | +* `CodeRefinery <https://coderefinery.org/>`__ |
| 234 | +* `NAISS <https://www.naiss.se/>`__ |
| 235 | +* `KTH <https://kth.se>`__ |
| 236 | +* `UPPMAX <https://www.uppmax.uu.se/>`__ (Uppsala University) |
| 237 | +* `IT4SCI <https://helpdesk.it.helsinki.fi/en/services/scientific-computing-services-hpc>`__ (University of Helsinki) |
| 238 | +* `University of Oslo <https://www.usit.uio.no/>`__ |
| 239 | +* `Nordic RSE <https://nordic-rse.org/>`__ |
| 240 | +* `University of Oulu <https://www.oulu.fi/fi>`__ |
| 241 | +* `University of Jyväskylä <https://www.jyu.fi/en>`__ |
| 242 | +* `University of Eastern Finland <https://www.uef.fi/en>`__ |
| 243 | +* `CSC IT Center for Science <https://csc.fi/>`__ |
| 244 | +* `Finnish Reproducibility Network <https://www.finnish-rn.org/>`__ |
| 245 | +* `Scientific IT Services of ETH Zurich <https://sis.id.ethz.ch/>`__ |
| 246 | +* `eScience center <https://www.esciencecenter.nl/>`__ |
| 247 | +* `ENCCS <https://enccs.se/>`__ |
| 248 | + |
| 249 | + |
| 250 | +.. |
| 251 | +
|
| 252 | + * Radovan Bast (CodeRefinery, The Artic University of Norway) (instructor, helper) |
| 253 | + * Richard Darst (ASC, Aalto University) (instructor, instructor coordinator, director) |
| 254 | + * Gregor Decristoforo (The Artic University of Norway) (instructor, helper) |
| 255 | + * Enrico Glerean (ASC, Aalto University) (instructor, coordinator, communication, helper) |
| 256 | + * Johan Hellsvik (PDC, NAISS, KTH) (instructor, helper) |
| 257 | + * Diana Iusan (`UPPMAX <https://www.uppmax.uu.se/>`__, NAISS, Uppsala University) (instructor, helper) |
| 258 | + * Ashwin Mohanan (ENCCS / RISE) (instructor, helper) |
| 259 | + * Thomas Pfau (ASC, Aalto University) (instructor, helper) |
| 260 | + * Teemu Ruokolainen (ASC, Aalto University) (instructor, helper) |
| 261 | + * Sabry Razick (University of Oslo) (instructor, helper) |
| 262 | + * Simo Tuomisto (ASC, Aalto University) (instructor, helper) |
| 263 | + * Marijn Van Vliet (Aalto University) (instructor, helper) |
| 264 | + * Yonglei Wang (ENCCS / Linköping University) (instructor, helper) |
| 265 | + |
| 266 | +...and many more `contributors to the learning materials on Github <https://github.com/AaltoSciComp/python-for-scicomp/graphs/contributors>`__. |
| 267 | + |
| 268 | + |
| 269 | +Contact |
| 270 | +------- |
| 271 | + |
| 272 | +* Registration inquiries: scip -at- aalto.fi |
| 273 | +* Other organizations who want to join as a partner: scip -at- |
| 274 | + aalto.fi |
| 275 | +* Chat with us on `CodeRefinery chat |
| 276 | + <https://coderefinery.zulipchat.com>`__ (anyone) or :ref:`Aalto |
| 277 | + University scicomp chat <chat>` |
| 278 | + |
| 279 | + |
| 280 | + |
| 281 | + |
| 282 | +See also |
| 283 | +-------- |
| 284 | + |
| 285 | +* https://coderefinery.org |
| 286 | +* https://scicomp.aalto.fi/training/ |
| 287 | + |
| 288 | +.. admonition:: Last year edition |
| 289 | + |
| 290 | + * Links |
| 291 | + |
| 292 | + * `Course material <https://aaltoscicomp.github.io/python-for-scicomp/>`__ |
| 293 | + * Watch here: https://twitch.tv/coderefinery/ |
| 294 | + * `YouTube playlist (processed, later that day) |
| 295 | + <https://www.youtube.com/playlist?list=PLZLVmS9rf3nNI3oQEqSJW6yXltOAZnkpa>`__ |
| 296 | + `Twitch videos (raw, for 7 days, immediately available) |
| 297 | + <https://www.twitch.tv/coderefinery/videos>`__ |
| 298 | + * `Archived Q&A days 1-2 |
| 299 | + <https://notes.coderefinery.org/python2023?view>`__ and `days |
| 300 | + 3-4 <python2023archive>`__ |
0 commit comments