Skip to content
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

Lesson Development #103

Merged
merged 5 commits into from
Aug 7, 2024
Merged
Changes from 3 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
88 changes: 85 additions & 3 deletions content/lesson-development.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,98 @@

:::{objectives}
- Understand how collaborative development of lesson material works
- Understand the design of CodeRefinery lessons
- Be able to contribute to existing CodeRefinery lessons
:::

:::{instructor-note}
- Teaching: ? min
- Exercises: ? min
- Teaching: 30 min
- Exercises: 30 min
:::


Here the episode sections and text ...
# A look over existing lessons (10min)

## Current Tools Workshop

There is a current list of Tools Workshop lessons on
[coderefinery.org/lessons](https://coderefinery.org/lessons).

Days 1-3 focus on the practical use of version control. Version control
is a prerequisite for the somewhat less technical lessons on days 4-6.

One way to understand the structure is that the first 3 days have a
single **learning objective**: applying the forking workflow to interact
with open source codes. The second half branches of to multiple useful
directions.

* **Days 1-2**: [Introduction to version control](https://coderefinery.github.io/git-intro/)
* **Day 3**: [Collaborative distributed version control](https://coderefinery.github.io/git-collaborative/)
* **Day 4**: [Reproducible research](https://coderefinery.github.io/reproducible-research/)
* **Day 4**: [Social coding and open software](https://coderefinery.github.io/social-coding/)
* **Day 5**: [How to document your research software](https://coderefinery.github.io/documentation/)
* **Day 5**: [Jupyter notebooks](https://coderefinery.github.io/jupyter/)
* **Day 6**: [Automated testing](https://coderefinery.github.io/testing/)
* **Day 6**: [Modular code development type-along](https://coderefinery.github.io/modular-type-along/)



## Other lessons


# Backward lesson design (15min)

### Why "Backward"

The "natural" way to design a lesson, that people often default to, is
to write down material you want to cover and then springle in related
exercises. This approach has a couple of significant downsides:
- The content feel meandering and it's unclear what is meant to be learned.
- The exercises and exam may not test the intended learning outcomes.

In backward lesson design we start from the learning objective and the
"final exam" and work backwards from there to

### The method:

1. Understand you learners
2. brainstorm rough ideas
3. Start from learning objectives. Write down 1-3 overarching learning
objectives for the lesson.
- think of the things your learners will
be able to do at the end of the lesson. Think simple! The simpler
the better. Think of three main points they will remember, of which
maybe one or two are a concrete skill.
4. Write an summative assesment for each outcome. Try to think of engaging
and active exercises.
5. For a longer lesson, add intermediate goals and formative assesments
to bridge between the starting point and the learning objective and put them
in a reasonable order.
6. Write just enough material to get from one assessment (exercise) to another.
7. Describe the course so the learners know if it is relevant to them.


# Contributing issues and pull requests (5min)


# Exercises:

## Lesson design exercise (10-20min, or longer)

- Pick a lesson topic. Any of the Tools Workshop lessons are OK,
or you can choose any other topic you might want to teach.
- Write down three learning objectives. What abilities would you
expect the student to have at the end of the lesson?
- Brainstorm an exercise that demonstrates one of those objectives.
- If you have time:
- Create two more exercises
- Write chapter headers for a quick structure


## Contributing exercies (10-20min)

- Read an issue on a CodeRefinery lesson's GitHub page.
- Brainstorm solutions. Write a comment in the issue.


:::{keypoints}
Expand Down
Loading