Repository navigation
Update organization lecture for WT26/27 #276
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
34f68fc
65b2846
ac8e8f5
6b07bb4
13cf3ed
c5c4462
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -37,7 +37,7 @@ slideOptions: | |
| </style> | ||
|
|
||
|
|
||
| # Your Challenge: Contribute to Real Simulation Software | ||
| # Challenge: Contribute to real simulation software | ||
|
|
||
| --- | ||
|
|
||
|
|
@@ -51,17 +51,17 @@ slideOptions: | |
|
|
||
| ## Timeline | ||
|
|
||
| - 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**) | ||
| 1. Pick a simulation software project | ||
| 2. **Presentation 1**: How you got the software, what are main features, some tutorials you did, ... | ||
| 3. **Presentation 2**: *"RSE infrastructure"* of the software:<br/> Which CI / documentation / building / git workflow ... does it use? How do contributions work? | ||
| 4. Suggest contribution | ||
| 5. **Presentation 3**: Your contribution | ||
|
|
||
| --- | ||
|
|
||
| ## Grading | ||
|
|
||
| Challenge / exercises / other = 45% / 50% / 5% | ||
| Challenge / exercises / engagement = 45% / 50% / 5% | ||
|
|
||
| The challenge part: | ||
|
|
||
|
|
@@ -75,17 +75,17 @@ The challenge part: | |
|
|
||
| --- | ||
|
|
||
| ## Example Contributions | ||
| ## 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"* | ||
| 1. Ported several demo cases ([see one](https://github.com/FEniCS/dolfinx/pull/2508)) from FEniCS to [FEniCSx](https://fenicsproject.org/): difficulty *"outstanding"* (before widespread AI assistance) | ||
| 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) | ||
|
|
||
| --- | ||
|
|
||
| ## Which Software to Pick? | ||
| ## Which software to pick? | ||
|
|
||
| - Something in the simulation universe (this includes equation solvers, meshing, scientific visualization, (AI), ...) | ||
| - Truly open source, all development in public | ||
|
|
@@ -108,47 +108,58 @@ The challenge part: | |
| - [Firedrake](https://www.firedrakeproject.org/): FEM library in Python | ||
| - [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 | ||
| - [MFEM](https://mfem.org/): FEM library in C++ | ||
| - [NeoFOAM](https://exasim-project.com/NeoFOAM/) | ||
| - [Kynema-UGF](https://github.com/kynema/kynema-ugf): CFD solver for wind farms | ||
|
Comment on lines
+111
to
+113
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In this list:
|
||
| - [Palabos](https://palabos.unige.ch/): Lattice Boltzmann method solver | ||
|
|
||
| --- | ||
|
|
||
| ## Suggestions II | ||
|
|
||
| - [OpenFAST](https://www.nrel.gov/wind/nwtc/openfast.html): Multi-fidelity wind turbine simulation tool | ||
| - [PETSc](https://petsc.org/): LA library | ||
| - [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/), [NumFOCUS](https://numfocus.org/sponsored-projects), or [HiRSE Code Promotion](https://www.helmholtz-hirse.de/promo.html) | ||
| - more projects in [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? | ||
| ## The Challenge: Advice | ||
|
|
||
| - Pick something from your background | ||
| - Don't choose based on the programming language | ||
| - Start early, persist with questions, iterate quickly | ||
| - Start with something clear, extend with a second contribution | ||
| - Contact us early in case of trouble | ||
| - Make reviews easy for maintainers (will return to this) | ||
|
Comment on lines
+133
to
+140
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Added |
||
|
|
||
| --- | ||
|
|
||
| ## What happens if maintainers do not react? | ||
|
|
||
| - Give them time, contact early | ||
| - Not your fault | ||
| - Keep all communication public, then easy for us to review | ||
|
|
||
| --- | ||
|
|
||
| ## How to Submit my Choice? | ||
| ## How to submit my choice? | ||
|
|
||
| - [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 **22nd of October** (next Wednesday) evening (no FCFS) | ||
| - Challenge repository (see `timetable.md`) | ||
| - Comment in `work item #1` till 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 | ||
| - If **not** on our suggestion list, motivate and give links | ||
| - Add pre-knowledge that you have in the field. For example, if you pick pyMOR, you should know already what MOR is. | ||
|
|
||
| --- | ||
|
|
||
| ## Role of Advisor | ||
| ## Role of advisor | ||
|
|
||
| - Felix, Frédéric, Serge, or Gerasimos | ||
| - Use, for example, exercise blocks and time before and after lectures for discussions | ||
|
|
@@ -169,8 +180,8 @@ 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-wite2526/challenge) | ||
| - Written in Markdown | ||
| - Submission via a merge request to the GitLab challenge repo | ||
| - 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 | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -41,38 +41,43 @@ slideOptions: | |
|
|
||
| --- | ||
|
|
||
| ## The Lecturers | ||
| ## Involved people | ||
|
|
||
| - Gerasimos (Chourdakis) [`@MakisH`](https://github.com/MakisH) | ||
| - Frédéric (Simonis) [`@fsimonis`](https://github.com/fsimonis) | ||
| - Felix (Neubauer) [`@Logende`](https://github.com/Logende) | ||
| - On leave this year: Benjamin (Uekermann) [`@uekerman`](https://github.com/uekerman) | ||
| - Gerasimos Chourdakis - [`@MakisH`](https://github.com/MakisH) | ||
| - Frédéric Simonis - [`@fsimonis`](https://github.com/fsimonis) | ||
| - Felix Neubauer - [`@Logende`](https://github.com/Logende) | ||
| - Serge Kotchourko - [`@kotserge`](https://github.com/kotserge) | ||
|
|
||
| Additional challenge advisors: | ||
|
|
||
| - Serge Kotchourko [`@kotserge`](https://github.com/kotserge) | ||
| --- | ||
|
|
||
| SSE Hall of Fame: | ||
| ## Involved people (2) | ||
|
|
||
| - Alexander (Jaust) [`@ajaust`](https://github.com/ajaust) | ||
| - Ishaan (Desai) [`@IshaanDesai`](https://github.com/IshaanDesai) | ||
| - On leave this year: Benjamin Uekermann - [`@uekerman`](https://github.com/uekerman) | ||
|
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. cc @uekerman |
||
| - SSE Hall of Fame: | ||
| - Alexander Jaust - [`@ajaust`](https://github.com/ajaust) | ||
| - Ishaan Desai - [`@IshaanDesai`](https://github.com/IshaanDesai) | ||
|
|
||
| --- | ||
|
|
||
| ## The Idea & Learning Goals | ||
| ## Learning goals | ||
|
|
||
| - No (advanced) programming course | ||
| - Learn about all the other things you need to develop research / | ||
| simulation software (to become a *"Research Software Engineer"*): | ||
| continuous integration, virtualization, building & packaging, documentation, ... | ||
| - Focus on tools for C++ and Python | ||
| - More than a *"3-days software carpentry workshop on Python and Git"* | ||
| continuous integration, containers, building & packaging, documentation, ... | ||
| - Learn how to contribute to large-scale open-source simulation software projects | ||
| - Learn which important simulation software packages exist and how to use them | ||
|
|
||
| --- | ||
|
|
||
| ## Building Blocks | ||
| ## Specific angle | ||
|
|
||
| - No (advanced) programming course (for C++ and Python) | ||
| - More than a *"3-days software carpentry workshop on Python and Git"* | ||
| - Focus on simulation software | ||
|
|
||
| --- | ||
|
|
||
| ## Building blocks | ||
|
|
||
| Two parallel branches: | ||
|
|
||
|
|
@@ -90,7 +95,7 @@ Two parallel branches: | |
| ## Prerequisites: Skills | ||
|
|
||
| - Basic programming (Python, C++) | ||
| - Basic software development skills (bash, Git, md, ...) | ||
| - Basic software development skills (CLI, Git, Markdown, ...) | ||
| - Some simulation background | ||
| - SimTech, COMMAS students: no issue | ||
| - CS, SE: ideally through Numerical Fundamentals (NumGL) and Fundamentals of Scientific Computing (WissRech) | ||
|
|
@@ -108,15 +113,15 @@ Two parallel branches: | |
|
|
||
| ## 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) | ||
| - Great open-source book to recap: Irving, Hertweck, Johnston, Ostblom, Wickham, and Wilson:<br/> [Research Software Engineering with Python](https://third-bit.com/py-rse/) | ||
| - All our material is on GitHub:<br/> [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 links to docs, videos, blog posts, podcasts, ... | ||
|
|
||
| --- | ||
|
|
||
| ## Contribute to the Material | ||
| ## Contribute to the material | ||
|
|
||
| - You, no joke :see_no_evil: ([many students already contributed](https://github.com/Simulation-Software-Engineering/Lecture-Material/graphs/contributors)) | ||
| - Typos, broken links, ... | ||
|
|
@@ -133,8 +138,13 @@ Two parallel branches: | |
|
|
||
| - 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, ...) | ||
| - If you use generative AI for your exercises or your challenge: **mandatory** to make this transparent (where, how, ...) | ||
| - It is important, experiment! But also build a firm understanding of the basics of technology! | ||
| - **Not allowed:** GenAI for communication (reports/exercise PR descriptions). | ||
|
|
||
| --- | ||
|
|
||
| ## Goal: Learn | ||
|
|
||
| --- | ||
|
|
||
|
|
@@ -145,7 +155,7 @@ Two parallel branches: | |
| 3. Building and Packaging | ||
| 4. Documentation | ||
| 5. Testing and Continuous Integration | ||
| 6. Miscellaneous | ||
| 6. Miscellaneous: Publishing, Licenses, ... | ||
|
|
||
| --- | ||
|
|
||
|
|
@@ -157,15 +167,18 @@ Two parallel branches: | |
|
|
||
| - Contribute something small (but not trivial) to a large-scale open-source simulation software (*"good first issue"*) | ||
| - Examples: feature, tutorial, documentation, new packaging, bugfix, ... | ||
| - Run through complete cycle (issue, discussion, PR, review, merge) | ||
| - Run through the complete cycle (issue, discussion, PR, review, merge) | ||
|
|
||
| ### Timeline | ||
| --- | ||
|
|
||
| ## The Challenge: Timeline | ||
|
|
||
| - Pick a software project to contribute to | ||
| - **Step 1**: Present the software: how you got it, what are main features, some tutorials you did, ... | ||
| - **Step 2**: Present *"RSE infrastructure"* of the software: Which CI / documentation / building / git workflow ... does it use? How do contributions work? | ||
| - Suggest contribution | ||
| - **Step 3**: Present the contribution | ||
| - **Step 1**: Present the software: how you got it, what are the main features, some tutorials you did, ... | ||
| - **Step 2**: Present *"RSE infrastructure"* of the software: Which CI / documentation / building / git workflow ... does it use? How do contributions work? Is there a GenAI policy? | ||
| - Suggest a contribution | ||
| - **Step 3**: Present your contribution | ||
|
|
||
|
|
||
| --- | ||
|
|
||
|
|
@@ -181,19 +194,33 @@ See [GitHub: timetable.md](https://github.com/Simulation-Software-Engineering/Le | |
| - Attendance is mandatory | ||
| - We look at: | ||
| - 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%) | ||
| - Exercises (pass/fail) + interim assessments on the course topics (25%+25%) | ||
| - Engagement (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. | ||
|
|
||
| --- | ||
|
|
||
| ## Examination details | ||
|
|
||
| - Challenge: Must pass every step. | ||
| - Exercises: Collect points | ||
| - Feedback on exercises: pass/fail | ||
| - On each presentation week (morning slot): a few (primarily closed-form) understanding questions | ||
|
|
||
| --- | ||
|
|
||
| ## Examination logistics | ||
|
|
||
| - You will need to register yourself for the *"exam"* on C@MPUS. | ||
| - Last in: The deadline to pick a software | ||
| - Last out: Once you handed in the first report | ||
|
|
||
| --- | ||
|
|
||
| ## GitLab Account | ||
|
|
||
| - Please write a mail till tonight to Gerasimos. | ||
| - Please write an email until tonight to Gerasimos. | ||
| - [gerasimos.chourdakis@ipvs.uni-stuttgart.de](mailto:gerasimos.chourdakis@ipvs.uni-stuttgart.de) | ||
| - Email subject: "GitLab account SSE course" | ||
| - State your **name** and preferred **email-address** | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changed "other" to "engagement" for clarity.