For many of us, programming is a big part of our scientific work, and that part is only becoming bigger. So, we spend hours upon hours in front of the computer trying to write code for the problems we are trying to solve. Come spend some time with us to get better at it, it’ll be worth your while! We are hosting a three-day workshop on code design, specially tailored to our department.
Some of our projects last pretty long and code gets piled upon code for years. Have you ever experienced the frustration of an out of control codebase, so progress of your once exciting research slows down to a crawl? This is a common problem wherever code is written, and computer scientists have been studying ways to address this problem for years. Now, it is immediately obvious that not every researcher can and should have to obtain a degree in computer science before touching any code. However, we think that the fundamentals of solving this problem can and should be taught to every person interested in improving their day-to-day coding experience. Good code design will help you be faster, more accurate and motivated throughout a project.
Therefore, we have created a workshop on how to write better analysis code. We are now set to accept participants. The workshop will be held online via Zoom.
Timetable for the workshop:
Monday 25.04.2022 12:00 – 14:00 Lecture about code design. Introduction of part 1 of the assignment. Thursday 28.04.2022 24:00 Deadline for submitting a first version of part 1. Work can continue until Tuesday 03.05. Friday 29.04 12:00 Everyone gets assigned a project to review. Tuesday 03.05 10:00 – 14:00 Presenting the reviews for part 1. Everyone will get two timeslots: one for giving and one for receiving a review. 14:00 Second part of the exercise will be revealed. Thursday 05.05 24:00 Deadline for summitting a first version of part 2. Work can continue until Monday 09.05. Monday 09.05 10:00 – 14:00 Presenting the reviews for part 2. Everyone will get two timeslots: one for giving and one for receiving a review. 14:00 - 15:00 Recap session and closing
This workshop is brought to you by Susanne Merz of the department of Neuroscience and Biomedical Engineering (NBE), Thomas Pfau, research software engineer, and Marijn van Vliet,of the department of Neuroscience and Biomedical Engineering (NBE), Aalto University.
For this workshop we assume that you are able to program in Python. To test your Python knowledge, we created a pre-exercise: Gizmo. The exercise is meant to test your knowledge of some important features of the Python programming language and the NumPy and Pandas libraries. Create pull requests (PR's) to the Gizmo repository to solve the challenges. Upon PR submission, the GitHub action robots will check your code and report back how well you did. You can then add more commits to your PR until all tests come back green, which means you win! When it's not immediately obvious to you how to solve a challengde using only a few lines of code, it is likely you can learn a new Python trick by checking the links given in the exercise sheet.
During the workshop, you will create a, short but not trivial, data analysis pipeline. Then, every group will review the work from another group, based on the design principles we covered in the theory session. This code-review process is going to be our main teaching tool in this workshop. We have set up some rules for code review, which you can find here: ReviewProcess.pdf.
The assignment details will be anounced during the course
The slides presented during the theory session can be found here: TheorySlides.pdf.