Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 33 additions & 22 deletions 00_organization/challenge_intro_slides.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ slideOptions:
</style>


# Your Challenge: Contribute to Real Simulation Software
# Challenge: Contribute to real simulation software

---

Expand All @@ -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%

Copy link
Copy Markdown
Contributor Author

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.


The challenge part:

Expand All @@ -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
Expand All @@ -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

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In this list:

  • Nalu-Wind has been renamed to Kynema-UGF
  • Added MFEM (qualifies as-is), NeoFOAM (asked maintainers)
  • Removed OpenFAST (seems to not be developing actively right now)
  • Removed preCICE (as previously discussed: it helps the goals of the course and decouples from our maintainer role)
  • Removed xSDK (website disappeared).

- [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

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The 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
Expand All @@ -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
93 changes: 60 additions & 33 deletions 00_organization/course_intro_slides.md
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

- 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:

Expand All @@ -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)
Expand All @@ -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, ...
Expand All @@ -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

---

Expand All @@ -145,7 +155,7 @@ Two parallel branches:
3. Building and Packaging
4. Documentation
5. Testing and Continuous Integration
6. Miscellaneous
6. Miscellaneous: Publishing, Licenses, ...

---

Expand All @@ -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


---

Expand All @@ -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**
Expand Down
22 changes: 6 additions & 16 deletions 00_organization/organizational_remarks_week8_slides.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,26 +33,18 @@ slideOptions:
}
</style>

# Organizational Things Week 8
# Organizational remarks

---

## Time Table
## Exam registration

<style>
td {
font-size: 35px
}
</style>

## Exam Registration

- You have to register for the exam node on C@MPUS (we cannot do this for you)
- You have to register for the exam node on C@MPUS<br/> (we cannot do this for you)
- The deadline should be very soon

---

## Challenge First Report: MR Feedback
## Challenge first report: MR feedback

- Try to write good MR titles and descriptions
- Resolve threads when comments are answered, done, or dropped
Expand All @@ -63,14 +55,12 @@ td {

---

## Challenge Contribution
## Challenge contribution

- Please open an issue in the Challenge repo explaining what you want to work on in the contribution. We will then use these issues to further discuss the progress of the contribution. Provide links to issues, pull requests etc.
- Remember the deadline for opening the issue (see timetable)
- If you open earlier, you get feedback earlier
- Latest feedback from supervisors: first course week after Christmas
- If you open earlier, you get feedback earlier (till early January)
- Title of issue: "Contribution to SOFTWARE by USERNAME"
- Tag your supervisor in description
- Get in touch with maintainers early (through official channels)
- Discuss before you start developing

Loading
Loading