Skip to content

Commit 9fd9871

Browse files
authored
Update organization lecture for WT26/27 (#276)
1 parent ee2b064 commit 9fd9871

6 files changed

Lines changed: 146 additions & 88 deletions

File tree

‎00_organization/challenge_intro_slides.md‎

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ slideOptions:
3737
</style>
3838

3939

40-
# Your Challenge: Contribute to Real Simulation Software
40+
# Challenge: Contribute to real simulation software
4141

4242
---
4343

@@ -51,17 +51,17 @@ slideOptions:
5151

5252
## Timeline
5353

54-
- Pick a software (till **Oct 22**, evening)
55-
- **Step 1**: Present the software: how you got it, what are main features, some tutorials you did, ... (**Nov 5**)
56-
- **Step 2**: Present *"RSE infrastructure"* of the software: Which CI / documentation / building / git workflow ... does it use? How do contributions work? (**Dec 17**)
57-
- Suggest contribution (**Dec 17**)
58-
- **Step 3**: Present the contribution (**Feb 4**)
54+
1. Pick a simulation software project
55+
2. **Presentation 1**: How you got the software, what are main features, some tutorials you did, ...
56+
3. **Presentation 2**: *"RSE infrastructure"* of the software:<br/> Which CI / documentation / building / git workflow ... does it use? How do contributions work?
57+
4. Suggest contribution
58+
5. **Presentation 3**: Your contribution
5959

6060
---
6161

6262
## Grading
6363

64-
Challenge / exercises / other = 45% / 50% / 5%
64+
Challenge / exercises / engagement = 45% / 50% / 5%
6565

6666
The challenge part:
6767

@@ -75,17 +75,17 @@ The challenge part:
7575

7676
---
7777

78-
## Example Contributions
78+
## Example contributions
7979

80-
1. Ported several demo cases ([see one](https://github.com/FEniCS/dolfinx/pull/2508)) from FEniCS to [FEniCSx](https://fenicsproject.org/): difficulty *"outstanding"*
80+
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)
8181
2. [Improved website search](https://github.com/MakieOrg/Makie.jl/pull/2474) of [Makie](https://makie.org/website/): difficulty *"good"*
8282
3. [Solved a simple good first issue](https://github.com/pymor/pymor/pull/1898) in [pyMOR](https://pymor.org/): difficulty *"ok"*
8383

8484
(all did a good or outstanding job in terms of quality)
8585

8686
---
8787

88-
## Which Software to Pick?
88+
## Which software to pick?
8989

9090
- Something in the simulation universe (this includes equation solvers, meshing, scientific visualization, (AI), ...)
9191
- Truly open source, all development in public
@@ -108,47 +108,58 @@ The challenge part:
108108
- [Firedrake](https://www.firedrakeproject.org/): FEM library in Python
109109
- [LAMMPS](https://www.lammps.org/): MD simulator
110110
- [MercuryDPM](https://www.mercurydpm.org/home): particle code
111-
- [Nalu-Wind](https://github.com/Exawind/nalu-wind): CFD solver for wind farms
111+
- [MFEM](https://mfem.org/): FEM library in C++
112+
- [NeoFOAM](https://exasim-project.com/NeoFOAM/)
113+
- [Kynema-UGF](https://github.com/kynema/kynema-ugf): CFD solver for wind farms
112114
- [Palabos](https://palabos.unige.ch/): Lattice Boltzmann method solver
113115

114116
---
115117

116118
## Suggestions II
117119

118-
- [OpenFAST](https://www.nrel.gov/wind/nwtc/openfast.html): Multi-fidelity wind turbine simulation tool
119120
- [PETSc](https://petsc.org/): LA library
120-
- [preCICE](https://precice.org/): Coupling library (Stuttgart)
121121
- [pyiron](https://pyiron.org/): Workflow manager in Python
122122
- [pyMOR](https://pymor.org/): MOR library in Python
123123
- [pyLife](https://pylife.readthedocs.io/en/stable/): fatigue of mechanical components in Python
124124
- [SU2](https://su2code.github.io/): CFD code in C++
125125
- [SUNDIALS](https://computing.llnl.gov/projects/sundials): Nonlinear solvers, ODEs
126126
- [TRILINOS](https://trilinos.github.io/): Collection of scientific software libraries, mainly solvers
127127
- [VisIt](https://visit-dav.github.io/visit-website/index.html): Scientific visualization software
128-
- 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)
128+
- more projects in [NumFOCUS](https://numfocus.org/sponsored-projects) or [HiRSE Code Promotion](https://www.helmholtz-hirse.de/promo.html)
129129
- **Or your suggestion** (also agent-based or discrete event simulation software)
130130

131131
---
132132

133-
## What Happens if Maintainers do not React in Time?
133+
## The Challenge: Advice
134+
135+
- Pick something from your background
136+
- Don't choose based on the programming language
137+
- Start early, persist with questions, iterate quickly
138+
- Start with something clear, extend with a second contribution
139+
- Contact us early in case of trouble
140+
- Make reviews easy for maintainers (will return to this)
141+
142+
---
143+
144+
## What happens if maintainers do not react?
134145

135146
- Give them time, contact early
136147
- Not your fault
137148
- Keep all communication public, then easy for us to review
138149

139150
---
140151

141-
## How to Submit my Choice?
152+
## How to submit my choice?
142153

143-
- [https://gitlab-sim.informatik.uni-stuttgart.de/simulation-software-engineering-wite2526/challenge](https://gitlab-sim.informatik.uni-stuttgart.de/simulation-software-engineering-wite2526/challenge)
144-
- 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)
154+
- Challenge repository (see `timetable.md`)
155+
- Comment in `work item #1` till next Wednesday evening (no FCFS)
145156
- Priority list with at least three choices
146-
- If **not** on our suggestion list, write short paragraph what the software does and give links
157+
- If **not** on our suggestion list, motivate and give links
147158
- Add pre-knowledge that you have in the field. For example, if you pick pyMOR, you should know already what MOR is.
148159

149160
---
150161

151-
## Role of Advisor
162+
## Role of advisor
152163

153164
- Felix, Frédéric, Serge, or Gerasimos
154165
- Use, for example, exercise blocks and time before and after lectures for discussions
@@ -169,8 +180,8 @@ The challenge part:
169180

170181
- Submit a report for each step
171182
- 1-2 pages (2500-5000 chars)
172-
- Written in markdown
173-
- Submission via a merge request to the [GitLab challenge repo](https://gitlab-sim.informatik.uni-stuttgart.de/simulation-software-engineering-wite2526/challenge)
183+
- Written in Markdown
184+
- Submission via a merge request to the GitLab challenge repo
174185
- Add links, instructions, ... should work like a compact summary for everybody in the end
175186
- Will be visible to everybody in SSE group
176187
- We will prepare templates

‎00_organization/course_intro_slides.md‎

Lines changed: 60 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -41,38 +41,43 @@ slideOptions:
4141

4242
---
4343

44-
## The Lecturers
44+
## Involved people
4545

46-
- Gerasimos (Chourdakis) [`@MakisH`](https://github.com/MakisH)
47-
- Frédéric (Simonis) [`@fsimonis`](https://github.com/fsimonis)
48-
- Felix (Neubauer) [`@Logende`](https://github.com/Logende)
49-
- On leave this year: Benjamin (Uekermann) [`@uekerman`](https://github.com/uekerman)
46+
- Gerasimos Chourdakis - [`@MakisH`](https://github.com/MakisH)
47+
- Frédéric Simonis - [`@fsimonis`](https://github.com/fsimonis)
48+
- Felix Neubauer - [`@Logende`](https://github.com/Logende)
49+
- Serge Kotchourko - [`@kotserge`](https://github.com/kotserge)
5050

51-
Additional challenge advisors:
52-
53-
- Serge Kotchourko [`@kotserge`](https://github.com/kotserge)
51+
---
5452

55-
SSE Hall of Fame:
53+
## Involved people (2)
5654

57-
- Alexander (Jaust) [`@ajaust`](https://github.com/ajaust)
58-
- Ishaan (Desai) [`@IshaanDesai`](https://github.com/IshaanDesai)
55+
- On leave this year: Benjamin Uekermann - [`@uekerman`](https://github.com/uekerman)
56+
- SSE Hall of Fame:
57+
- Alexander Jaust - [`@ajaust`](https://github.com/ajaust)
58+
- Ishaan Desai - [`@IshaanDesai`](https://github.com/IshaanDesai)
5959

6060
---
6161

62-
## The Idea & Learning Goals
62+
## Learning goals
6363

64-
- No (advanced) programming course
6564
- Learn about all the other things you need to develop research /
6665
simulation software (to become a *"Research Software Engineer"*):
67-
continuous integration, virtualization, building & packaging, documentation, ...
68-
- Focus on tools for C++ and Python
69-
- More than a *"3-days software carpentry workshop on Python and Git"*
66+
continuous integration, containers, building & packaging, documentation, ...
7067
- Learn how to contribute to large-scale open-source simulation software projects
7168
- Learn which important simulation software packages exist and how to use them
7269

7370
---
7471

75-
## Building Blocks
72+
## Specific angle
73+
74+
- No (advanced) programming course (for C++ and Python)
75+
- More than a *"3-days software carpentry workshop on Python and Git"*
76+
- Focus on simulation software
77+
78+
---
79+
80+
## Building blocks
7681

7782
Two parallel branches:
7883

@@ -90,7 +95,7 @@ Two parallel branches:
9095
## Prerequisites: Skills
9196

9297
- Basic programming (Python, C++)
93-
- Basic software development skills (bash, Git, md, ...)
98+
- Basic software development skills (CLI, Git, Markdown, ...)
9499
- Some simulation background
95100
- SimTech, COMMAS students: no issue
96101
- CS, SE: ideally through Numerical Fundamentals (NumGL) and Fundamentals of Scientific Computing (WissRech)
@@ -108,15 +113,15 @@ Two parallel branches:
108113

109114
## Material
110115

111-
- Great open-source book to recap: Irving, Hertweck, Johnston, Ostblom, Wickham, and Wilson: [Research Software Engineering with Python](https://third-bit.com/py-rse/)
112-
- All our material is on [https://github.com/Simulation-Software-Engineering](https://github.com/Simulation-Software-Engineering)
116+
- 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/)
117+
- All our material is on GitHub:<br/> [https://github.com/Simulation-Software-Engineering](https://github.com/Simulation-Software-Engineering)
113118
- 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), ...)
114119
- We rework the material as the semester goes.
115120
- We give links to docs, videos, blog posts, podcasts, ...
116121

117122
---
118123

119-
## Contribute to the Material
124+
## Contribute to the material
120125

121126
- You, no joke :see_no_evil: ([many students already contributed](https://github.com/Simulation-Software-Engineering/Lecture-Material/graphs/contributors))
122127
- Typos, broken links, ...
@@ -133,8 +138,13 @@ Two parallel branches:
133138

134139
- Also changes RSE rapidly
135140
- Even more important: having a good overview of technology and being able to **read** code (what we teach in this course)
136-
- If you use generative AI for your exercises or your challenge: **mandatory** to make this transparent (which parts of your code, how, ...)
141+
- If you use generative AI for your exercises or your challenge: **mandatory** to make this transparent (where, how, ...)
137142
- It is important, experiment! But also build a firm understanding of the basics of technology!
143+
- **Not allowed:** GenAI for communication (reports/exercise PR descriptions).
144+
145+
---
146+
147+
## Goal: Learn
138148

139149
---
140150

@@ -145,7 +155,7 @@ Two parallel branches:
145155
3. Building and Packaging
146156
4. Documentation
147157
5. Testing and Continuous Integration
148-
6. Miscellaneous
158+
6. Miscellaneous: Publishing, Licenses, ...
149159

150160
---
151161

@@ -157,15 +167,18 @@ Two parallel branches:
157167

158168
- Contribute something small (but not trivial) to a large-scale open-source simulation software (*"good first issue"*)
159169
- Examples: feature, tutorial, documentation, new packaging, bugfix, ...
160-
- Run through complete cycle (issue, discussion, PR, review, merge)
170+
- Run through the complete cycle (issue, discussion, PR, review, merge)
161171

162-
### Timeline
172+
---
173+
174+
## The Challenge: Timeline
163175

164176
- Pick a software project to contribute to
165-
- **Step 1**: Present the software: how you got it, what are main features, some tutorials you did, ...
166-
- **Step 2**: Present *"RSE infrastructure"* of the software: Which CI / documentation / building / git workflow ... does it use? How do contributions work?
167-
- Suggest contribution
168-
- **Step 3**: Present the contribution
177+
- **Step 1**: Present the software: how you got it, what are the main features, some tutorials you did, ...
178+
- **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?
179+
- Suggest a contribution
180+
- **Step 3**: Present your contribution
181+
169182

170183
---
171184

@@ -181,19 +194,33 @@ See [GitHub: timetable.md](https://github.com/Simulation-Software-Engineering/Le
181194
- Attendance is mandatory
182195
- We look at:
183196
- Challenge (reports, presentations, contribution; more in the afternoon) (45%)
184-
- Exercises (not every detail, but *"outstanding"* / *"good"* / *"ok"* / *"not enough"* ) (50%)
185-
- Other (e.g. contributions to lecture material, ...) (5%)
197+
- Exercises (pass/fail) + interim assessments on the course topics (25%+25%)
198+
- Engagement (e.g., contributions to lecture material, ...) (5%)
186199
- *"good"* everywhere leads to 1.0.
187200
- We give (brief) feedback after every exercise.
188-
- You will need to register yourself to the *"exam"* on C@MPUS.
201+
202+
---
203+
204+
## Examination details
205+
206+
- Challenge: Must pass every step.
207+
- Exercises: Collect points
208+
- Feedback on exercises: pass/fail
209+
- On each presentation week (morning slot): a few (primarily closed-form) understanding questions
210+
211+
---
212+
213+
## Examination logistics
214+
215+
- You will need to register yourself for the *"exam"* on C@MPUS.
189216
- Last in: The deadline to pick a software
190217
- Last out: Once you handed in the first report
191218

192219
---
193220

194221
## GitLab Account
195222

196-
- Please write a mail till tonight to Gerasimos.
223+
- Please write an email until tonight to Gerasimos.
197224
- [gerasimos.chourdakis@ipvs.uni-stuttgart.de](mailto:gerasimos.chourdakis@ipvs.uni-stuttgart.de)
198225
- Email subject: "GitLab account SSE course"
199226
- State your **name** and preferred **email-address**

‎00_organization/organizational_remarks_week8_slides.md‎

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -33,26 +33,18 @@ slideOptions:
3333
}
3434
</style>
3535

36-
# Organizational Things Week 8
36+
# Organizational remarks
3737

3838
---
3939

40-
## Time Table
40+
## Exam registration
4141

42-
<style>
43-
td {
44-
font-size: 35px
45-
}
46-
</style>
47-
48-
## Exam Registration
49-
50-
- You have to register for the exam node on C@MPUS (we cannot do this for you)
42+
- You have to register for the exam node on C@MPUS<br/> (we cannot do this for you)
5143
- The deadline should be very soon
5244

5345
---
5446

55-
## Challenge First Report: MR Feedback
47+
## Challenge first report: MR feedback
5648

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

6456
---
6557

66-
## Challenge Contribution
58+
## Challenge contribution
6759

6860
- 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.
6961
- Remember the deadline for opening the issue (see timetable)
70-
- If you open earlier, you get feedback earlier
71-
- Latest feedback from supervisors: first course week after Christmas
62+
- If you open earlier, you get feedback earlier (till early January)
7263
- Title of issue: "Contribution to SOFTWARE by USERNAME"
7364
- Tag your supervisor in description
7465
- Get in touch with maintainers early (through official channels)
7566
- Discuss before you start developing
76-

0 commit comments

Comments
 (0)