Skip to content

Commit c280fa4

Browse files
committed
removed the old CoderDojo TC name and the new name is now "Beginning Python"
1 parent 7194027 commit c280fa4

10 files changed

Lines changed: 225 additions & 22 deletions

File tree

CONTENT-GENERATION-GUIDELINES.md

Lines changed: 195 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,195 @@
1+
# Content Generation Guidelines — Beginning Python
2+
3+
This file defines rules for generating student-facing content in this course.
4+
All AI agents and human authors creating lessons, labs, quizzes, or other
5+
student-facing pages must follow these guidelines. Instructor-facing content
6+
(teacher's guide, course description) does not need to use the mascot.
7+
8+
---
9+
10+
## Learning Mascot: Monty the Python
11+
12+
### Mascot File Index
13+
14+
The canonical files for this mascot. When editing any of these, update the
15+
others in the same turn so they stay in sync.
16+
17+
| File | Purpose |
18+
|------|---------|
19+
| [`docs/img/mascot/neutral.png`](docs/img/mascot/neutral.png) | Default / general-purpose pose |
20+
| [`docs/img/mascot/welcome.png`](docs/img/mascot/welcome.png) | Chapter-opening pose |
21+
| [`docs/img/mascot/thinking.png`](docs/img/mascot/thinking.png) | Key-concept pose |
22+
| [`docs/img/mascot/tip.png`](docs/img/mascot/tip.png) | Hint / helpful-guidance pose |
23+
| [`docs/img/mascot/warning.png`](docs/img/mascot/warning.png) | Common-mistake / pitfall pose |
24+
| [`docs/img/mascot/encouraging.png`](docs/img/mascot/encouraging.png) | Difficult-content / struggle pose |
25+
| [`docs/img/mascot/celebration.png`](docs/img/mascot/celebration.png) | End-of-chapter / achievement pose |
26+
| [`docs/css/mascot.css`](docs/css/mascot.css) | Custom admonition styles for the seven pose contexts |
27+
| [`docs/learning-graph/mascot-test.md`](docs/learning-graph/mascot-test.md) | Rendering test page that exercises every admonition style |
28+
29+
### Character Overview
30+
31+
- **Name**: Monty
32+
- **Species**: Python snake
33+
- **Personality**: Curious, encouraging, patient, playful, never sarcastic or intimidating
34+
- **Catchphrase**: "Let's code it together!"
35+
- **Visual**: Friendly cartoon python with bright emerald-green scales, oversized round wire-rim
36+
glasses, large sparkling blue-green eyes, two small expressive arms, and a curling tail.
37+
Flat vector style, transparent background, consistent across all poses.
38+
39+
### Voice Characteristics
40+
41+
- Uses simple, encouraging language appropriate for ages 10–14
42+
- Celebrates small wins — never dismisses a question as "easy"
43+
- Refers to students as "coders" or "programmers"
44+
- Occasionally uses Python puns ("Let's uncoil this problem!", "I've got a hiss-tory of coding!")
45+
- Never uses jargon without defining it first
46+
- Signature phrases: "Let's code it together!", "You've got this!", "Great question!"
47+
48+
### Mascot Admonition Format
49+
50+
**Always** place mascot images in the admonition body, never in the title bar.
51+
Use the Markdown image syntax with the `mascot-admonition-img` class:
52+
53+
```markdown
54+
!!! mascot-welcome "Welcome to This Lesson!"
55+
![Monty waving welcome](../../img/mascot/welcome.png){ class="mascot-admonition-img" }
56+
Admonition text goes here after the image. Keep it to 1–3 sentences.
57+
```
58+
59+
**Image path depth:** The path `../../img/mascot/` is correct for pages two
60+
directories deep (e.g., `skulpt/02-simple-square/` or `trinket/04-loops/`).
61+
For pages at the root of `docs/`, use `img/mascot/`.
62+
For pages one level deep (e.g., `docs/strategy/index.md`), use `../img/mascot/`.
63+
64+
### Placement Rules
65+
66+
| Context | Admonition Type | Image | Frequency |
67+
|---------|----------------|-------|-----------|
68+
| Lesson opening | `mascot-welcome` | `welcome.png` | Once per lesson — always first |
69+
| Key concept or insight | `mascot-thinking` | `thinking.png` | 1–2 per lesson |
70+
| Helpful hint or shortcut | `mascot-tip` | `tip.png` | As needed |
71+
| Common mistake / pitfall | `mascot-warning` | `warning.png` | As needed |
72+
| Difficult content | `mascot-encourage` | `encouraging.png` | Where students may struggle |
73+
| End of lesson / experiments | `mascot-celebration` | `celebration.png` | Once per lesson — always last |
74+
| General sidebar | `mascot-neutral` | `neutral.png` | As needed |
75+
76+
### Hard Limits
77+
78+
- **Maximum 6 mascot admonitions per lesson** — more than this interrupts reading flow
79+
- **No back-to-back mascot admonitions** — always separate with at least one paragraph of content
80+
- **One `mascot-welcome` maximum per lesson** — always at the very start
81+
- **One `mascot-celebration` maximum per lesson** — always at the very end
82+
- Do not use mascot admonitions purely for decoration — every use must add instructional value
83+
84+
### Do's and Don'ts
85+
86+
**Do:**
87+
- Use Monty to introduce new topics warmly at the start of every lesson
88+
- Include the catchphrase "Let's code it together!" in welcome admonitions
89+
- Keep dialogue brief (1–3 sentences maximum)
90+
- Match the pose image to the content type (tip pose for tips, warning pose for warnings)
91+
- Write in Monty's encouraging, kid-friendly voice
92+
93+
**Don't:**
94+
- Use Monty more than 6 times in a single lesson
95+
- Put mascot admonitions back-to-back without intervening content
96+
- Change Monty's personality or make him sound sarcastic or intimidating
97+
- Use `<img>` HTML tags — always use Markdown image syntax with `{ class="mascot-admonition-img" }`
98+
- Place images in the admonition title bar
99+
100+
---
101+
102+
## Skulpt Lab Format
103+
104+
All Skulpt interactive labs share a common structure. When generating a new
105+
Skulpt lab page, follow this template exactly:
106+
107+
### Page Structure
108+
109+
```markdown
110+
# Lesson Title
111+
112+
Brief intro paragraph (1–2 sentences about what the lesson covers).
113+
114+
!!! mascot-welcome "Welcome to This Lesson!"
115+
![Monty waving welcome](../../img/mascot/welcome.png){ class="mascot-admonition-img" }
116+
1–3 sentences from Monty introducing the lesson in his encouraging voice.
117+
118+
## Sample Code
119+
120+
[fenced code block with Python]
121+
122+
## Try It Now
123+
124+
Edit the code below and click **Run** to see the result right on this page.
125+
No account needed — everything runs in your browser.
126+
127+
[Skulpt lab HTML block — see below]
128+
129+
## How It Works
130+
131+
Explanation of the key concepts in the code.
132+
133+
[optional mascot-thinking or mascot-tip admonition here]
134+
135+
## Explanation Table
136+
137+
| Line | What it does |
138+
|------|-------------|
139+
| ... | ... |
140+
141+
[optional mascot-warning admonition if there are common mistakes]
142+
143+
## Experiments
144+
145+
1–5 numbered experiments for students to try.
146+
147+
!!! mascot-celebration "Great Work!"
148+
![Monty celebrating](../../img/mascot/celebration.png){ class="mascot-admonition-img" }
149+
Congratulations! You've completed this lesson. Try the experiments above to go further!
150+
```
151+
152+
### Skulpt HTML Block
153+
154+
Every Skulpt lab uses this exact HTML block. The CDN scripts load Skulpt;
155+
`skulpt.js` (via `extra_javascript`) and `skulpt.css` (via `extra_css`)
156+
provide the shared functions and styles.
157+
158+
```html
159+
<script src="https://skulpt.org/js/skulpt.min.js"></script>
160+
<script src="https://skulpt.org/js/skulpt-stdlib.js"></script>
161+
162+
<div id="skulpt-lab">
163+
<div id="editor-container">
164+
<textarea id="code" spellcheck="false">PYTHON CODE HERE
165+
</textarea>
166+
<div id="button-row">
167+
<button id="run-btn" onclick="runSkulpt()">&#9654; Run</button>
168+
<button id="reset-btn" onclick="resetSkulpt()">&#8635; Reset</button>
169+
</div>
170+
<pre id="output"></pre>
171+
</div>
172+
<div id="canvas-container">
173+
<div id="turtle-target"></div>
174+
</div>
175+
</div>
176+
```
177+
178+
**Rules:**
179+
- The Python code inside `<textarea>` must match the Sample Code block exactly
180+
- Do not add inline `<style>` or `<script>` tags — all CSS/JS is centralized
181+
- The element IDs (`skulpt-lab`, `editor-container`, `code`, `button-row`,
182+
`run-btn`, `reset-btn`, `output`, `canvas-container`, `turtle-target`) must
183+
not be changed — `skulpt.js` depends on them
184+
185+
---
186+
187+
## General Writing Style
188+
189+
- **Audience**: Kids ages 10–14, just after learning Scratch
190+
- **Tone**: Friendly, encouraging, never condescending
191+
- **Sentences**: Short and clear — aim for a 6th-grade reading level
192+
- **Code comments**: Use `#` comments in Python code to explain non-obvious lines
193+
- **Experiments section**: Every lesson must end with 3–5 open-ended experiments
194+
that invite students to modify the code and explore
195+
- **No external links to Trinket** in new Skulpt lessons — these labs are self-contained

docs/advanced/mnist.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Handwritten Digit Classification
22

3-
We will program and train a machine learning model to recognize handwritten numbers. The code for this lesson can be found [here](https://github.com/CoderDojoTC/python/blob/master/advanced/machineLearning/mnist.ipynb).
3+
We will program and train a machine learning model to recognize handwritten numbers. The code for this lesson can be found [here](https://github.com/dmccreary/python/blob/master/advanced/machineLearning/mnist.ipynb).
44

55
## But What *Is* Machine Learnig?
66

docs/advanced/stocks.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Stock Analysis and (Virtual) Trading With Python
22
**Disclaimer - This is NOT Financial advice**
33

4-
Checkout the notebook [here](https://github.com/CoderDojoTC/python/blob/master/advanced/dataAnalysis/stockTrader.ipynb).
4+
Checkout the notebook [here](https://github.com/dmccreary/python/blob/master/advanced/dataAnalysis/stockTrader.ipynb).

docs/css/mascot.css

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
/* ============================================
22
Learning Mascot: Monty the Python
3-
Pedagogical agent for CoderDojo TC Python
4-
CoderDojo brand: primary #642580, accent #41BAC1
3+
Pedagogical agent for Beginning Python
4+
Colors: primary #642580 purple, accent #41BAC1 teal
55
============================================ */
66

77
:root {
8-
--mascot-primary: #642580; /* CoderDojo purple */
9-
--mascot-secondary: #41BAC1; /* CoderDojo teal */
8+
--mascot-primary: #642580; /* primary purple */
9+
--mascot-secondary: #41BAC1; /* accent teal */
1010
--mascot-bg: #f3eaf8; /* light purple tint */
1111
--mascot-border: #7a2f9e; /* medium purple */
1212
--mascot-size: 90px;
@@ -30,7 +30,7 @@
3030
font-size: inherit;
3131
}
3232

33-
/* ---- Welcome (chapter openings) — CoderDojo purple ---- */
33+
/* ---- Welcome (chapter openings) — primary purple ---- */
3434
.md-typeset .admonition.mascot-welcome,
3535
.md-typeset details.mascot-welcome {
3636
border-color: var(--mascot-primary);
@@ -42,7 +42,7 @@
4242
color: white;
4343
}
4444

45-
/* ---- Thinking (key concepts) — CoderDojo teal ---- */
45+
/* ---- Thinking (key concepts) — accent teal ---- */
4646
.md-typeset .admonition.mascot-thinking,
4747
.md-typeset details.mascot-thinking {
4848
border-color: var(--mascot-secondary);

docs/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# CoderDojo Twin Cities Python Resources
1+
# Beginning Python Resources
22
This GitHub repository is for sharing teaching resources to teach Python. This includes hints on getting your Python environments setup up and extensive lesson plans for several environments.
33

44

docs/intermediate/01-intro.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Introduction to Intermediate Python
22

3-
This course assumes you are familiar with beginning concepts in Python such as variables, loops, conditionals, random numbers, functions, function parameters, lists and basic recursion. We strongly suggest that you have completed the [CoderDoj Twin Cities Beginning Python Class](../trinket/00-introduction.md) BEFORE you do the intermediate labs.
3+
This course assumes you are familiar with beginning concepts in Python such as variables, loops, conditionals, random numbers, functions, function parameters, lists and basic recursion. We strongly suggest that you have completed the [Beginning Python Class](../trinket/00-introduction.md) BEFORE you do the intermediate labs.
44

55
Note that you can do the first four lessons using web-based Python programming tools like Trinket.io or repl.it. Starting with lesson #5 on Files you will need to have Python installed on your local computer. Please visit the [Python.org](http://python.org) web site for the installation instructions on your operating systems. You can use the command-line version of Python from a Terminal or shell or you can install one of the Python Integrated Development Environments (IDEs).
66

@@ -11,7 +11,7 @@ The concepts in this course include:
1111
3. [**Checking Data Types of Function Parameters**](./03-data-type-validation.md) - in the beginning course we learned how to pass parameters to functions. Now we learn how to make sure our functions get the data that they expect!
1212
4. [**Maps**](./04-maps.md) - Maps or dictionaries are sets of key-value pairs that are crazy flexible. Unlike a list, where the index can only be fixed sequence of integers starting with 0, the keys in a map can be any integer or string in any order.
1313
5. [**Files**](./05-files.md) - In this lesson we will learn how to open a file and read the data into our program with just a few lines. Not only can we read in data, but we can also write out data! So much power in a few lines of code!
14-
6. [**Images**](./06-images.md) - In our CoderDojo AI Racing League we will be learning how to make a car drive autonomously. But first we need to be able to read in images and display them. In this lab we will show you how easy this is!
14+
6. [**Images**](./06-images.md) - In our AI Racing League we will be learning how to make a car drive autonomously. But first we need to be able to read in images and display them. In this lab we will show you how easy this is!
1515
7. [**Defining Your Own Modules**](./07-modules.md) - In the Beginning Python class we learned how to create functions. Now we learn how to package them up so they are easy for others to use.
1616
8. [**dir() function**](./08-dir.md) - If you ever want to know what functions you can throw at something we got this secret tool called "dir". It really takes the mystery out of what functions you can use and avoids trying to guess what function names are used. Not that guessing games aren't fun!
1717
9. [**Regular expressions**](./09-regex.md) - You sometimes want a list of all the files in a folder that have a .jpg extension for images. This lesson will show you how we can use a shorthand notation to make it easy to specify what files to include and which ones to skip.

docs/intermediate/06-images.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,4 @@ my_image = Image.open("/path/to/image.jpg")
88
my_image.show()
99
```
1010

11-
The CoderDojo AI Racing League will explore more around working with image data.
11+
The AI Racing League will explore more around working with image data.

docs/intermediate/bfsMaze.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ In this lab, we are going to solve a maze with an **algorithm** called **breadth
66

77
* A **queue** is another commonly used data structure. Think of it as a line that we always take from the front of and always add to the back (no budging).
88

9-
First, download the code template found in the ```src/intermediate``` folder of the repository, found [here](https://github.com/CoderDojoTC/python). Then, lets try and implement a solution to solve it!
9+
First, download the code template found in the ```src/intermediate``` folder of the repository, found [here](https://github.com/dmccreary/python). Then, lets try and implement a solution to solve it!
1010

1111
One solution is breadth-first search, or BFS. BFS works by cycling through all possible nodes one hop away from your current position, adding them to a **queue** and then cycling through all of those nodes in the queue to see if they are the solution. Lets see how it is implemented below:
1212

docs/pi/01-intro.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
- [Raspberry Pi Foundation Projects](https://projects.raspberrypi.org/en)
44

5-
- [CoderDojo Pages on the Pi Site](https://projects.raspberrypi.org/en/coderdojo)
5+
- [Raspberry Pi CoderDojo Projects](https://projects.raspberrypi.org/en/coderdojo)
66

77
- [Thonny](https://thonny.org/)Thonny is a Integrated Development Environment for debugging Python code. Unfortunatly, no turtle graphics are supported.
88

mkdocs.yml

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
1-
site_name: 'CoderDojo TC Python'
1+
site_name: 'Beginning Python'
2+
site_description: 'Resources for teaching Python to beginning programmers.'
3+
site_author: 'Dan McCreary'
4+
repo_name: 'GitHub Repo'
5+
repo_url: 'https://github.com/dmccreary/python'
6+
site_url: 'https://dmccreary.github.io/python/'
7+
28
nav:
3-
- CoderDojo TC: https://coderdojotc.github.io/CoderDojoTC/
49
- Beginning Python - Trinket:
510
- Introduction: trinket/00-introduction.md
611
- Setting Up Trinket: trinket/01a-trinket-account.md
@@ -28,6 +33,8 @@ nav:
2833
- Beginning Python - Skulpt (self-hosted):
2934
- Draw a Square: skulpt/02-simple-square.md
3035
- Stop Sign: skulpt/04a-stop-sign.md
36+
- Reference:
37+
- Mascot Style Guide: learning-graph/mascot-test.md
3138
- Beginning Python - Repl.it:
3239
- Square: repl/02-square.md
3340
- Flower: repl/07-flower.md
@@ -70,16 +77,13 @@ nav:
7077
- Contact:
7178
- Contact: contact.md
7279

73-
site_description: 'Resources for teaching Python to CoderDojo Twin Cities students.'
74-
site_author: 'Dan McCreary'
75-
repo_name: 'GitHub Repo'
76-
repo_url: 'https://github.com/CoderDojoTC/python'
7780

78-
# CoderDojo Standards from here down
81+
82+
# Site configuration
7983
edit_uri: 'blob/master/docs'
8084
theme:
8185
name: material
82-
logo: img/coderdojo-logo.png
86+
logo: img/python-logo.jpeg
8387
palette:
8488
primary: '#642580'
8589
accent: '#41BAC1'
@@ -89,7 +93,10 @@ theme:
8993
include_sidebar: true
9094
markdown_extensions:
9195
- admonition
96+
- attr_list
9297
- footnotes
98+
- md_in_html
99+
- pymdownx.details
93100
- pymdownx.highlight
94101
- pymdownx.superfences
95102
- toc:
@@ -98,6 +105,7 @@ plugins:
98105
- search
99106
extra_css:
100107
- css/skulpt.css
108+
- css/mascot.css
101109
extra_javascript:
102110
- js/skulpt.js
103111
# Google Analytics Site ID: G-EP38Z3PVD5

0 commit comments

Comments
 (0)