Ask: WI/ISM?, Experience in programming, in git/python, open-source development?
You wee when I took vacation It takes 10 years to become good at something Git/Python/R: for my research projects Enjoyment/challenge/making an impact: that's what I want you to experience in this project.
Ask students why Google, AirBnB etc. would publish code? -> Open Source works better -> Identify and attract talent (they may be very picky)
not throw-away code! https://unsplash.com/de/fotos/ieic5Tq8YMk
https://sean-coughlin.medium.com/market-yourself-with-a-killer-github-readme-cf529264453 Git und Pyhton kurz erkären/motivieren Github platform: tests, continuous integration, forks, ...
Ambition: Open-source environment for literature reviews (like R for statistics, or Python for ML) Wer hat schon mal eine Literaturübersicht geschrieben? Command line! git as an inspiration: rapid adoption (not because there were shiny interfaces, but because the data management was very efficient, reliable, and scalable to large teams)
1. Organization and topics (**today**) 2. Introduction to Git 3. Introduction to Python (I) 4. Introducation to Python (II) 5. Best practices 6. Individual hacking sessions 7. Pull request 8. Code review session (*)
Note: agenda.pptx in git-collaboration repository
Klar kommunizieren: wenn ihr die Programmiererfahrung/Kurse nicht mitbringt und euch das nicht zutraut, dann belegt das Projekt eher im nächsten Semester. Highlight: your contribution will be public/used by others! Ggf. auf Projekt im nächsten Semester verweisen Clear message: - You have to learn git and python. I will provide an introductory session, but you will need to invest more time. - you are expected to set up your environment. I am available to answer questions, but I cannot setup individual machines. contribution: you are expected to make that contribution (know what you do, be able to explain it - you cannot use generative AI like ChatGPT because you will have to submit the code under the MIT license.) small teams, everyone is expected to program and contribute - with git, we see contributions. - that's a good thing if you tend to pull your weight
Your participation will be confirmed and your account will be linked to the project issue.
Sie haben es selbst in der Hand - Sie können sich bei dem Thema einbringen, das Sie interessiert! the next sessions will also serve as a group forming session projekt: gruppenfindung: - Generell ansagen: ich mache keine Gruppen am Anfang. Man zeigt, dass man an einem Teiltehma mitarbeitet wernn man zu einem Pull-request beiträgt. Man kann anderen signalisieren, wenn man an einem Thema interessiert ist, indem man einem issue folgt. Man kann also auch strategisch issues wählen, denen keiner folgt. Es ist wichtig, früh zu pushen. Es ist möglich (und empfman ohlen) aber nicht zwingend notwendig, sich in Teams zu treffen. -> Regel: wenn man auf einen issue pushed muss man sich ausreichend vorher eingetragen haben, im issue kommunizieren. - Ich behalte mir vor, bis zur Python session (willkürlich bzw. in Abstimmung) Gruppen zu verkleinern (bestimmte TeilnehmerInnen zu verpflichten, in andere Themen zu wechseln). - Eigene Verantwortung: Gruppen mit mehr als 5 Teilnehmenden sollten vermieden werden, müssten substantiell höhere Erwartungen erfüllen. Jeder TeilnehmerIn ist verpflichtet, mir zu signalisieren, wenn Gruppen zu groß werden. -> Gruppen in den späteren Sessions bitten, sich zusammenzusetzen (austausch anstoßen) -> Durchmischung kann durch "Überbuchen" von beliebten Issues getrieben werden (es wird zufällig/von mir ausgewählt, wer wechseln muss) -> es bleibt in gewissem Umfang möglich, die Themenauswahl/Gruppenauswahl mit zu beeinflussen (zB. wenn man in kleinen Gruppen auf Themen mit wenig Interessenten geht) -> Ich setze Anreize, dass Beiträge früh geleistet werden (keine Riesen-Commits kurz vor Schluss), und dass eine gute Abstimmung in der Gruppe erfolgt (Anforderungen), und dass die Gruppenverteilung ausgeglichen ist (nicht Open-Source konform, aber für das Projekt wichtig.) -> Abstimmen mit den Füßen (Open-Source-like) -> anders als DBs vorschlag (Durchmischung) -> gut erklären, wie sich ein Open-Source Projekt organisiert (issues, transparente Kommunikation, ...) DB: alle mitnehmen? LT: quote erforderlich? (WI/ISM) ASK: how many ISM (Java not mandatory) and WI? -> maybe require a certain number of ISM students per group?
# TODO : Organize (fork/branch), develop, PR and Feedback, code analysis deadline
Klar kommunizieren: wenn ihr die Programmiererfahrung/Kurse nicht mitbringt und euch das nicht zutraut, dann belegt das Projekt eher im nächsten Semester. Refer to github codespaces Highlight: your contribution will be public/used by others! Ggf. auf Projekt im nächsten Semester verweisen Clear message: - You have to learn git and python. I will provide an introductory session, but you will need to invest more time. - you are expected to set up your environment. I am available to answer questions, but I cannot setup individual machines. contribution: you are expected to make that contribution (know what you do, be able to explain it - you cannot use generative AI like ChatGPT because you will have to submit the code under the MIT license.) small teams, everyone is expected to program and contribute - with git, we see contributions. - that's a good thing if you tend to pull your weight
Presentations Expectations: length/format, show code, demonstrate rationales/alternatives, potential extensions, summarize challenges (how could they be addressed/prevented in upcoming student projects)
"Schnitzeljagd" - auf Zeit -> bei der Programmierung wichtig: Bibliotheken schnell einschätzen. Nach 5 minuten fragen: wer ist schon fertig? ggf. mehr Zeit geben. TODO : auflösen! Correcponds to Software selection (criteria) -> ask: what does each concept mean? unpaywall: search the github project or documentation (rst: documentation, py: get_pdf method) go to new issue -> show template for bugs/new features Afterwards: Ask who has found (1, 2, ...) - show solutions - Note: what should be improved? Show the colrev/github website, documentation, explain the git/open-source community structure Show architecture graph Show the issues/the good-first-issue (and the code-markers) -> the topics (features of 0.10.0): what we will look at later.
The topics cover: - [API-based information retrieval](https://github.com/CoLRev-Environment/colrev/issues/120) - [Data modeling and preparation](https://github.com/CoLRev-Environment/colrev/issues/129) - [Data structures and schema validation](https://github.com/CoLRev-Environment/colrev/issues/107) - [Data validation based on domain-specific rules](https://github.com/CoLRev-Environment/colrev/issues/109) - [Analytics dashboards](https://github.com/CoLRev-Environment/colrev/issues/130)
Show that each issue has specific pointers to the code, mention that I am available to answer questions, provide feedback in the hacking sessions Demonstrate workflow - search: SearchSource: API-example: resembling Topic 1 - prep: This is where the journals (Topic 2) would provide input - validation: show example -> validate also applies to review types (show problem formulation in the docs). (Topic 3) - colrev stauts -> dashboard of the sample, burn-down chart (Topic 4) - data: Data extraction (structured) -> validation, illustrate errors Topic 5
Ask: who is interested in topic 1, ...? -> connect people Are there questions? Note: good-first-issues: typical starting point when joining an open-source project Explore the issues, try to understand them, identify those that you would be interested in Then we can answer questions TODO : also ask who would be interested in topic 1, 2, 3... (to give an overview of the topics that are highly popular) TODO : emphasize parallels to git
Student e-mail address: wegen Codespaces Kontingent Installation/Setup starten, ggf. beim nächsten Termin schon Fragen stellen -> codespaces for mac users We need the programming environment next time. You can use the VirtualBox image or try to set it up on a local machine. You have to take responsibility for your environment (we cannot offer a lot of support). The instructions are online and you can make suggestions for improvements (if any).