Skip to content

Templates and Stubs

simon edited this page May 4, 2021 · 24 revisions

Fake Names

To prevent bias, use a name generator whenever you need a hypothetical name. Concrete names and characters can help make material easier to understand.

Lesson

#

## Learning Goals


## Introduction


## Vocabulary and Synonyms

| Vocab | Definition | Synonyms | How to Use in a Sentence
| --- | --- | --- | ---


## Summary

Summaries should only be used for longer, more complex lessons with a lot to summarize. For 90% of lessons, the lessons are "straightforward" enough to not need a summary.

Excluding a summary actually helps keep our lessons high-quality; summaries need to change with _each_ update that a lesson receives. This is less about maintenance cost, and more about the harm that's caused when changes are not reflected in the summary, or the work that needs to go into a summary to maintain the flow, story, narrative, and style.

We can ask students to better summarize a lesson by asking them to check the learning goals and vocab table at the top.

## Check for Understanding



Activity

  • "How to Review" section are things for both the students and instructors to use!
# Activity: 

## Goal

Our goal is

## Preparation (if any needed. Otherwise, remove this section.)

## Activity Instructions



## How to Review


## How to Extend


Tables

Tables That Avoid Extreme Wrapping

Learn markdown supports div elements and inline HTML. This allows us to adjust the width and height of table columns. In order to avoid extreme wrapping within columns, every column header's width must be adjusted. Columns do not need to be uniform widths, as long as the sum of all column widths equals 700px.

<div style="text-align:center;">

| <div style="width:600px;">item</div> | <div style="width:100px;">price</div> |
| -----------------------------------  | -----------------------------------  | 
|              ice cream               |                $2                    |

</div>

Feel free to use markdown preview apps like Markdown Live Preview to test table stylings.

Tables Used to Explain Syntax Piece by Piece (with Pieces of Code)

| <div style="min-width:200px;"> Piece of Code </div> | Notes |
| --- | --- |
| | |

Hidden Content

Content That Conforms to Lesson Width

<details style="max-width: 700px; margin: auto;">
    <summary>
      The visible content
    </summary>

The hidden content
</details>

Images

Image With Simple Caption

![alt text](path_to_img.png)  
*Fig. Caption that is probably the same as the alt text*

Images With a Caption

Note that in this version, markdown does not work in the caption, so if you try to use backticks for code formatting, or bolding, that will not work. Instead, html tags are required. <code> for backticks, or <span style="font-weight: bold;"></span> for bold (though since there's nothing usefully semantic there, maybe <b></b> is fine. For now, we do not recommend using this layout because of this complication, and the requirement of pretty heavy inline styling. To be revisited if Learn gives us stylesheet functionality.

<figure style="max-width: 700px; margin: auto; text-align: center;">
<img src="path_to_img.png" alt="alt text" />
<figcaption style="font-style: italic;">Fig. Caption that is probably the same as the alt text</figcaption>
</figure>

Prettier Ignore for Challenges

Learn syntax requires bullet points to be *, and Prettier formats bullet points to -. Use this syntax around challenges and we'll format all other text.

<!-- prettier-ignore-start -->
### !challenge


### !end-challenge
<!-- prettier-ignore-end -->

TODO: Make a real regex pattern so we can run this multiple times on all files and it doesn't "stack" comments

Prettier Ignore, Deletes Cruft, Empty ID, Multiple Choice

<!-- Question 4 -->
<!-- prettier-ignore-start -->
### !challenge

* type: multiple-choice
* id: 
* title: [text, a short question title]

##### !question

[markdown, your question]

##### !end-question

##### !options

* [Option 1]
* [Option 2]
* [Option 3, etc]

##### !end-options

##### !answer

* [Option 2 (the correct answer)]

##### !end-answer

### !end-challenge
<!-- prettier-ignore-end -->

Prettier Ignore, Deletes Cruft, Empty ID, Python Snippet

Fix the comments (remove the space between < !)

< !-- Question 1 -->
< !-- prettier-ignore-start -->
### !challenge
* type: code-snippet
* language: python3.6
* id: 
* title: 
### !question



### !end-question
### !placeholder

```python
def func_that_always_returns_true():
    pass
```
### !end-placeholder
### !tests
```python
import unittest
from main import *

class TestChallenge(unittest.TestCase):
    def test_returns_true(self):
        self.assertTrue(func_that_always_returns_true())
```
### !end-tests
### !explanation

An example of a working implementation:

```python

```

### !end-explanation
### !end-challenge
< !-- prettier-ignore-end -->

Problem Set

Worksheets and stuff.

# Problem Set: Exception Handling

## Directions

Complete all questions below.

## Practice

Takeaway Question

Fix the comments (remove the space between < !)

< !-- Question Takeaway -->
< !-- prettier-ignore-start -->
### !challenge
* type: paragraph
* id: 
* title: NameOfLesson
##### !question

What was your biggest takeaway from this lesson? Feel free to answer in 1-2 sentences, draw a picture and describe it, or write a poem, an analogy, or a story.

##### !end-question
##### !placeholder

My biggest takeaway from this lesson is...

##### !end-placeholder
### !end-challenge
< !-- prettier-ignore-end -->