Skip to content

Commit e7adee0

Browse files
committed
deploy: 95c3704
0 parents  commit e7adee0

File tree

1,349 files changed

+237625
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,349 files changed

+237625
-0
lines changed

.buildinfo

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# Sphinx build info version 1
2+
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
3+
config: 2c513b0805f5f2845220e7a669544077
4+
tags: d77d1c0d9ca2f4c8421862c7c5a0d620

.nojekyll

Whitespace-only changes.

CodeRefinery_intro/index.html

+262
Large diffs are not rendered by default.

_images/hackmd--controls.png

38.1 KB
Loading

_images/hackmd--full-demo.png

423 KB
Loading

_images/hackmd--questions2.png

71.1 KB
Loading

_images/history-landscape-dark.png

338 KB
Loading

_images/history-portrait-dark.png

339 KB
Loading

_images/history-portrait-light.png

395 KB
Loading

_images/history-portrait.png

768 KB
Loading

_images/history-rsh.png

447 KB
Loading

_images/instructor.png

1.11 MB
Loading

_images/landscape.png

944 KB
Loading

_images/learner-large.png

534 KB
Loading

_images/learner-normal.png

932 KB
Loading

_images/learner-small.png

332 KB
Loading

_images/portrait.png

396 KB
Loading

_images/survey-impact1.png

38.6 KB
Loading

_images/survey-impact2.png

47.2 KB
Loading

_sources/CodeRefinery_intro.md.txt

+98
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# About the CodeRefinery project and CodeRefinery workshops in general
2+
3+
```{keypoints}
4+
- Teaches intermediate-level software development tool lessons
5+
- Training network for other lessons, too
6+
- Publicly-funded discrete projects (3 projects actually) transitioning towards an open community project
7+
- We have online material, teaching, and exercise sessions
8+
- We want more people to work with us, and to work with more people
9+
```
10+
11+
CodeRefinery is a
12+
[Nordic e-Infrastructure Collaboration (NeIC)](https://neic.no/)
13+
project that has started in October 2016 and is
14+
funded until February 2025.
15+
16+
The funding from 2022-2025 is designed to keep this project active
17+
beyond 2025 by forming a support network and building a community of
18+
instructors and contributors.
19+
20+
```{discussion} History
21+
22+
The CodeRefinery project idea grew out of two [SeSE](http://sese.nu) courses given at KTH Stockholm in 2014 and 2016.
23+
The project proposal itself was submitted to NeIC in 2015, accepted in 2015, and started in 2016.
24+
25+
We have started by porting own lessons to the Carpentries teaching style and
26+
format, and collaboratively and iteratively grew and improved the material to
27+
its present form.
28+
```
29+
30+
31+
## Main goals
32+
33+
- Develop and maintain **training material on software best practices** for researchers that already write code. Our material addresses all academic disciplines and tries to be as programming language-independent as possible.
34+
- Provide a [code repository hosting service](https://coderefinery.org/repository/) that is open and free for all researchers based in universities and research institutes from Nordic countries.
35+
- Provide **training opportunities** in the Nordics using (Carpentries and) CodeRefinery training materials.
36+
- Articulate and implement the CodeRefinery **sustainability plan**.
37+
38+
39+
## Impact
40+
41+
We collect feedback and survey results to measure our impact.
42+
43+
3-24 months after attending a workshop, past participants are asked to complete a short post-workshop survey.
44+
The survey questions aim to establish what impact CodeRefinery workshops have on how past participants develop
45+
research software.
46+
47+
[Pre- and post-workshop survey results](https://coderefinery.org/about/impact/)
48+
49+
- Overall quality of research software has improved: more reusable, modular, reproducible and documented.
50+
- Collaboration on research software development has become easier
51+
- Past participants share their new knowledge with colleagues
52+
- Usage of several tools is improved, and new tools are adopted
53+
54+
[Free-form answers](https://coderefinery.org/#what-do-our-participants-say-after-attending-a-workshop)
55+
also suggest that workshops are having the intended effects on how people develop code. A common theme is:
56+
57+
> *I wish I had known this stuff already as a grad student 10+ years ago...*
58+
59+
We would love to get suggestions on how we can better quantify our impact. This
60+
would make it easier for us to convince institutions to partner with us and
61+
also open up funding opportunities.
62+
63+
## Target audience
64+
65+
### Carpentries audience
66+
67+
The Carpentries aims to teach computational **competence** to learners through an applied approach, avoiding the theoretical and general in favor of the practical and specific.
68+
69+
**Mostly, learners do not need to have any prior experience in programming.** One major goal of a Carpentry workshop is to raise awareness on the tools researchers can learn/use to speed up their research.
70+
71+
By showing learners how to solve specific problems with specific tools and providing hands-on practice, learners develops confidence for future learning.
72+
73+
> ## Novices
74+
> We often qualify Carpentry learners as **novices**: they do not know what they need to learn yet. A typical example is the usage of version control: the Carpentry `git` lesson aims to give a
75+
> very high level conceptual overview of Git but it does not explain how it can be used in research projects.
76+
{: .callout}
77+
78+
79+
### CodeRefinery audience
80+
81+
In that sense, CodeRefinery workshops differ from Carpentry workshops as we assume our audience already writes code and scripts and we aim at teaching them **best software practices**.
82+
83+
Our learners usually do not have a good overview of **best software practices** but are aware of the need to learn them. Very often, they know the tools (Git, Jupyter, etc.) we are teaching
84+
but have difficulties to make the best use of them in their software development workflow.
85+
86+
Whenever we can, we direct learners that do not have sufficient coding experience to Carpentries workshops.
87+
88+
> ## Competent practitioners
89+
> We often qualify CodeRefinery learners as **competent practitioners** because they already have an understanding of their needs.
90+
{: .callout}
91+
92+
> ## Best software practices for whom?
93+
> It can be useful to ask the question: *best software practices for whom*?
94+
> CodeRefinery teaches *best software practices* derived from producing and
95+
> shipping software. These practices are also very good for sharing software,
96+
> though our audience will probably not need to embrace *all* aspects of
97+
> software engineering.
98+
{: .callout}

_sources/co-teaching.md.txt

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
(co-teaching)=
2+
3+
# Co-teaching
4+
5+
:::{objectives}
6+
- Get to know the principle of co-teaching: How we do it and how you can too.
7+
:::
8+
9+
:::{instructor-note}
10+
- Teaching: ? min
11+
- Exercises: ? min
12+
:::
13+
14+
Why teach together?
15+
-------------------
16+
17+
It has been said **a lot**, especially in areas such as code development or scientific research, about the value of collaboration.
18+
Yet still today, the effort of teaching is made alone far too often: a person decides to share their knowledge (or gets assigned a study module) and starts building the actual teaching material basically from scratch.
19+
It seems much more logical, in the age of FAIR science and open knowledge, to release, develop, iterate, and maintain teaching material -- including the contact sessions -- **collaboratively** as well.
20+
21+
Ways to teach together
22+
----------------------
23+
24+
* Develop materials together - avoid duplication.
25+
* Present the materials together ("proper" co-teaching, see [Team teaching section](https://coderefinery.github.io/manuals/team-teaching/) on the CR manual).
26+
* Use helpers extensively to tackle specific tasks commonly arising in online teaching process.
27+
* Involve your learners too, e.g. using collaborative document (such as HackMD) for parallel and mass answers.
28+
29+
Advantages
30+
----------
31+
32+
* If you need to teach anyway, combined efforts take up less time.
33+
* More engaging to the audience, taking some of the (sometimes daunting) expectation to "speak up" off of the students.
34+
* Easier on-boarding of new instructors -- one of them can be learning at the same time, either subtleties of the material or the teaching itself.
35+
* [Swiss-cheese](https://en.wikipedia.org/wiki/Swiss_cheese_model) principle: two "imperfect" teachers are __much__ easier to find and complement each other than the extensively-prepared, absolute expert.
36+
37+
Challenges
38+
----------
39+
40+
* Additional effort needed of teacher and/or helper coordination -- including syncing up their schedules!
41+
* Materials might need to be (hopefully slightly) tuned to a specific target audience.
42+
* Using simultaneous-teaching strategies is a learned skill, not identical to the classical lecturing.
43+
* Online tools (HackMD, type-alongs) can potentially overload learners and teachers alike, if not used with care.
44+
45+
:::{exercise}
46+
(What's better here -- practical exercise or discussion?)
47+
:::
48+
49+
(TODO: Here goes the rest of the episode sections and text)
50+
51+
52+
:::{keypoints}
53+
- Here we summarize keypoints.
54+
:::

0 commit comments

Comments
 (0)