-Why attend this course-
"Nobody would try to become an author without being an active reader. Why should becoming a programmer be different?", "Code is read much more often than it is written", "The ratio of time spent reading versus writing is well over 10 to 1. We are constantly reading old code as part of the effort to write new code [...] Making it easy to read makes it easier to write." - these are just some quotes for you to get an idea of how important reading and readability of code is, especially in industry jobs (see our github for sources). Also, any programmer who has ever worked on a project that consisted of more than some throwaway scripts knows the frustrating situation of spending inordinate amounts of time trying to understand code you or someone else wrote months ago - preferably to fix a bug right before an important deadline. Like any skill, we believe that becoming proficient (and efficient) at reading code can be trained by practice. A more than welcome side effect of reading other people's code is that you get to learn how they think and organize their software, becoming a better programmer on the way - and there are many open source repositories of great coders to learn from out there!
-What we will do in this course-
In this course, we adapt the concept of a Journal Club to reading code. Instead of reading a new paper, we will be finding our way around a new code base every week. As a bioinformatics group, our focus is on bioinformatics tools and the languages C, C++ and python. However, you are welcome to bring projects in other languages or from other fields if you want.
We will start the course by learning about how to get into an unfamiliar code base, after which each of you can choose a repository to read in depth and present in one of the following weeks. You can either bring your own or choose from a list we will provide.
Every session after that will work just like a "normal" journal club: Preparing for the session everyone reads (parts of) the repository and tries to understand it while the "presenter" reads it more in depth and tries to become more of an expert on it than the others. In the actual session, we will develop an understanding of the code base together as well as re-read those parts of the code that we did not quite understand or that are simply critical/interesting/cool.
-What we recommend-
If you're thinking of attending this course, most likely you have all that is needed. If you have at least some knowledge about C(++) and python and have done at least done some bigger project in any language (experience from "Grundlagen des Softwareengineering" or equivalent is probably enough here), you should be fine.
Frequency | Weekday | Time | Format / Place | Period | |
---|---|---|---|---|---|
weekly | Di | 16-18 | U10-155 | 03.04.-14.07.2023 |
Module | Course | Requirements | |
---|---|---|---|
39-Inf-EGMI Ergänzungsmodul Informatik | vertiefendes Seminar 1 | Ungraded examination
|
Student information |
vertiefendes Seminar 2 | Ungraded examination
|
Student information | |
vertiefendes Seminar 3 | Ungraded examination
|
Student information | |
vertiefendes Seminar 4 | Ungraded examination
|
Student information |
The binding module descriptions contain further information, including specifications on the "types of assignments" students need to complete. In cases where a module description mentions more than one kind of assignment, the respective member of the teaching staff will decide which task(s) they assign the students.
A corresponding course offer for this course already exists in the e-learning system. Teaching staff can store materials relating to teaching courses there: