diff --git a/00_organization/challenge_intro_slides.md b/00_organization/challenge_intro_slides.md index 3b2dc735..503bc3d5 100644 --- a/00_organization/challenge_intro_slides.md +++ b/00_organization/challenge_intro_slides.md @@ -47,26 +47,41 @@ slideOptions: - Examples: feature, tutorial, documentation, new packaging, bugfix, ... - Run through complete cycle (issue, discussion, PR, review, merge) -### Timeline +--- + +## Timeline -1. Pick a software (till **Oct 23**, evening) -2. Present the software: how you got it, what are main features, some tutorials you did, ... (**Nov 6**) -3. Present *"RSE infrastructure"* of the software: Which CI / documentation / building / git workflow ... does it use? How do contributions work? (**Dec 11**) -4. Suggest contribution (**Dec 16**) -5. Present the contribution (**Feb 5**) +- Pick a software (till **Oct 22**, evening) +- **Step 1**: Present the software: how you got it, what are main features, some tutorials you did, ... (**Nov 5**) +- **Step 2**: Present *"RSE infrastructure"* of the software: Which CI / documentation / building / git workflow ... does it use? How do contributions work? (**Dec 17**) +- Suggest contribution (**Dec 17**) +- **Step 3**: Present the contribution (**Feb 4**) --- ## Grading -Challenge / exercises / engagement = 45% / 50% / 5% +Challenge / exercises / other = 45% / 50% / 5% The challenge part: -- All 3 reports: 3/8 -- Presentation: 1/8 -- Actual contribution: 2/8 difficulty, 2/8 quality (*"net benefit"* for maintainers?) -- *"outstanding"* / *"passed"* / *"failed"* +- All 3 reports: **3/9** +- Presentation: **2/9** +- Actual contribution: **2/9** difficulty + **2/9** quality + - **difficulty**: extent / difficulty of the contribution + - **quality**: how well executed? Communication, documentation, tests, ... (*"net benefit"* for maintainers?) +- *"outstanding"* / *"good"* / *"ok"* / *"not enough"* (*"good"* -> 1.0) +- You need to pass (at least *"ok"*) all steps individually + +--- + +## Example Contributions + +1. Ported several demo cases ([see one](https://github.com/FEniCS/dolfinx/pull/2508)) from FEniCS to [FEniCSx](https://fenicsproject.org/): difficulty *"outstanding"* +2. [Improved website search](https://github.com/MakieOrg/Makie.jl/pull/2474) of [Makie](https://makie.org/website/): difficulty *"good"* +3. [Solved a simple good first issue](https://github.com/pymor/pymor/pull/1898) in [pyMOR](https://pymor.org/): difficulty *"ok"* + +(all did a good or outstanding job in terms of quality) --- @@ -75,7 +90,6 @@ The challenge part: - Something in the simulation universe (this includes equation solvers, meshing, scientific visualization, (AI), ...) - Truly open source, all development in public - Uses Git -- Written in Python or C++ (not a strict must) - Real community project (not 1-2 PhD students developing, but multiple research groups behind project) - A project that is open for contributions (`CONTRIBUTING.md` or similar) - Ideally a software you have not worked with before (if you have, please discuss with us) @@ -90,10 +104,9 @@ The challenge part: - [DUNE](https://www.dune-project.org/): Modular toolbox for PDEs - [Eigen](https://eigen.tuxfamily.org): LA library in C++ - [ESPResSo](https://espressomd.org): MD Simulator with Python API (Stuttgart) -- [FEniCS(-X)](https://fenicsproject.org/): FEM library in C++ with Python interface - [Firedrake](https://www.firedrakeproject.org/): FEM library in Python -- [Gmsh](https://gmsh.info/): Mesh generator - [LAMMPS](https://www.lammps.org/): MD simulator +- [MercuryDPM](https://www.mercurydpm.org/home): particle code - [Nalu-Wind](https://github.com/Exawind/nalu-wind): CFD solver for wind farms - [Palabos](https://palabos.unige.ch/): Lattice Boltzmann method solver @@ -106,19 +119,28 @@ The challenge part: - [preCICE](https://precice.org/): Coupling library (Stuttgart) - [pyiron](https://pyiron.org/): Workflow manager in Python - [pyMOR](https://pymor.org/): MOR library in Python +- [pyLife](https://pylife.readthedocs.io/en/stable/): fatigue of mechanical components in Python - [SU2](https://su2code.github.io/): CFD code in C++ - [SUNDIALS](https://computing.llnl.gov/projects/sundials): Nonlinear solvers, ODEs - [TRILINOS](https://trilinos.github.io/): Collection of scientific software libraries, mainly solvers - [VisIt](https://visit-dav.github.io/visit-website/index.html): Scientific visualization software -- more projects in [xSDK](https://xsdk.info/packages/) or [NumFOCUS](https://numfocus.org/sponsored-projects) +- more projects in [xSDK](https://xsdk.info/packages/), [NumFOCUS](https://numfocus.org/sponsored-projects), or [HiRSE Code Promotion](https://www.helmholtz-hirse.de/promo.html) - **Or your suggestion** (also agent-based or discrete event simulation software) --- +## What Happens if Maintainers do not React in Time? + +- Give them time, contact early +- Not your fault +- Keep all communication public, then easy for us to review + +--- + ## How to Submit my Choice? -- [https://gitlab-sim.informatik.uni-stuttgart.de/simulation-software-engineering-wite2425/challenge](https://gitlab-sim.informatik.uni-stuttgart.de/simulation-software-engineering-wite2425/challenge) -- Comment in [issue #1](https://gitlab-sim.informatik.uni-stuttgart.de/simulation-software-engineering-wite2425/challenge/-/issues/1) till **23rd of October** (next Wednesday) evening (no FCFS) +- [https://gitlab-sim.informatik.uni-stuttgart.de/simulation-software-engineering-wite2526/challenge](https://gitlab-sim.informatik.uni-stuttgart.de/simulation-software-engineering-wite2526/challenge) +- Comment in [issue #1](https://gitlab-sim.informatik.uni-stuttgart.de/simulation-software-engineering-wite2526/challenge/-/issues/1) till **22rd of October** (next Wednesday) evening (no FCFS) - Priority list with at least three choices - If **not** on our suggestion list, write short paragraph what the software does and give links @@ -126,8 +148,8 @@ The challenge part: ## Role of Advisor -- Benjamin, Frédéric, Gerasimos, or Ishaan -- Use, for example, exercise blocks and time after lectures for discussions +- Benjamin, Felix, Frédéric, Gerasimos, or Ishaan +- Use, for example, exercise blocks and time before and after lectures for discussions - Share links etc. to issues and PRs (or tag us) --- @@ -135,7 +157,7 @@ The challenge part: ## Presentations - Length depends on number of students in course (maybe 5-10 mins) -- Everybody has to present at least once +- Everybody has to present once or twice (depending on number of students) - Everybody should learn something from every presentation - Style: like a presentation in a team meeting, not like a presentation at a conference @@ -146,7 +168,7 @@ The challenge part: - Submit a report for each step - 1-2 pages (2500-5000 chars) - Written in markdown -- Submission via a merge request to the [GitLab challenge repo](https://gitlab-sim.informatik.uni-stuttgart.de/simulation-software-engineering-wite2425/challenge) +- Submission via a merge request to the [GitLab challenge repo](https://gitlab-sim.informatik.uni-stuttgart.de/simulation-software-engineering-wite2526/challenge) - Add links, instructions, ... should work like a compact summary for everybody in the end - Will be visible to everybody in SSE group - We will prepare templates diff --git a/00_organization/course_intro_slides.md b/00_organization/course_intro_slides.md index a9ecc9f9..82bda0f7 100644 --- a/00_organization/course_intro_slides.md +++ b/00_organization/course_intro_slides.md @@ -47,6 +47,11 @@ slideOptions: - Gerasimos (Chourdakis) [`@MakisH`](https://github.com/MakisH) - Ishaan (Desai) [`@IshaanDesai`](https://github.com/IshaanDesai) +Additional challenge advisors: + +- Frédéric (Simonis) [`@fsimonis`](https://github.com/fsimonis) +- Felix (Neubauer) [`@Logende`](https://github.com/Logende) + SSE Hall of Fame: - Alexander (Jaust) [`@ajaust`](https://github.com/ajaust) @@ -71,15 +76,13 @@ SSE Hall of Fame: Two parallel branches: - **Weekly lectures** (90 mins) and **exercises** (90 mins) to learn and train concepts and tools - - Wednesdays, 09:45–11:15 and 15:45–17:15 - - This room: 38-0.108 - - No strict distinction between lecture and exercise - - Interactive style (not a theory course) + - Wednesdays, 09:45–11:15 (in V47.05) and 15:45–17:15 (in 38-0.108, might be too small in first week) + - Typically lecture in the morning and exercise in the afternoon - **Individual challenge**: contribute to real simulation software :rocket: - List of software candidates: this afternoon - 3 rounds of presentations from you (more later) - You get a direct advisor - - Use exercise blocks and time after lectures for discussions + - Use time before and after lectures for discussions --- @@ -88,6 +91,8 @@ Two parallel branches: - Basic programming (Python, C++) - Basic software development skills (bash, Git, md, ...) - Some simulation background + - SimTech, COMMAS students: no issue + - CS, SE: ideally through Numerical Fundamentals (NumGL) and Fundamentals of Scientific Computing (WissRech) --- @@ -100,22 +105,13 @@ Two parallel branches: --- -## Waiting List - -- Students who have a fixed spot (top 40) in either the lecture or the exercise get in. -- We take 50 students in total. -- Remaining spots are filled by waiting list provided presence or excused today. -- We manually add these students at the end of this week. - ---- - ## Material - Great open-source book to recap: Irving, Hertweck, Johnston, Ostblom, Wickham, and Wilson: [Research Software Engineering with Python](https://third-bit.com/py-rse/) - All our material is on [https://github.com/Simulation-Software-Engineering](https://github.com/Simulation-Software-Engineering) - Mainly markdown ... use your favorite tool to render (simply GitHub viewer, [GWDG Hedgedoc](https://pad.gwdg.de/), [stuvus Hedgedoc](https://pad.stuvus.de/), [pandoc](https://pandoc.org/), [PDFs generated in CI](https://github.com/Simulation-Software-Engineering/Lecture-Material/actions/workflows/create-pdfs-from-markdown.yml), [Marp example](https://github.com/uekerman/sse-marp-example), ...) - We rework the material as the semester goes. -- We give many links to videos, docs, blog posts, podcasts, ... +- We give links to docs, videos, blog posts, podcasts, ... --- @@ -132,6 +128,15 @@ Two parallel branches: --- +## Use of Generative AI + +- Also changes RSE rapidly +- Even more important: having a good overview of technology and being able to **read** code (what we teach in this course) +- If you use generative AI for your exercises or your challenge: **mandatory** to make this transparent (which parts of your code, how, ...) +- It is important, experiment! But also build a firm understanding of the basics of technology! + +--- + ## Chapters 1. Version Control @@ -155,11 +160,11 @@ Two parallel branches: ### Timeline -1. Pick a software (till **Oct 23**, evening) -2. Present the software: how you got it, what are main features, some tutorials you did, ... (**Nov 6**) -3. Present *"RSE infrastructure"* of the software: Which CI / documentation / building / git workflow ... does it use? How do contributions work? (**Dec 11**) -4. Suggest contribution (**Dec 16**) -5. Present the contribution (**Feb 5**) +- Pick a software (till **Oct 22**, evening) +- **Step 1**: Present the software: how you got it, what are main features, some tutorials you did, ... (**Nov 5**) +- **Step 2**: Present *"RSE infrastructure"* of the software: Which CI / documentation / building / git workflow ... does it use? How do contributions work? (**Dec 17**) +- Suggest contribution (**Dec 17**) +- **Step 3**: Present the contribution (**Feb 4**) --- @@ -196,8 +201,8 @@ td { | ---- | ---- | ------- |------ | -------- | | 12.11. |Lecture | 3 | Intro packaging, Python packaging | Ishaan | | 12.11. |Lab | 3 | Python packaging | Ishaan | -| 19.11. |Lecture | 3 | Linux fundamentals, Make, CMake | Benjamin | -| 19.11. |Lab | 3 | CMake and Docker | Benjamin | +| 19.11. |Lecture | 3 | Linux fundamentals, Make, CMake | Gerasimos | +| 19.11. |Lab | 3 | CMake and Docker | Gerasimos | | 26.11. |Lecture | 3 | Spack | Ishaan | | 26.11. |Lab | 3 | Spack | Ishaan | | 03.12. |Lecture | 3 | CPack and more CMake | Benjamin | @@ -235,13 +240,16 @@ td { ## Examination - *"Course accompanying examination"*: no exam, but continuous examination (more like a lab course or a seminar) -- Attendance is mandatory. +- Attendance is mandatory - We look at: - - Challenge (reports, presentations, contribution) (45%) - - Exercises (not every detail, but *"outstanding"* / *"passed"* / *"failed"* ) (50%) - - Overall engagement (interactive lecture, discussions, small presentations, contributions, ...) (5%) + - Challenge (reports, presentations, contribution; more in the afternoon) (45%) + - Exercises (not every detail, but *"outstanding"* / *"good"* / *"ok"* / *"not enough"* ) (50%) + - Other (e.g. contributions to lecture material, ...) (5%) +- *"good"* everywhere leads to 1.0. +- We give (brief) feedback after every exercise. - You will need to register yourself to the *"exam"* on C@MPUS. -- Point of no return: Once you handed in the first report (Nov 6), you have to register. +- Last in: The deadline to pick a software (**Oct 22**, evening) +- Last out: Once you handed in the first report (**Nov 6**) --- diff --git a/00_organization/rse_basics_slides.md b/00_organization/rse_basics_slides.md index 10ae84fa..4a07991e 100644 --- a/00_organization/rse_basics_slides.md +++ b/00_organization/rse_basics_slides.md @@ -60,7 +60,7 @@ slideOptions: > A Research Software Engineer (RSE) combines professional software engineering expertise with an intimate understanding of research. - *"Movement"* started in the UK, first UK RSE conference in 2016 -- First conferences in Germany and the Netherlands in 2019 +- First conferences in Germany and the Netherlands in 2019 ([deRSE 2026](https://events.hifis.net/event/2945/) is in Stuttgart, March 3-5) - [First de-RSE position paper](https://f1000research.com/articles/9-295/v2) in 2020, [several working groups](https://de-rse.org/en/working_groups.html) - [Learning and teaching RSE](https://de-rse.org/learn-and-teach/), [foundational competencies](https://de-rse.org/blog/2024/10/08/identifying-the-foundational-competencies-of-an-RSE-en.html) - [Why be an RSE?](https://researchit.blogs.bristol.ac.uk/2021/10/14/international-rse-day-why-be-an-rse/) Interesting and novel projects, technical freedom, RSEs come from varied backgrounds, development for social good