PULS
Foto: Matthias Friel
Bitte beachten: Die Belegung dieses Kurses als Modul INF-1060 ist nur für die BSc-Studiengänge Computerlinguistik und Kognitionswissenschaften vorgesehen.
Teilnehmende aus anderen Studiengängen belegen den Kurs bitte unter einem der Module INF-2090 - Aufbaumodul Informatik I, INF-7040 - Effiziente Datenverarbeitung für die Naturwissenschaften, INF-DSAM4A - Advanced Infrastructures and Software Engineering A, INF-DSAM4B - Advanced Infrastructures and Software Engineering B, INF-DS-C2 - Data Infrastructures and Software Engineering oder PHY-SS05 - Recent Advances in ClEWS.
Software is vital for contemporary research: The most precious data is worthless without suitable software to process and analyze it. Over the past decade, Research Software Engineering (RSE) has formed as a new discipline to professionalize the development of software for scientific applications.
This course is an introduction to Research Software Engineering. It is intended for students who are already using Python (or a similar programming language) for data analysis, and who want to take their coding and software development skills to the next level. The course covers topics like version control with Git/GitLab, coding standards, development processes, requirements analysis, software architectures and design, testing and error handling, software licensing, software publication and citation, building command-line tools, configurable programs, creating packages, and workflow automation.
The weekly lectures are accompanied by exercise sessions to practice the concepts and techniques discussed. Students will furthermore work on two research software projects during the course, the first individually and the second in an interdisciplinary team. For both, students are invited to bring their own research ideas and problems.
The course uses the textbook "Research Software Engineering with Python" (D. Irving et al., 2021, https://third-bit.com/py-rse/) and selected additional material (provided in the course).
The course "Forschungsdatenmanagement/Research Data Management" (taught by Prof. Dr. Lucke) complements this course with a focus on how to manage research data professionally.
The course assumes basic programming skills in Python (e.g. as acquired in "Grundlagen der Programmierung") and builds on that. You should be comfortable doing things like reading data from files and writing loops, conditionals, and functions. If you know another imperative programming language well, you can probably manage to pick up enough Python during the course.
Projects and (written or oral) exam.
Learning outcomes of this course include:- Organize small and medium-sized data science projects.- Use the Unix shell to efficiently manage your data and code.- Write Python programs that can be used on the command line.- Use Git to track and share your work.- Work productively in a small team where everyone is welcome.- Enable users to configure your software without modifying it directly.- Analyse requirements and develop suitable software architectures.- Organise code in a modular and sustainable way.- Test your software and know which parts have not yet been tested.- Find, handle, and fix errors in your code.- Publish your code and research in open and reproducible ways.- Create Python packages that can be installed in standard ways.- Use Make, SnakeMake and other workflow managers to automate complex workflows.
Students from all disciplines who have at least basic programming skills (preferably in Python) and want to learn more about conducting research software projects professionally.
© Copyright HISHochschul-Informations-System eG