├── README.md ├── amending.md ├── ccp ├── images │ └── projects │ │ ├── challenge.png │ │ ├── embed.png │ │ ├── folder.png │ │ ├── md.png │ │ ├── save.png │ │ ├── scratch-code.png │ │ ├── scratch-output.png │ │ └── test.png └── projects.md ├── ccw ├── images │ ├── projects │ │ ├── challenge.png │ │ ├── embed.png │ │ ├── folder.png │ │ ├── md.png │ │ ├── save.png │ │ ├── scratch-code.png │ │ ├── scratch-output.png │ │ └── test.png │ └── translating │ │ ├── manifest.png │ │ └── sample.png ├── projects.md └── translating.md ├── contributing.md ├── curriculum.md ├── images ├── amending │ ├── edit.png │ └── preview.png ├── contributing │ ├── clone-success.png │ ├── clone.png │ ├── commit.png │ ├── fork-success.png │ ├── fork.png │ ├── pull-request.png │ ├── pull-request2.png │ └── sync.png ├── mapping │ ├── html1map.png │ ├── python1map.png │ ├── python2map.png │ ├── scratch1map.png │ └── scratch2map.png ├── projects │ ├── challenge.png │ ├── embed.png │ ├── folder.png │ ├── md.png │ ├── save.png │ ├── scratch-code.png │ ├── scratch-output.png │ └── test.png └── translating │ ├── manifest.png │ └── sample.png ├── mapintro.md ├── project-guidelines.md ├── projects.md └── translating.md /README.md: -------------------------------------------------------------------------------- 1 | ## Curriculum Documentation 2 | 3 | + [Curriculum](curriculum.md) 4 | 5 | 6 | + [Contributing to our curriculum](contributing.md) 7 | + [Amending Projects](amending.md) 8 | + projects.codeclubworld.org non-en-GB projects: 9 | + [Writing new projects](ccw/projects.md) 10 | + [Translating projects](ccw/translating.md) 11 | + codeclubprojects.org en-GB projects: 12 | + [Writing new projects](ccp/projects.md) 13 | + [Project Guidelines](project-guidelines.md) 14 | 15 | 16 | + [Curriculum skills mapping](mapintro.md): 17 | 18 | -------------------------------------------------------------------------------- /amending.md: -------------------------------------------------------------------------------- 1 | # Making Amendments to a Project 2 | (these notes are under construction!) 3 | 4 | ## 0. Introduction 5 | 6 | This guide explains how to make small amendments to a project. There are more notes for making bigger contributions, such as [adding new projects](projects.md) or [translating existing projects](translating.md) 7 | 8 | If you're amending a project and need additional support, you can email projects@raspberrypi.org. 9 | 10 | __To contribute a project to our curriculum, you'll need your own copy of the projects. There are instructions on how to do this in the main [contributing](contributing.md) notes.__ 11 | 12 | ## 1. Edit a File 13 | 14 | + In the project repository, find the file you want to edit. Projects are separated by language. 15 | 16 | + Click 'edit'. 17 | 18 | ![screenshot](images/amending/edit.png) 19 | 20 | + Make any changes. If you need additional help, there's a guide to [writing a project](projects.md). You can also click 'preview' to see your changes. 21 | 22 | ![screenshot](images/amending/preview.png) 23 | 24 | ## 2. You're done! 25 | 26 | Go back to the main notes on [contributing](contributing.md) to see how to upload your changes. 27 | -------------------------------------------------------------------------------- /ccp/images/projects/challenge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccp/images/projects/challenge.png -------------------------------------------------------------------------------- /ccp/images/projects/embed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccp/images/projects/embed.png -------------------------------------------------------------------------------- /ccp/images/projects/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccp/images/projects/folder.png -------------------------------------------------------------------------------- /ccp/images/projects/md.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccp/images/projects/md.png -------------------------------------------------------------------------------- /ccp/images/projects/save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccp/images/projects/save.png -------------------------------------------------------------------------------- /ccp/images/projects/scratch-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccp/images/projects/scratch-code.png -------------------------------------------------------------------------------- /ccp/images/projects/scratch-output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccp/images/projects/scratch-output.png -------------------------------------------------------------------------------- /ccp/images/projects/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccp/images/projects/test.png -------------------------------------------------------------------------------- /ccp/projects.md: -------------------------------------------------------------------------------- 1 | # Writing a New Project 2 | (these notes are under construction!) 3 | 4 | ## 0. Introduction 5 | 6 | This guide explains how to write a new project for our [codeclubprojects.org](https://codeclubprojects.org) site. If you encounter a problem, remember that you can look at existing projects to see how it's done! 7 | 8 | If you're writing a project and need additional support, you can email projects@codeclub.org.uk. 9 | 10 | __To contribute a project to our curriculum, you'll need your own copy of the projects. There are instructions on how to do this in the main [contributing](../contributing.md) notes.__ 11 | 12 | ## 1. Using the project template. 13 | 14 | + In the projects repository, find the folder called 'Project Template'. 15 | 16 | ![screenshot](/images/projects/folder.png) 17 | 18 | + Copy and paste this folder, and rename the copied folder with the name of your project. 19 | 20 | + You should see 3 files with `.md` extensions: 21 | 22 | + `index.md` - the file containing the project instructions; 23 | + `Project Template - notes.md` - the file containing the club leader notes; 24 | + `materials.md` - the file referencing the materials needed to complete the project. 25 | 26 | ![screenshot](/images/projects/md.png) 27 | 28 | These files contain 'markdown', which is used to generate projects on the Code Club website. 29 | 30 | 31 | ## 2. Write your project. 32 | 33 | Open the `index.md` file in a text editor. You can edit this document by adding in your project instructions. Your project may contain some (or all) of the following: 34 | 35 | ### File Properties 36 | 37 | You should change the title and description of the project. 38 | 39 | ``` 40 | --- 41 | title: ProjectName 42 | description: Add a description here. 43 | layout: project 44 | notes: "notes.md" 45 | new: true 46 | project-type: community 47 | --- 48 | ``` 49 | 50 | ### Activities 51 | 52 | You should break your instructions down into separate activities. Each activity should have an 'activity' heading, which can be added by using the following markdown: 53 | 54 | `#Step 1: Step name goes here {.activity}` 55 | 56 | Underneath this heading you should briefly explain the step children are about to undertake. 57 | 58 | ### Activity Checklist 59 | 60 | Each step should contain a checklist of activities. To display the 'checklist' graphic, you should include this markdown underneath the activity description: 61 | 62 | `## Activity Checklist {.check}` 63 | 64 | ### Activity Steps 65 | 66 | Each step should start with a `+` or a `*`, which will give the step a checkbox. If your step contains multiple paragraphs, or an image, these should be indented by pressing the 'Tab' key. 67 | 68 | ``` 69 | + Step 1 70 | + Step 2 71 | ``` 72 | 73 | ### Bold and Italic Text 74 | 75 | You can add text in _italics_ by placing an underscore or a star around the text: 76 | 77 | `_italicised text_` or `*italicised text*` 78 | 79 | You can add text in __bold__ by placing two underscores or stars around the text: 80 | 81 | `__bold text__` or `**bold text**` 82 | 83 | ### Code 84 | 85 | You can add some code to your notes `like this`, by adding backticks (`` ` ``) around the text. 86 | 87 | `` here is some code: `move (10) steps` `` 88 | 89 | You can also format Scratch code, so that the colour matches the associated Scratch block colour (for example `{.blockdata}` for variables). There are some examples of this in the Scratch project template. 90 | 91 | `` here is a `score` {.blockdata} variable `` 92 | 93 | ![screenshot](/images/projects/scratch-code.png) 94 | 95 | ### Images 96 | 97 | The markdown needed to add an image is: 98 | 99 | `![alt text](path/imageName.png)` 100 | 101 | The path can be omitted if the image is in the same folder as the project markdown file. 102 | 103 | ### Hyperlinks 104 | 105 | A hyperlink can be added through similar markdown: 106 | 107 | `[link text](url)` 108 | 109 | ### Testing 110 | 111 | You should regularly ask children to test their project, so that they can see the effects of the code they're creating. You can even use these points as opportunities to fix bugs and improve code. 112 | 113 | The markdown for adding in a test point is: 114 | 115 | `## Test your project {.flag}` 116 | 117 | ![screenshot](/images/projects/test.png) 118 | 119 | ### Saving 120 | 121 | You should also regularly remind children to save their work, by using this markdown: 122 | 123 | `## Save your project {.save}` 124 | 125 | ![screenshot](/images/projects/save.png) 126 | 127 | ### Challenges 128 | 129 | You should add at least 1 challenge, to allow children to apply what they've during the project. You can ask children to fix a problem or improve or adapt their project in some way. The markdown for adding a challenge is: 130 | 131 | `## Challenge: Challenge name {.challenge}` 132 | 133 | ![screenshot](/images/projects/challenge.png) 134 | 135 | ### Scratch Code Blocks 136 | 137 | For Scratch projects, code blocks should be contained within 3 backticks, for example: 138 | 139 | ``` 140 | ```blocks 141 | when flag clicked 142 | point in direction (120 v) 143 | set pen color to [#FF0000] 144 | pen down 145 | forever 146 | move (1) steps 147 | if on edge, bounce 148 | end``` 149 | ``` 150 | 151 | The code above produces the following image: 152 | 153 | ![screenshot](/images/projects/scratch-output.png) 154 | 155 | You can [test](http://scratchblocks.codeclub.org.uk) your Scratch code, and there is a [guide](http://wiki.scratch.mit.edu/wiki/Block_Plugin/Syntax) to adding Scratch blocks to your project notes. You can even automatically generate Scratch code [directly from your online Scratch project](http://scratchblocks.codeclub.org.uk/generator/). 156 | 157 | ### Embedded Scratch Projects 158 | 159 | For Scratch projects, you can also add an embedded version of the final project, so that children can see what they are working towards. Don't worry, children won't be able to see the code! This is done by adding the following HMTL after the introduction: 160 | 161 | ``` 162 |
163 | 164 | 165 |
166 | ``` 167 | 168 | Simply replace the URL with the URL of your finished project, and remember to include a static screenshot image for the PDF version of the project notes. 169 | 170 | ![screenshot](/images/projects/embed.png) 171 | 172 | ## 3. Notes for Club Leaders 173 | 174 | Each project should have an associated 'notes' markdown file, giving the volunteer useful information for using the project with their Code Club. 175 | 176 | The project notes template can simply be modified for your project, and contains the following sections: 177 | 178 | ### Notes File Properties 179 | You should change the title and the language of the project (if necessary). 180 | 181 | ``` 182 | --- 183 | title: ProjectName — Volunteer Notes 184 | --- 185 | ``` 186 | 187 | ### Introduction 188 | Explain the project, focusing on what children will learn. Remember that these notes will be read by club leaders and not children. 189 | 190 | ### Resources 191 | You should include a completed version of your project to help club leaders. This file should be in the folder called 'Club Leader Resources'. You'll need to change the filenames in the notes to match the name of your project. 192 | 193 | For Scratch projects, you should also link to an online version of your completed project. Again, you should replace the URL of the sample project with a link to your completed project. 194 | 195 | If your project requires any additional resources (such as images), you should add them to the folder called 'Project Resources'. Again, modify the names of any files in the notes. 196 | 197 | ### Learning Objectives 198 | List the skills that your new project teaches or consolidates. This can be a key programming skill (such as variables or loops), or a general skill like game design, problem solving, collaboration, etc. 199 | 200 | ### Challenges 201 | You should add at least 1 challenge to your project, to allow children to apply what they've learnt during the project. You can even ask children to fix a problem or improve or adapt their project in some way. 202 | 203 | List the names of the challenges in your project, along with a brief description of the activity children will undertake. 204 | 205 | ### Frequently Asked Questions 206 | You can also add answers to common questions here. This will help club leaders when undertaking your new project with children. This section can be removed if it is not necessary. 207 | 208 | ## 4. Project Materials 209 | 210 | Add the project materials to the `project-resources` and/or `volunteer-resources` files. Files neccessary to complete the project should be added to the `project-resources` folder, and completed sample projects added to the `volunteer-resources` folder. 211 | 212 | filenames of both project and volunteer resources should then be added to the `materials.md` file: 213 | 214 | ``` 215 | --- 216 | title: ProjectName - Materials 217 | layout: materials 218 | volunteer-resources: 219 | project-resources: 220 | --- 221 | ``` 222 | 223 | ## 5. You're done! 224 | 225 | Go back to the main notes on [contributing](../contributing.md) to see how to upload your new project. 226 | -------------------------------------------------------------------------------- /ccw/images/projects/challenge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccw/images/projects/challenge.png -------------------------------------------------------------------------------- /ccw/images/projects/embed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccw/images/projects/embed.png -------------------------------------------------------------------------------- /ccw/images/projects/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccw/images/projects/folder.png -------------------------------------------------------------------------------- /ccw/images/projects/md.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccw/images/projects/md.png -------------------------------------------------------------------------------- /ccw/images/projects/save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccw/images/projects/save.png -------------------------------------------------------------------------------- /ccw/images/projects/scratch-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccw/images/projects/scratch-code.png -------------------------------------------------------------------------------- /ccw/images/projects/scratch-output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccw/images/projects/scratch-output.png -------------------------------------------------------------------------------- /ccw/images/projects/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccw/images/projects/test.png -------------------------------------------------------------------------------- /ccw/images/translating/manifest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccw/images/translating/manifest.png -------------------------------------------------------------------------------- /ccw/images/translating/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/ccw/images/translating/sample.png -------------------------------------------------------------------------------- /ccw/projects.md: -------------------------------------------------------------------------------- 1 | # Writing a New Project 2 | (these notes are under construction!) 3 | 4 | ## 0. Introduction 5 | 6 | This guide explains how to write a new project for our curriculum. If you encounter a problem, remember that you can look at existing projects to see how it's done! 7 | 8 | If you're writing a project and need additional support, you can email projects@raspberrypi.org. 9 | 10 | __To contribute a project to our curriculum, you'll need your own copy of the projects. There are instructions on how to do this in the main [contributing](../contributing.md) notes.__ 11 | 12 | ## 1. Using the project template. 13 | 14 | + In the projects repository, find the folder called 'Project Template'. 15 | 16 | ![screenshot](/images/projects/folder.png) 17 | 18 | + Copy and paste this folder, and rename the copied folder with the name of your project. 19 | 20 | + You should see 2 files with `.md` extensions: 21 | 22 | + `Project Template.md` - the file containing the project instructions; 23 | + `Project Template - notes.md` - the file containing the club leader notes. 24 | 25 | ![screenshot](/images/projects/md.png) 26 | 27 | These files contain 'markdown', which is used to generate projects on the Code Club website. Rename these 2 files with the name of your project. 28 | 29 | ## 2. Write your project. 30 | 31 | Open the `[project name].md` file in a text editor. You can edit this document by adding in your project instructions. Your project may contain some (or all) of the following: 32 | 33 | ### File Properties 34 | 35 | You should change the title and the language of the project (if necessary). 36 | 37 | ``` 38 | --- 39 | title: Project Template 40 | level: Scratch + 41 | language: en-GB 42 | stylesheet: scratch 43 | embeds: "*.png" 44 | materials: ["Club Leader Resources/*","Project Resources/*"] 45 | ... 46 | ``` 47 | 48 | ### Activities 49 | 50 | You should break your instructions down into separate activities. Each activity should have an 'activity' heading, which can be added by using the following markdown: 51 | 52 | `#Step 1: Step name goes here {.activity}` 53 | 54 | Underneath this heading you should briefly explain the step children are about to undertake. 55 | 56 | ### Activity Checklist 57 | 58 | Each step should contain a checklist of activities. To display the 'checklist' graphic, you should include this markdown underneath the activity description: 59 | 60 | `## Activity Checklist {.check}` 61 | 62 | ### Activity Steps 63 | 64 | Each step should start with a `+` or a `*`, which will give the step a checkbox. If your step contains multiple paragraphs, or an image, these should be indented by pressing the 'Tab' key. 65 | 66 | ``` 67 | + Step 1 68 | + Step 2 69 | ``` 70 | 71 | ### Bold and Italic Text 72 | 73 | You can add text in _italics_ by placing an underscore or a star around the text: 74 | 75 | `_italicised text_` or `*italicised text*` 76 | 77 | You can add text in __bold__ by placing two underscores or stars around the text: 78 | 79 | `__bold text__` or `**bold text**` 80 | 81 | ### Code 82 | 83 | You can add some code to your notes `like this`, by adding backticks (`` ` ``) around the text. 84 | 85 | `` here is some code: `move (10) steps` `` 86 | 87 | You can also format Scratch code, so that the colour matches the associated Scratch block colour (for example `{.blockdata}` for variables). There are some examples of this in the Scratch project template. 88 | 89 | `` here is a `score` {.blockdata} variable `` 90 | 91 | ![screenshot](/images/projects/scratch-code.png) 92 | 93 | ### Images 94 | 95 | The markdown needed to add an image is: 96 | 97 | `![alt text](path/imageName.png)` 98 | 99 | The path can be omitted if the image is in the same folder as the project markdown file. 100 | 101 | ### Hyperlinks 102 | 103 | A hyperlink can be added through similar markdown: 104 | 105 | `[link text](url)` 106 | 107 | ### Testing 108 | 109 | You should regularly ask children to test their project, so that they can see the effects of the code they're creating. You can even use these points as opportunities to fix bugs and improve code. 110 | 111 | The markdown for adding in a test point is: 112 | 113 | `## Test your project {.flag}` 114 | 115 | ![screenshot](/images/projects/test.png) 116 | 117 | ### Saving 118 | 119 | You should also regularly remind children to save their work, by using this markdown: 120 | 121 | `## Save your project {.save}` 122 | 123 | ![screenshot](/images/projects/save.png) 124 | 125 | ### Challenges 126 | 127 | You should add at least 1 challenge, to allow children to apply what they've during the project. You can ask children to fix a problem or improve or adapt their project in some way. The markdown for adding a challenge is: 128 | 129 | `## Challenge: Challenge name {.challenge}` 130 | 131 | ![screenshot](/images/projects/challenge.png) 132 | 133 | ### Scratch Code Blocks 134 | 135 | For Scratch projects, code blocks should be contained within 3 backticks, for example: 136 | 137 | ``` 138 | ```blocks 139 | when flag clicked 140 | point in direction (120 v) 141 | set pen color to [#FF0000] 142 | pen down 143 | forever 144 | move (1) steps 145 | if on edge, bounce 146 | end``` 147 | ``` 148 | 149 | The code above produces the following image: 150 | 151 | ![screenshot](/images/projects/scratch-output.png) 152 | 153 | You can [test](http://scratchblocks.codeclub.org.uk) your Scratch code, and there is a [guide](http://wiki.scratch.mit.edu/wiki/Block_Plugin/Syntax) to adding Scratch blocks to your project notes. You can even automatically generate Scratch code [directly from your online Scratch project](http://scratchblocks.codeclub.org.uk/generator/). 154 | 155 | ### Embedded Scratch Projects 156 | 157 | For Scratch projects, you can also add an embedded version of the final project, so that children can see what they are working towards. Don't worry, children won't be able to see the code! This is done by adding the following HMTL after the introduction: 158 | 159 | ``` 160 |
161 | 162 | 163 |
164 | ``` 165 | 166 | Simply replace the URL with the URL of your finished project, and remember to include a static screenshot image for the PDF version of the project notes. 167 | 168 | ![screenshot](/images/projects/embed.png) 169 | 170 | ## 3. Notes for Club Leaders 171 | 172 | Each project should have an associated 'notes' markdown file, giving the volunteer useful information for using the project with their Code Club. 173 | 174 | The project notes template can simply be modified for your project, and contains the following sections: 175 | 176 | ### Notes File Properties 177 | You should change the title and the language of the project (if necessary). 178 | 179 | ``` 180 | --- 181 | title: Project Template — Notes for Club Leaders 182 | language: en-GB 183 | embeds: "*.png" 184 | ... 185 | ``` 186 | 187 | ### Introduction 188 | Explain the project, focusing on what children will learn. Remember that these notes will be read by club leaders and not children. 189 | 190 | ### Resources 191 | You should include a completed version of your project to help club leaders. This file should be in the folder called 'Club Leader Resources'. You'll need to change the filenames in the notes to match the name of your project. 192 | 193 | For Scratch projects, you should also link to an online version of your completed project. Again, you should replace the URL of the sample project with a link to your completed project. 194 | 195 | If your project requires any additional resources (such as images), you should add them to the folder called 'Project Resources'. Again, modify the names of any files in the notes. 196 | 197 | ### Learning Objectives 198 | List the skills that your new project teaches or consolidates. This can be a key programming skill (such as variables or loops), or a general skill like game design, problem solving, collaboration, etc. 199 | 200 | ### Challenges 201 | You should add at least 1 challenge to your project, to allow children to apply what they've learnt during the project. You can even ask children to fix a problem or improve or adapt their project in some way. 202 | 203 | List the names of the challenges in your project, along with a brief description of the activity children will undertake. 204 | 205 | ### Frequently Asked Questions 206 | You can also add answers to common questions here. This will help club leaders when undertaking your new project with children. This section can be removed if it is not necessary. 207 | 208 | ## 4. Add your project to the manifest. 209 | 210 | + You should be able to see a file with a `.manifest` extension in the same folder (or the folder above) the folder containing your new project. 211 | 212 | + Add your project to the 'additional projects' manifest. You can do this by copying and pasting an existing project entry, modifying the parameters. Here's an example: 213 | 214 | ``` 215 | { 216 | "number": 3, 217 | "beta": true, 218 | "filename": "Project Template/Project Template.md", 219 | "note": "Project Template/Project Template - notes.md" 220 | } 221 | ``` 222 | 223 | Make aure that there is a comma between each project entry (after the `}`) but not after the final project! 224 | 225 | ## 5. You're done! 226 | 227 | Go back to the main notes on [contributing](../contributing.md) to see how to upload your new project. 228 | -------------------------------------------------------------------------------- /ccw/translating.md: -------------------------------------------------------------------------------- 1 | # Translating our Projects 2 | 3 | We want to reach as many children across the world as we can, no matter what language they speak. Our volunteers have helped translate our projects into 28 languages, but we have a long way to go before we have a truly global curriculum. 4 | 5 | Translating our projects is a great way to support us if you aren't able to start a club of your own yet. No prior tech knowledge is needed to be a translator, and we'll support you with each step of the process. 6 | 7 | To express interest in volunteering as a translator, please complete our [translator form](https://docs.google.com/a/raspberrypi.org/forms/d/e/1FAIpQLSdoxUvmGwbpx3zcCxXwJEqaBoAQHsTu-v5R4uOTSxv9-OzUEw/viewform). We will get in touch with you within a week to explain the process and get you involved. 8 | 9 | Thank you! 10 | 11 | -------------------------------------------------------------------------------- /contributing.md: -------------------------------------------------------------------------------- 1 | # Contributing to our Curriculum 2 | (these notes are under construction!) 3 | 4 | ## 0. Introduction 5 | 6 | This guide explains how to contribute to our curriculum. You can: 7 | + Suggest amendments and improvements to our projects; 8 | + Write new projects; 9 | 10 | If you'd like to help us translate our projects, please fill in [this form](https://docs.google.com/a/raspberrypi.org/forms/d/e/1FAIpQLSdoxUvmGwbpx3zcCxXwJEqaBoAQHsTu-v5R4uOTSxv9-OzUEw/viewform). We will get in touch with you within a week to explain the process and get you involved. 11 | 12 | We recommend using [GitHub](https://github.com/) to contribute. GitHub is a version-control system that allows hassle-free contributions, and allows us to easily track and manage those contributions. These notes outline the process of contributing via GitHub. 13 | 14 | If you don't have a GitHub account, you can [sign up](https://github.com/join). You can also install the GitHub application, which is available for [windows](https://windows.github.com/) or [mac](https://mac.github.com/). 15 | 16 | You don’t have to use GitHub to contribute. If you prefer, you can also email us with your contribution at projects@raspberrypi.org. 17 | 18 | Alternatively, you can click the following links to raise an issue with our [Scratch](https://github.com/CodeClub/scratch-curriculum/issues), [HTML & CSS](https://github.com/CodeClub/webdev-curriculum/issues) or [Python](https://github.com/CodeClub/python-curriculum/issues) curriculum. If you have any cool ideas for improving our curriculum (or our website), you can [submit your idea to us](https://github.com/CodeClub/ideas/issues). 19 | 20 | ## 1. Create a copy of the projects 21 | 22 | Each curriculum has its own repository, which is a central place for storing all of the projects. The files in the repositories are used to generate the websites for the [UK](http://projects.codeclub.org.uk) and [world](http://projects.codeclubworld.org) project sites. 23 | 24 | Click the link for the repository you wish to contribute to. We currently have [Scratch](https://github.com/CodeClub/scratch-curriculum), [HTML & CSS](https://github.com/CodeClub/webdev-curriculum) and [Python](https://github.com/CodeClub/python-curriculum) project repositories. 25 | 26 | Click the 'Fork' button to create your own copy of the projects repository. This will enable you to make changes to the projects. 27 | 28 | ![screenshot](images/contributing/fork.png) 29 | 30 | If the copied repository shows your own username (and the text 'forked from CodeClub') then you've successfully created a fork (copy) of the curriculum. 31 | 32 | ![screenshot](images/contributing/fork-success.png) 33 | 34 | (If you are only making small text edits to projects, you can jump to step 3.) 35 | 36 | ## 2. Downloading the projects 37 | 38 | __This step is not neccessary for small text edits to the projects.__ 39 | 40 | Clone the repository to your computer. This will create a copy of your new repository on your local computer. 41 | 42 | If you're using the GitHub tool for Mac or Windows, click 'clone' to download the repository to your computer. 43 | 44 | ![screenshot](images/contributing/clone.png) 45 | 46 | If the clone has been successful, you should see the repository in the GitHub application. 47 | 48 | ![screenshot](images/contributing/clone-success.png) 49 | 50 | Alternatively, if you don't have the GitHub application, you can type the following from the terminal: 51 | 52 | ``` 53 | cd ~/Documents 54 | git clone git@github.com:YOUR_NAME/REPOSITORY_NAME.git 55 | ``` 56 | 57 | Note: Replace YOUR_NAME with your GitHub username, 'Documents' with the name of the folder you'd like to save the repository into, and REPOSITORY_NAME with the name of the repository. This will be one of the following: 58 | 59 | + scratch-curriculum 60 | + webdev-curriculum 61 | + python-curriculum 62 | 63 | Make sure that you have configured your fork to sync with the original. The instructions to do this can be found [on the GitHub help website](https://help.github.com/articles/configuring-a-remote-for-a-fork). 64 | 65 | ``` 66 | git remote add upstream https://github.com/CodeClub/scratch-curriculum.git 67 | ``` 68 | 69 | In the command above you will need to replace the word `scratch` with `webdev` or `python` if you are forking a different repository. 70 | 71 | ## 3. Make your contribution 72 | 73 | **You should switch to the correct branch. The content for the [projects.codeclubworld.org](http://projects.codeclubworld.org/) can be found in the `master` branch and the content for the [codeclubprojects.org](https://codeclubprojects.org/) site can be found in the `new-layout` branch.** 74 | 75 | ``` 76 | git checkout new-layout 77 | ``` 78 | 79 | You can now: 80 | + [Make amendments and improvements to projects](amending.md); 81 | + For the projects.codeclubworld.org site: 82 | + [Write new projects](ccw/projects.md). 83 | + For the codeclubprojects site: 84 | + [Write new projects](ccp/projects.md). 85 | 86 | When contributing to our curriculum, please make sure that the project conforms to our [project guidelines](project-guidelines.md). 87 | 88 | ## 4. (Optional) View your contribution 89 | 90 | To view your contribution, you'll need to use the [lesson_format](https://github.com/CodeClub/lesson_format) tool to build a local copy of our projects. Instructions on how to install the lesson formatter are [here](https://github.com/CodeClub/lesson_format/blob/master/README.md). 91 | 92 | ## 5. Save your contribution 93 | 94 | For small changes made directly on the GitHub website, you can simply scroll down to the bottom of the file you've amended, and click 'Commit Change'. 95 | 96 | ![screenshot](images/contributing/commit.png) 97 | 98 | For new projects, the contributions you've written are saved to your local computer, but you'll need to upload them to your GitHub account. Here's how you upload your contribution: 99 | 100 | Before saving your contribution to your fork, ensure that your fork is up to date with Code Club's original repository. Instructions on how to do this are [on the GitHub help website](https://help.github.com/articles/syncing-a-fork). 101 | 102 | ``` 103 | git fetch upstream 104 | git merge upstream/master 105 | ``` 106 | 107 | If you're using the GitHub for Mac or Windows application, click the 'toggle' button, so the button on the right says 'Commit and Sync'. Then click this button to upload your contribution. You'll need to add a summary and a description of your contribution. 108 | 109 | ![screenshot](images/contributing/sync.png) 110 | 111 | If you're not using the GitHub application, from the terminal go to the root folder of your repository, for example: 112 | 113 | ``` 114 | cd ~/Documents/scratch-curriculum 115 | ``` 116 | 117 | + Add in your files. 118 | 119 | ``` 120 | git add --all 121 | ``` 122 | 123 | + Commit your contribution: 124 | 125 | ``` 126 | git commit -m 'Your message here' 127 | ``` 128 | 129 | + Push your contribution to your GitHub account. 130 | 131 | ``` 132 | git push 133 | ``` 134 | 135 | ## 6. Merge your contribution with our curriculum 136 | 137 | Go to your copy of the respository on the GitHub website, and click the 'Pull Request button. 138 | 139 | ![screenshot](images/contributing/pull-request.png) 140 | 141 | On the next screen, you can review your changes, and click the 'Create pull request' button if you're happy, which will alert us to your contribution. 142 | 143 | ![screenshot](images/contributing/pull-request2.png) 144 | 145 | When we merge the pull request, your contribution will become part of the main curriculum repository, available for everyone to use and benefit from! 146 | -------------------------------------------------------------------------------- /curriculum.md: -------------------------------------------------------------------------------- 1 | ### Our Curriculum 2 | 3 | The Code Club projects are step by step guides for children to follow to create animations, games, websites and much more. Children will build up their programming skills as they move through the projects, and challenges provide opportunities to demonstrate and apply what’s been learnt. 4 | 5 | [Curriculum skills mapping](mapintro.md) 6 | 7 | ### Our Projects 8 | 9 | Our projects can be found at [codeclub.org.uk/projects](http://codeclub.org.uk/projects). Our core curriculum currently contains 1 years’ (3 terms’) worth of projects, teaching Scratch, HTML & CSS and Python. You can find more information on these languages below. We would recommend starting with our Scratch projects if your children haven’t programmed before, but if you’d prefer to start with HTML or Python projects then that’s fine by us! 10 | 11 | It is recommended that children progress through the projects for each language in order, as later projects can sometimes depend on learning undertaken in previous projects. However, children are free to skip any projects if they are familiar with the learning content. 12 | 13 | Each project is available online, and in PDF format. You will need to work out the best way for children to access the projects during the club. We find children work best with the project resources printed and in front of them, so speak to your school or your employer about getting these ready for each session. 14 | 15 | Projects have accompanying ‘Notes for Club Leader’ documents, and it may be useful to read through these notes before completing a project with your club. These notes include information on useful resources, project learning objectives, challenges to be undertaken and an FAQ section outlining potential pitfalls and common questions. If you have time, it may also be helpful to complete the projects yourself beforehand, so that you’re more prepared to answer any questions the children may have. 16 | 17 | Projects have a clear activity checklist, which is a series of steps that should be followed to create a game, animation, website or application. Children can tick off these steps as they are completed, allowing them to keep track of their progress. This can also be done on the website, by clicking on the checkboxes. Children should follow the steps in order, and as described in the project guidance. Although creativity should be encouraged, there are times when deviating from the project guidance may cause undesired side-effects. If in doubt, ask children to follow the checklist as closely as possible, as the guidance also outlines points where children are encouraged to come up with their own ideas! 18 | 19 | Each project also includes one or more challenges, which are opportunities for children to apply the skills they’ve learnt in creative ways. These challenges may involve making improvements and modifications to an existing project, or may involve creating something new. When completing challenges, it is important not to give children the answers to their questions or solve their problems straight away, but instead encourage them to draw on their knowledge gained from completing previous projects. The challenges are supposed to be challenging, and children should be given lots of time to complete them as fully as possible! 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /images/amending/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/amending/edit.png -------------------------------------------------------------------------------- /images/amending/preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/amending/preview.png -------------------------------------------------------------------------------- /images/contributing/clone-success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/contributing/clone-success.png -------------------------------------------------------------------------------- /images/contributing/clone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/contributing/clone.png -------------------------------------------------------------------------------- /images/contributing/commit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/contributing/commit.png -------------------------------------------------------------------------------- /images/contributing/fork-success.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/contributing/fork-success.png -------------------------------------------------------------------------------- /images/contributing/fork.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/contributing/fork.png -------------------------------------------------------------------------------- /images/contributing/pull-request.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/contributing/pull-request.png -------------------------------------------------------------------------------- /images/contributing/pull-request2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/contributing/pull-request2.png -------------------------------------------------------------------------------- /images/contributing/sync.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/contributing/sync.png -------------------------------------------------------------------------------- /images/mapping/html1map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/mapping/html1map.png -------------------------------------------------------------------------------- /images/mapping/python1map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/mapping/python1map.png -------------------------------------------------------------------------------- /images/mapping/python2map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/mapping/python2map.png -------------------------------------------------------------------------------- /images/mapping/scratch1map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/mapping/scratch1map.png -------------------------------------------------------------------------------- /images/mapping/scratch2map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/mapping/scratch2map.png -------------------------------------------------------------------------------- /images/projects/challenge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/projects/challenge.png -------------------------------------------------------------------------------- /images/projects/embed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/projects/embed.png -------------------------------------------------------------------------------- /images/projects/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/projects/folder.png -------------------------------------------------------------------------------- /images/projects/md.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/projects/md.png -------------------------------------------------------------------------------- /images/projects/save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/projects/save.png -------------------------------------------------------------------------------- /images/projects/scratch-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/projects/scratch-code.png -------------------------------------------------------------------------------- /images/projects/scratch-output.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/projects/scratch-output.png -------------------------------------------------------------------------------- /images/projects/test.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/projects/test.png -------------------------------------------------------------------------------- /images/translating/manifest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/translating/manifest.png -------------------------------------------------------------------------------- /images/translating/sample.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RaspberryPiFoundation/curriculum_documentation/be246565e4207dd06b978b885e3bcbbc7c1daeec/images/translating/sample.png -------------------------------------------------------------------------------- /mapintro.md: -------------------------------------------------------------------------------- 1 | ##Curriculum Skills Mapping 2 | 3 | This document outlines the skills and concepts learnt throughout our curriculum. 4 | 5 | Each module has opportunities to develop the following skills: 6 | 7 | ####Computational Thinking Skills: 8 | + Algorithms & logical thinking; 9 | + Generalisation; 10 | + Abstraction; 11 | + Decomposition; 12 | + Evaluation. 13 | 14 | ####Soft Skills: 15 | + Planning and designing; 16 | + Problem solving; 17 | + Communication, collaboration and sharing; 18 | + Reflecting and improving. 19 | 20 | ####Programming skills mapping: 21 | + [This can be found on our projects website](https://www.codeclubprojects.org/en-GB/curriculum/) 22 | -------------------------------------------------------------------------------- /project-guidelines.md: -------------------------------------------------------------------------------- 1 | # Project guidelines 2 | 3 | This is a set of guidelines for writing Code Club projects. 4 | 5 | ## General Requirements 6 | 7 | + Projects should take less than an hour to complete; 8 | + Projects should require minimal additional software; 9 | + Project setup and preparation should be minimal; 10 | + Avoid the use of external resources if possible; 11 | + Projects should be inclusive of gender, race, sexual orientation, socio-economic status and disability. 12 | 13 | ## Style 14 | 15 | + Projects should be written in a lighthearted, casual style; 16 | + Reinforce the idea that coding is an ability, not a gift. It comes from hard work, not from talent. 17 | 18 | ## Language Requirements 19 | 20 | + Ensure that the project reading level is suitable for 9-year-olds. If you can, run the project by a primary school teacher to check for vocabulary and sentence complexity; 21 | + Avoid using slang; 22 | + Avoid technical jargon unrelated to the skill(s) being taught; 23 | + Explain any words that may be unfamiliar to children. 24 | 25 | ## Pedagogy 26 | 27 | + Introduce one skill or idea at a time, perferably one per project; 28 | + If using a skill in a subsequent project, use less detail and shorten the explanation. This will allow children to think for themselves and apply the skills they've learnt. You should reference past projects, for children that may require additional support; 29 | + Projects should be suitable for children of a range of abilities, using open-ended challenges (see below) to push higher ability children; 30 | + Each project should be broken down into number of activities; 31 | + Each activity should be broken down into a checklist of steps; 32 | + Provide plenty of opportunity for experimentation and exploration. Try not to be too prescriptive in the project instructions. 33 | + Regularly remind children to save their projects, for example at the end of each activity or challenge; 34 | + Provide regular opportunities for children to test their projects, so that they can see the effect of their code. You can also ask children to test logically incorrect of unfinished code, so that they fix bugs or make improvements to their project; 35 | + Each project should contain at least one (and preferably more than one) challenge. Challenges are opportunities for children to apply the skills they've learnt, so they shouldn't be provided with the solution. However, you can provide hints and references to previous times in which they've learnt the relevant skill(s). 36 | 37 | A well-written challenge should (as much as possible) be... 38 | 39 | + ...optional. Subsequent activities should not depend on completing a challenge; 40 | + ...focused. A challenge should consolidate the learning of one skill; 41 | + ...problem-solving. An opportunity to apply a learnt skill to another problem domain; 42 | + ...open-ended. There should not be one set solution to a challenge; 43 | + ...challenging!! Don't make a challenge too easy - children should have to think to arrive at a solution. 44 | 45 | -------------------------------------------------------------------------------- /projects.md: -------------------------------------------------------------------------------- 1 | # Writing a New Project 2 | (these notes are under construction!) 3 | 4 | ## 0. Introduction 5 | 6 | This guide explains how to write a new project for our curriculum. If you encounter a problem, remember that you can look at existing projects to see how it's done! 7 | 8 | If you're writing a project and need additional support, you can email projects@codeclub.org.uk. 9 | 10 | __To contribute a project to our curriculum, you'll need your own copy of the projects. There are instructions on how to do this in the main [contributing](contributing.md) notes.__ 11 | 12 | ## 1. Using the project template. 13 | 14 | + In the projects repository, find the folder called 'Project Template'. 15 | 16 | ![screenshot](/images/projects/folder.png) 17 | 18 | + Copy and paste this folder, and rename the copied folder with the name of your project. 19 | 20 | + You should see 2 files with `.md` extensions: 21 | 22 | + `Project Template.md` - the file containing the project instructions; 23 | + `Project Template - notes.md` - the file containing the club leader notes. 24 | 25 | ![screenshot](/images/projects/md.png) 26 | 27 | These files contain 'markdown', which is used to generate projects on the Code Club website. Rename these 2 files with the name of your project. 28 | 29 | ## 2. Write your project. 30 | 31 | Open the `[project name].md` file in a text editor. You can edit this document by adding in your project instructions. Your project may contain some (or all) of the following: 32 | 33 | ### File Properties 34 | 35 | You should change the title and the language of the project (if necessary). 36 | 37 | ``` 38 | --- 39 | title: Project Template 40 | level: Scratch + 41 | language: en-GB 42 | stylesheet: scratch 43 | embeds: "*.png" 44 | materials: ["Club Leader Resources/*","Project Resources/*"] 45 | ... 46 | ``` 47 | 48 | ### Activities 49 | 50 | You should break your instructions down into separate activities. Each activity should have an 'activity' heading, which can be added by using the following markdown: 51 | 52 | `#Step 1: Step name goes here {.activity}` 53 | 54 | Underneath this heading you should briefly explain the step children are about to undertake. 55 | 56 | ### Activity Checklist 57 | 58 | Each step should contain a checklist of activities. To display the 'checklist' graphic, you should include this markdown underneath the activity description: 59 | 60 | `## Activity Checklist {.check}` 61 | 62 | ### Activity Steps 63 | 64 | Each step should start with a `+` or a `*`, which will give the step a checkbox. If your step contains multiple paragraphs, or an image, these should be indented by pressing the 'Tab' key. 65 | 66 | ``` 67 | + Step 1 68 | + Step 2 69 | ``` 70 | 71 | ### Bold and Italic Text 72 | 73 | You can add text in _italics_ by placing an underscore or a star around the text: 74 | 75 | `_italicised text_` or `*italicised text*` 76 | 77 | You can add text in __bold__ by placing two underscores or stars around the text: 78 | 79 | `__bold text__` or `**bold text**` 80 | 81 | ### Code 82 | 83 | You can add some code to your notes `like this`, by adding backticks (`` ` ``) around the text. 84 | 85 | `` here is some code: `move (10) steps` `` 86 | 87 | You can also format Scratch code, so that the colour matches the associated Scratch block colour (for example `{.blockdata}` for variables). There are some examples of this in the Scratch project template. 88 | 89 | `` here is a `score` {.blockdata} variable `` 90 | 91 | ![screenshot](/images/projects/scratch-code.png) 92 | 93 | ### Images 94 | 95 | The markdown needed to add an image is: 96 | 97 | `![alt text](path/imageName.png)` 98 | 99 | The path can be omitted if the image is in the same folder as the project markdown file. 100 | 101 | ### Hyperlinks 102 | 103 | A hyperlink can be added through similar markdown: 104 | 105 | `[link text](url)` 106 | 107 | ### Testing 108 | 109 | You should regularly ask children to test their project, so that they can see the effects of the code they're creating. You can even use these points as opportunities to fix bugs and improve code. 110 | 111 | The markdown for adding in a test point is: 112 | 113 | `## Test your project {.flag}` 114 | 115 | ![screenshot](/images/projects/test.png) 116 | 117 | ### Saving 118 | 119 | You should also regularly remind children to save their work, by using this markdown: 120 | 121 | `## Save your project {.save}` 122 | 123 | ![screenshot](/images/projects/save.png) 124 | 125 | ### Challenges 126 | 127 | You should add at least 1 challenge, to allow children to apply what they've during the project. You can ask children to fix a problem or improve or adapt their project in some way. The markdown for adding a challenge is: 128 | 129 | `## Challenge: Challenge name {.challenge}` 130 | 131 | ![screenshot](/images/projects/challenge.png) 132 | 133 | ### Scratch Code Blocks 134 | 135 | For Scratch projects, code blocks should be contained within 3 backticks, for example: 136 | 137 | ``` 138 | ```blocks 139 | when flag clicked 140 | point in direction (120 v) 141 | set pen color to [#FF0000] 142 | pen down 143 | forever 144 | move (1) steps 145 | if on edge, bounce 146 | end``` 147 | ``` 148 | 149 | The code above produces the following image: 150 | 151 | ![screenshot](/images/projects/scratch-output.png) 152 | 153 | You can [test](https://scratchblocks.github.io) your Scratch code, and there is a [guide](http://wiki.scratch.mit.edu/wiki/Block_Plugin/Syntax) to adding Scratch blocks to your project notes. You can even automatically generate Scratch code [directly from your online Scratch project](https://scratchblocks.github.io/generator/). 154 | 155 | ### Embedded Scratch Projects 156 | 157 | For Scratch projects, you can also add an embedded version of the final project, so that children can see what they are working towards. Don't worry, children won't be able to see the code! This is done by adding the following HMTL after the introduction: 158 | 159 | ``` 160 |
161 | 162 | 163 |
164 | ``` 165 | 166 | Simply replace the URL with the URL of your finished project, and remember to include a static screenshot image for the PDF version of the project notes. 167 | 168 | ![screenshot](/images/projects/embed.png) 169 | 170 | ## 3. Notes for Club Leaders 171 | 172 | Each project should have an associated 'notes' markdown file, giving the volunteer useful information for using the project with their Code Club. 173 | 174 | The project notes template can simply be modified for your project, and contains the following sections: 175 | 176 | ### Notes File Properties 177 | You should change the title and the language of the project (if necessary). 178 | 179 | ``` 180 | --- 181 | title: Project Template — Notes for Club Leaders 182 | language: en-GB 183 | embeds: "*.png" 184 | ... 185 | ``` 186 | 187 | ### Introduction 188 | Explain the project, focusing on what children will learn. Remember that these notes will be read by club leaders and not children. 189 | 190 | ### Resources 191 | You should include a completed version of your project to help club leaders. This file should be in the folder called 'Club Leader Resources'. You'll need to change the filenames in the notes to match the name of your project. 192 | 193 | For Scratch projects, you should also link to an online version of your completed project. Again, you should replace the URL of the sample project with a link to your completed project. 194 | 195 | If your project requires any additional resources (such as images), you should add them to the folder called 'Project Resources'. Again, modify the names of any files in the notes. 196 | 197 | ### Learning Objectives 198 | List the skills that your new project teaches or consolidates. This can be a key programming skill (such as variables or loops), or a general skill like game design, problem solving, collaboration, etc. 199 | 200 | ### Challenges 201 | You should add at least 1 challenge to your project, to allow children to apply what they've learnt during the project. You can even ask children to fix a problem or improve or adapt their project in some way. 202 | 203 | List the names of the challenges in your project, along with a brief description of the activity children will undertake. 204 | 205 | ### Frequently Asked Questions 206 | You can also add answers to common questions here. This will help club leaders when undertaking your new project with children. This section can be removed if it is not necessary. 207 | 208 | ## 4. Add your project to the manifest. 209 | 210 | + You should be able to see a file with a `.manifest` extension in the same folder (or the folder above) the folder containing your new project. 211 | 212 | + Add your project to the 'additional projects' manifest. You can do this by copying and pasting an existing project entry, modifying the parameters. Here's an example: 213 | 214 | ``` 215 | { 216 | "number": 3, 217 | "beta": true, 218 | "filename": "Project Template/Project Template.md", 219 | "note": "Project Template/Project Template - notes.md" 220 | } 221 | ``` 222 | 223 | Make sure that there is a comma between each project entry (after the `}`) but not after the final project! 224 | 225 | ## 5. You're done! 226 | 227 | Go back to the main notes on [contributing](contributing.md) to see how to upload your new project. 228 | -------------------------------------------------------------------------------- /translating.md: -------------------------------------------------------------------------------- 1 | # Translating our Projects 2 | (these notes are under construction!) 3 | 4 | ## 0. Introduction 5 | 6 | This guide explains how to translate our projects into other languages. 7 | 8 | If you're translating a project and need additional support, you can email projects@codeclub.org.uk. 9 | 10 | __To contribute a project to our curriculum, you'll need your own copy of the projects. There are instructions on how to do this in the main [contributing](contributing.md) notes.__ 11 | 12 | NOTE: you may only need to carry out some of these steps if no previous translations have been made for your language. 13 | 14 | ## 1. Create a copy of the project(s) 15 | 16 | + Make a copy of the folder called 'en-GB', containing the English language projects. 17 | + Rename this copied folder with the appropriate [language/country code](http://www.lingoes.net/en/translator/langcode.htm), for example 'es-ES' for Spanish. You can skip this step if a folder with this name already exists. 18 | 19 | ## 2. Translate the project(s)! 20 | 21 | (__Note: New projects are labelled as 'New' for 6 weeks after they are uploaded. During this time, these projects may still be subject to small edits. Please wait until these projects are no longer labelled as 'New' before translating.__) 22 | 23 | There's a guide to [writing a project](projects.md), which explains how to create each of the elements in the project instructions. 24 | 25 | You can also generate [translated Scratch code](http://scratchblocks.codeclub.org.uk/translator/#script=when%20flag%20clicked%0Aforever%0A%20%20move%20(2)%20steps%0Aend&from=en&to=ru) from the English projects. 26 | 27 | ## 3. Update the manifest 28 | 29 | + Find the `.manifest` file for the project(s) you've translated. Rename the 'en-GB' portion of the filename with your language/country code. 30 | 31 | ![screenshot](images/translating/manifest.png) 32 | 33 | + If the project and/or folder names have also been translated, open the manifest file and update this information. Here's an example: 34 | 35 | ``` 36 | { 37 | "filename": "01 Félix y Herbert/félix_y_herbert.md", 38 | "number": 1 39 | } 40 | ``` 41 | 42 | + You should also make sure that the correct language is specified at the top of the file, and you can also provide translated titles and descriptions. 43 | 44 | ``` 45 | "id": "scratch", 46 | "title": "Iniciación a Scratch", 47 | "description": "Scratch es una forma sencilla y divertida de programar arrastrando bloques y colocándolos juntos", 48 | "language": "es-ES", 49 | "number": 1, 50 | ``` 51 | 52 | ## 4. (Optional) Add a `.language` file 53 | 54 | You can also provide translated text for various website links and project instructions. Do do this, you'll need to clone the [lesson_format](https://github.com/CodeClub/lesson_format) repository. This repository is used to build the projects website from Scratch, HTML & CSS and Python repositories. There are instructions on how to do this in the main [contributing](contributing.md) notes. 55 | 56 | + In the 'lesson_format' repository, go to the 'assets/languages' folder, and find the file called `en-GB.language.sample`: 57 | 58 | ![screenshot](images/translating/sample.png) 59 | 60 | + If a `.language` file doesn't already exist for your language, copy this file and rename it with your language/country code. You should also remove the `.sample` portion of the filename. 61 | 62 | + Open the copied file in a text editor and provide the various translations: 63 | 64 | ``` 65 | "code": "Language code e.g. en-GB", 66 | "name": "Language name e.g. English", 67 | "translations": { 68 | "Download PDF": "Your translation here!", 69 | "Download Project Materials": "Your translation here!", 70 | "Extras": "Your translation here!", 71 | ... 72 | ``` 73 | 74 | ## 5. You're done! 75 | 76 | Go back to the main notes on [contributing](contributing.md) to see how to upload your new project(s). 77 | --------------------------------------------------------------------------------