Small doc fixes and many tiny edits. (#439)
This commit is contained in:
parent
edaf2b0403
commit
78d1ce26be
@ -58,7 +58,7 @@
|
||||
* [Making](/courses/csintro/making)
|
||||
* [Introduction](/courses/csintro/making/introduction)
|
||||
* [Unplugged](/courses/csintro/making/unplugged)
|
||||
* [Walkthrough](/courses/csintro/making/walkthrough)
|
||||
* [Walkthrough](/courses/csintro/making/activity)
|
||||
* [Project](/courses/csintro/making/project)
|
||||
* [Standards](/courses/csintro/making/standards)
|
||||
* [Algorithms](/courses/csintro/algorithms)
|
||||
@ -120,6 +120,11 @@
|
||||
* [Activity](/courses/csintro/arrays/activity)
|
||||
* [Project](/courses/csintro/arrays/project)
|
||||
* [Standards](/courses/csintro/arrays/standards)
|
||||
* [Final Project](/courses/csintro/finalproject)
|
||||
* [Review](/courses/csintro/finalproject/review)
|
||||
* [Project](/courses/csintro/finalproject/project)
|
||||
* [Examples](/courses/csintro/finalproject/examples)
|
||||
* [Standards](/courses/csintro/finalproject/standards)
|
||||
|
||||
## #reference
|
||||
|
||||
|
@ -1,22 +1,37 @@
|
||||
# CS Intro
|
||||
# Intro to CS
|
||||
|
||||
### A 14 week Introduction to Computer Science course.
|
||||
## A 14 week Introduction to Computer Science course.
|
||||
|
||||
This course is targeted to middle school grades 6-8 (ages 11-14 years). It is also written for teachers who may not have a Computer Science background, or may be teaching an "Intro to Computer Science" course for the first time.
|
||||
|
||||
This course takes approximately 14 weeks to complete, spending about 1 week on each of the first 11 lessons, and 3 weeks for students to complete the final project at the end. Of course, teachers should feel free to customize the curriculum to meet individual school or district resources and timeframe.
|
||||
|
||||
### ~ hint
|
||||
|
||||
Download the full course
|
||||
[[OneNote](https://1drv.ms/o/s!AqsgsTyHBmRBgQvFaUaeANNHbxpC)]
|
||||
[[PDF](https://1drv.ms/b/s!AqsgsTyHBmRBgQ1Fjzm5y5wKG75M)]
|
||||
|
||||
### ~
|
||||
|
||||
![Space race image](/static/courses/csintro.jpg)
|
||||
|
||||
## Contents
|
||||
### ~ hint
|
||||
**Download it**
|
||||
|
||||
The entire course is also available as a download. Chose any of these formats:
|
||||
|
||||
[![](/static/courses/csintro/icons/microsoft-onenote-24x24.png) **OneNote** - Intro to CS with MakeCode for micro:bit](https://1drv.ms/o/s!AqsgsTyHBmRBgQvFaUaeANNHbxpC)
|
||||
|
||||
[![](/static/courses/csintro/icons/adobe-pdf-file-icon-24x24.png) **PDF** -Intro to CS with MakeCode for micro:bit](https://1drv.ms/b/s!AqsgsTyHBmRBgQ1Fjzm5y5wKG75M)
|
||||
|
||||
[![](/static/courses/csintro/icons/apple-itunes-ibook-24x24.png) **iBook** - Making with micro:bit](https://itunes.apple.com/us/book/making-with-micro-bit/id1255260221?mt=11)
|
||||
### ~
|
||||
|
||||
### Lesson structure
|
||||
|
||||
Each of the 12 lessons is structured in this format:
|
||||
* Topic Introduction
|
||||
* Unplugged Activity (30 min) - An offline game or activity that demonstrates the concept/topic
|
||||
* micro:bit Activity (45-60 min) - An activity that everyone makes on their micro:bit that teaches the skills learned in this lesson.
|
||||
* Project (60-120 min) - A prompt for an original project that each student will create to demonstrate their understanding of the skills and concepts covered in this lesson.
|
||||
* Project Mods - Examples of additional things students can do to extend the project.
|
||||
* Assessment - A project rubric and guidance for grading the project.
|
||||
* Standards - A list of CSTA K-12 Computer Science Standards and/or concepts covered by this lesson.
|
||||
|
||||
## Course contents
|
||||
|
||||
* [About](/courses/csintro/about)
|
||||
* [Introduction](/courses/csintro/introduction)
|
||||
@ -24,13 +39,6 @@ Download the full course
|
||||
|
||||
### Lessons
|
||||
|
||||
|
||||
### ~ hint
|
||||
|
||||
UNDER CONSTRUCTION: We are still migrating the CSIntro content to this format...
|
||||
|
||||
### ~
|
||||
|
||||
1. [Making](/courses/csintro/making)
|
||||
2. [Algorithms](/courses/csintro/algorithms)
|
||||
3. [Variables](/courses/csintro/variables)
|
||||
@ -42,4 +50,4 @@ UNDER CONSTRUCTION: We are still migrating the CSIntro content to this format...
|
||||
9. [Bits, Bytes, and Binary](/courses/csintro/binary)
|
||||
10. [Radio](/courses/csintro/radio)
|
||||
11. [Arrays](/courses/csintro/arrays)
|
||||
12. Independent Final Project
|
||||
12. [Independent Final Project](/courses/csintro/finalproject)
|
||||
|
@ -171,6 +171,7 @@ To comment a block of code:
|
||||
Notes
|
||||
* When you right-click on the icon that appears before the words on a block, notice that there are other options available to you that allow you to duplicate and delete blocks, as well as get help. Feel free to explore and use these as you code.
|
||||
* In JavaScript, you can add a comment by using two forward slashes, then typing your comment. The two forward slashes tell JavaScript that the following text (on that same line) is a comment.
|
||||
|
||||
```typescript
|
||||
// Display a happy face when button A is pressed.
|
||||
```
|
||||
|
@ -33,13 +33,39 @@ Sample fidget cube designs
|
||||
|
||||
## Assessment
|
||||
|
||||
| | 4 | 3 | 2 | 1 |
|
||||
| - | - | - | - |
|
||||
| ============= | =============== | =============== | ============== | ============= |
|
||||
| Inputs | At least 4<br/>different inputs<br/>are successfully<br/>implemented | At least 3<br/>different inputs<br/> are successfully<br/>implemented | At least 2<br/>different inputs<br/>are successfully<br/>implemented | Fewer than 2<br/>different inputs<br/>are successfully<br/>implemented |
|
||||
| ============= | =============== | =============== | ============== | ============= |
|
||||
| Outputs | At least 4<br/>different outputs<br/>are successfully<br/>implemented | At least 3<br/>different outputs<br/>are successfully<br/>implemented | At least 2<br/>different outputs<br/>are successfully<br/>implemented | Fewer than 2<br/>different outputs<br/>are successfully<br/>implemented |
|
||||
| ============= | =============== | =============== | ============== | ============= |
|
||||
| Micro:bit<br/>program |Micro:bit<br/>program:<br/>- uses event<br/>handlers in a<br/>way that is<br/>integral to the<br/>program<br/>- compiles and<br/>runs as<br/>intended<br/>- includes<br/>meaningful<br/>comments | Micro:bit<br/>program lacks 1<br/>of the required<br/>elements | Micro:bit<br/>program lacks 2<br/>of the required<br/>elements | Micro:bit<br/>program lacks all<br/>or of the<br/>required<br/>elements |
|
||||
| ============= | =============== | =============== | ============== | ============= |
|
||||
| Collaboration<br/>reflection | Reflection piece<br/>includes:<br/>- brainstorming<br/>ideas<br/>- construction<br/>programming<br/>beta testing | Reflection piece<br/>lacks 1 of the<br/>required<br/>elements | Reflection piece<br/>lacks 2 of the<br/>required<br/>elements | Reflection piece<br/>lacks 3 of the<br/>required<br/>elements |
|
||||
**Competency scores**: 4, 3, 2, 1
|
||||
|
||||
### Inputs
|
||||
|
||||
**4 =** At least 4 different inputs are successfully implemented.<br/>
|
||||
**3 =** At least 3 different inputs are successfully implemented.<br/>
|
||||
**2 =** At least 2 different inputs are successfully implemented.<br/>
|
||||
**1 =** Fewer than 2 different inputs are successfully implemented.
|
||||
|
||||
### Outputs
|
||||
|
||||
**4 =** At least 4 different outputs are successfully implemented.<br/>
|
||||
**3 =** At least 3 different outputs are successfully implemented.<br/>
|
||||
**2 =** At least 2 different outputs are successfully implemented.<br/>
|
||||
**1 =** Fewer than 2 different outputs are successfully implemented.
|
||||
|
||||
### micro:bit program
|
||||
|
||||
**4 =** micro:bit program:
|
||||
`*` uses event handlers in a way that is integral to the program<br/>
|
||||
`*` compiles and runs as intended<br/>
|
||||
`*` includes meaningful comments<br/>
|
||||
**3 =** micro:bit program lacks 1 of the required elements<br/>
|
||||
**2 =** micro:bit program lacks 2 of the required elements<br/>
|
||||
**1 =** micro:bit program lacks all of the required elements.
|
||||
|
||||
### Collaboration reflection
|
||||
|
||||
**4 =** Reflection piece includes:<br/>
|
||||
`*` brainstorming ideas<br/>
|
||||
`*` construction<br/>
|
||||
`*` programming<br/>
|
||||
`*` beta testing<br/>
|
||||
**3 =** Reflection piece lacks 1 of the required elements.<br/>
|
||||
**2 =** Reflection piece lacks 2 of the required elements.<br/>
|
||||
**1 =** Reflection piece lacks 3 of the required elements.
|
||||
|
@ -46,7 +46,7 @@ They can use pencil and paper or index cards.
|
||||
On paper, they can keep track of inputs and outputs in a table (see example above).
|
||||
With index cards, Player A can write each input on one side of an index card, hand the card to Player B, who then writes the corresponding output on the other side of the card.
|
||||
|
||||
To begin:
|
||||
### To begin:
|
||||
* Player B decides on a mathematical function or bit of processing* that will be done on whatever input she receives from Player A.
|
||||
* Player B should write down the function or bit of processing and set it aside, out of sight of Player A.
|
||||
* Player A then gives Player B a number to process.
|
||||
@ -57,7 +57,7 @@ To begin:
|
||||
* The goal is for Player A to figure out what function or bit of processing Player B is using in the fewest number of rounds of input/output possible.
|
||||
* After each student has had at least one chance to be the function machine, play more rounds as time permits.
|
||||
|
||||
Notes:
|
||||
### Notes:
|
||||
* The difficulty level of the possible functions should be determined by the teacher and shared with the students ahead of playing. Alternately, the teacher can provide function cards that are handed out at random to be used by the players, rather than the players creating their own.
|
||||
* The player providing the input should not just guess what the function is. She should be able to explain why she thinks her input resulted in the given output.
|
||||
* Examples of ‘easier’ functions:
|
||||
@ -73,18 +73,18 @@ Notes:
|
||||
## Unplugged: Crazy Conditionals
|
||||
This is a fun, interactive exercise to introduce conditionals and event handlers as computer processing. Read through the entire activity and adjust as needed for your class and classroom.
|
||||
|
||||
Preparation:
|
||||
### Preparation:
|
||||
* Print & cut into strips with one conditional on each strip
|
||||
* Note that some of the same conditionals can be given to multiple students, while other conditionals are to be given to just one student.
|
||||
* Except for the first ‘BEGIN’ conditional, hand out the conditionals PRINT SIDE DOWN.
|
||||
* Besides the ‘BEGIN’ and ‘STOP’ conditional, give at least two other conditionals to each student. A lesson from this is that it is challenging for a student to keep track of a lot of different conditionals, though not so for a computer! : )
|
||||
|
||||
Notes:
|
||||
### Notes:
|
||||
* Some of the same conditionals can be given to multiple students, while other conditionals are to be given to just one student.
|
||||
* Technically these conditionals are all event handlers because the students are simply waiting for a specific event to trigger them into action.
|
||||
* Unless instructed otherwise, students do not speak or make noise during this activity.
|
||||
|
||||
Extensions/Variations:
|
||||
### Extensions/Variations:
|
||||
* Add AND, OR, AND/OR statements to the conditionals.
|
||||
* Create nested IF’s
|
||||
* Let students create the IF’s
|
||||
|
@ -8,11 +8,11 @@ Ideally, the micro:bit should be mounted in some kind of housing, perhaps a guit
|
||||
|
||||
Here are some examples of guitars that were made out of cardboard and colored, patterned duct tape that you can buy in craft stores.
|
||||
|
||||
## Example Guitar Code
|
||||
## Example guitar code
|
||||
|
||||
This is an example of a project that uses the micro:bit accelerometer to play different tones when the guitar is held and tilted while playing. Pressing the A button will save the current tone to an array. After ten tones, a repeating melody will be performed. Press the B button to clear the array and start over.
|
||||
|
||||
## Song-maker
|
||||
### Song-maker
|
||||
|
||||
```blocks
|
||||
let currentNote = 0
|
||||
|
@ -33,10 +33,10 @@ _Bring the person to the front of the line and then compare that person’s numb
|
||||
## Some Different Types of Sorts
|
||||
In computer science, there are certain common strategies, or algorithms, for sorting a collection of values. Try acting out each of these different sorts with your students.
|
||||
|
||||
## Bubble Sort
|
||||
### Bubble Sort
|
||||
Compare the first two students. If the student on the right is smaller than the student on the left, they should swap places. Then compare the second and third students. If the student on the right is smaller than the student on the left, they should swap places. When you reach the end, start over at the beginning again. Continue in this way until you make it through the entire row of students without swapping anybody.
|
||||
|
||||
### In pseudocode:
|
||||
#### In pseudocode:
|
||||
1. Create a variable called counter.
|
||||
2. Set the counter to zero.
|
||||
3. Go through the entire array.
|
||||
@ -45,7 +45,7 @@ Compare the first two students. If the student on the right is smaller than the
|
||||
>2. Add one to counter
|
||||
5. Repeat steps 2 through 4 as long as counter is greater than zero.
|
||||
|
||||
### In MakeCode:
|
||||
#### In MakeCode:
|
||||
|
||||
**Note:** Press B to display the array visually. The length of each vertical bar represents each number in the array, from left to right. Press A to sort the array using Bubble Sort. Press A + B to generate new random numbers for the array.
|
||||
|
||||
@ -104,15 +104,15 @@ list = [4, 2, 5, 1, 3]
|
||||
counter = 1
|
||||
```
|
||||
|
||||
## Selection Sort
|
||||
### Selection Sort
|
||||
Take the first student on the left and consider that person’s number the smallest number you have found so far. If the next person in line has a number that is smaller than that number, then make that person’s number your new smallest number and continue in this way until you reach the end of the line of students. Then, move the person with the smallest number all the way to the left. Then start over from the second person in line. Keep going, finding the smallest number each time, and making that person the rightmost person in the sorted line of students.
|
||||
|
||||
### In pseudocode:
|
||||
#### In pseudocode:
|
||||
1. Find the smallest unsorted value in the array.
|
||||
2. Swap that value with the first unsorted value in the array.
|
||||
3. Repeat steps 1 and 2 while the number of unsorted items is greater than zero.
|
||||
|
||||
### In MakeCode:
|
||||
#### In MakeCode:
|
||||
|
||||
**Note:** The inner loop gets smaller as the sorting algorithm runs because the number of unsorted items decreases as you go. The index that the inner loop starts at needs to change as the number of sorted items increases, which is why we have to use a separate counter (item) and compute j every time through the inner loop.
|
||||
|
||||
@ -178,15 +178,15 @@ list = [4, 2, 5, 1, 3]
|
||||
min = 1
|
||||
```
|
||||
|
||||
## Insertion Sort
|
||||
### Insertion Sort
|
||||
Take the first student on the left and consider that person sorted. Next, take the next student and compare him to the first student in the sorted section. If he is greater than the first student, then place him to the right of the student in the sorted section. Otherwise, place him to the left of the student in the sorted section. Continue down the line, considering each student in turn and then moving from left to right along the students in the sorted section until you find the proper place for each student to go, shifting the other students to the right to make room.
|
||||
|
||||
### In pseudocode:
|
||||
#### In pseudocode:
|
||||
1. For each element in the unsorted section of the list, compare it against each element in the sorted section of the list until you find its proper place.
|
||||
2. Shift the other elements in the sorted list to the right to make room.
|
||||
3. Insert the element into its proper place in the sorted list.
|
||||
|
||||
### In MakeCode:
|
||||
#### In MakeCode:
|
||||
|
||||
```blocks
|
||||
let j = 0
|
||||
|
@ -153,7 +153,7 @@ decimal = 0
|
||||
binary = ""
|
||||
```
|
||||
|
||||
## Try it out!
|
||||
### Try it out!
|
||||
Have someone else try your program out. Then think about how the program might be improved.
|
||||
Here are some additional modifications you might try:
|
||||
* Add a way to clear the binary and decimal values so you can start over.
|
||||
|
@ -27,11 +27,11 @@ You can stick the micro:bit into place using some sticky tape, or you can create
|
||||
![Binary cash register project](/static/courses/csintro/binary/binary-cash-register.jpg)
|
||||
An implementation of the Binary Cash Register
|
||||
|
||||
## Extra Mods
|
||||
## Extra mods
|
||||
* Write some code that will display the number in binary when you press the A button.
|
||||
* Think of a way to create more place values, perhaps by using a second micro:bit and a Radio connection.
|
||||
|
||||
## Optional Project: Build a Binary Wristwatch
|
||||
## Optional project: Build a binary wristwatch
|
||||
* Write a program that will display the correct time (once set) on the micro:bit.
|
||||
* The 3-4 numbers displayed will be in binary (not decimal).
|
||||
* To make the strap of the wristwatch, put 2 pieces of duct tape back-to-back, and use velcro tabs as the fasteners
|
||||
@ -82,7 +82,7 @@ Have students write a reflection of about 150–300 words, addressing the follow
|
||||
**2 =** Reflection piece lacks 2 of the required elements.<br/>
|
||||
**1 =** Reflection piece lacks 3 of the required elements.
|
||||
|
||||
## Additional Questions to Ponder
|
||||
## Additional questions to ponder
|
||||
* How could you use a row of flashlights to represent a number to someone else far away?
|
||||
* How might you use those flashlights to send a message?
|
||||
|
||||
|
@ -5,14 +5,14 @@ This lesson introduces the use of the boolean data type to control the flow of a
|
||||
![Picture and quote of Shakespeare](/static/courses/csintro/booleans/shakespeare.png)
|
||||
Shakespeare knew Booleans (quote from Hamlet)
|
||||
|
||||
## Lesson Objectives
|
||||
## Lesson objectives
|
||||
Students will...
|
||||
* Understand what booleans and boolean operators are, and why and when to use them in a program.
|
||||
* Learn how to create a boolean, set the boolean to an initial value, and change the value of the boolean within a micro:bit program.
|
||||
* Learn how to use the random true or false block.
|
||||
* Apply the above knowledge and skills to create a unique program that uses booleans and boolean operators as an integral part of the program.
|
||||
|
||||
## Lesson Plan Structure
|
||||
## Lesson structure
|
||||
* Introduction: Booleans in daily life
|
||||
* Unplugged Activity: Two Heads are Better Than One
|
||||
* Micro:bit Activity: Double Coin Flipper
|
||||
|
@ -91,8 +91,8 @@ Because we were able to visualize our blocks as we wrote our pseudocode, we alre
|
||||
|
||||
* We can now simply add this to our current code
|
||||
* And provide user feedback by adding some visuals
|
||||
|
||||
```block
|
||||
|
||||
```blocks
|
||||
let PlayerBScore = 0
|
||||
let PlayerAScore = 0
|
||||
let CoinBHeads = false
|
||||
|
@ -299,8 +299,13 @@ This is an example of a board game in which the micro:bit displays an arrow poin
|
||||
|
||||
|
||||
Here is a portion of the board game's code. A boolean variable is used to determine whose turn it is. If player1Turn is false, then it's player 2's turn. A random number is generated to show the arrow seventy-five percent of the time (for values of 0, 1, or 2).
|
||||
```block
|
||||
if (player1Turn == true && Math.random(4) < 3) {}
|
||||
|
||||
```blocks
|
||||
input.onGesture(Gesture.Shake, () => {
|
||||
if (player1Turn == true && Math.random(4) < 3) {
|
||||
|
||||
}
|
||||
})
|
||||
```
|
||||
|
||||
## Assessment
|
||||
@ -317,8 +322,8 @@ if (player1Turn == true && Math.random(4) < 3) {}
|
||||
### Micro:bit program
|
||||
|
||||
**4 =** micro:bit program:<br/>
|
||||
`*` Uses Boolean variables in a way that is integral to the program<br/>
|
||||
`*` Uses a random function in a way that is integral to the program<br/>
|
||||
`*` Uses Boolean variables in a way that is integral to the program.<br/>
|
||||
`*` Uses a random function in a way that is integral to the program.<br/>
|
||||
`*` Compiles and runs as intended<br/>
|
||||
`*` Meaningful comments in code<br/>
|
||||
**3 =** micro:bit program lacks 1 of the required element.<br/>
|
||||
|
@ -1,4 +1,4 @@
|
||||
## Unplugged: Two Heads are Better Than One
|
||||
## Unplugged: Two heads are better than one
|
||||
|
||||
Materials: A penny for each student, paper and pencils
|
||||
|
||||
@ -193,15 +193,15 @@ basic.forever(() => {
|
||||
})
|
||||
```
|
||||
|
||||
## Random Functions
|
||||
## Random functions
|
||||
|
||||
We use a coin flip to decide things because the result is random, meaning the result happens without any conscious decision or direction. We use dice and game spinners for the same reason. The results are not predetermined or directed in any way.
|
||||
|
||||
So, how do we get a random flip in code? Most computer programming languages have a built in function that will select a random number given a range of values. Microsoft MakeCode has a block for this. And it also has a block for getting a random true or false value.
|
||||
|
||||
We will call on this built in function to get a random true or false value for each flip of a coin in the next [Activity](/courses/csintro/booleans/activity).
|
||||
We will call on this built in function to get a random true or false value for each flip of a coin in the next [activity](/courses/csintro/booleans/activity).
|
||||
|
||||
Our basic pseudocode for our Double Coin Flipper could look like this:
|
||||
Our basic pseudocode for our 'double coin flipper' could look like this:
|
||||
|
||||
1. Use the random function to get a true/false value for Coin A.
|
||||
2. Use the random function to get a true/false value for Coin A.
|
||||
|
@ -6,7 +6,7 @@ Guide the students to create programs using coordinates and LEDs. Each of these
|
||||
* Random Patterns generator - A short exercise using a loop to generate random LED patterns and then checking the status of a specific LED.
|
||||
* Brightness - A short exercise in using the brightness settings for the micro:bit LEDs.
|
||||
|
||||
## Smile Animation
|
||||
## Smile animation
|
||||
|
||||
A short exercise in plotting and toggling LEDs to create a simple animation.
|
||||
* Though students can use the 'show leds' block for images and animation, there is another way to tell the micro:bit what LEDs to turn on and off using coordinates.
|
||||
@ -79,7 +79,7 @@ led.plot(3, 3)
|
||||
* Add a third image to the animation, perhaps a frown face.
|
||||
* Make your own custom animation! What LEDs stay the same and which need to be toggled?
|
||||
|
||||
## Random Patterns generator
|
||||
## Random patterns generator
|
||||
A short exercise using a loop to generate random LED patterns and then checking the status of a specific LED.
|
||||
Pseudocode:
|
||||
* On button A pressed we’ll use a loop to turn on a random set of LED lights on our micro:bit.
|
||||
@ -129,7 +129,7 @@ input.onButtonPressed(Button.B, () => {
|
||||
})
|
||||
```
|
||||
|
||||
Try it out!
|
||||
### Try it out!
|
||||
* Download the program to your micro:bit
|
||||
* Press button A to create a random pattern
|
||||
* Press button B to check and display the status of the specific LED
|
||||
@ -193,6 +193,6 @@ led.setBrightness(255)
|
||||
basic.showIcon(IconNames.Heart)
|
||||
```
|
||||
|
||||
Try it out!
|
||||
### Try it out!
|
||||
|
||||
* What happens if adding 25 or subtracting 25 from the current brightness level would result in a sum or difference outside of the 0 to 255 brightness range?
|
||||
|
@ -11,7 +11,7 @@ Your task is to create:
|
||||
|
||||
1. A "screen saver" animation using the plot/unplot blocks. You can fill the screen line by line, pausing between each one, or fill it with a random constellation of stars.
|
||||
|
||||
OR
|
||||
>-- OR --
|
||||
|
||||
1. A game that uses sprites to manage the x and y coordinate values of the different objects.
|
||||
|
||||
@ -19,7 +19,7 @@ Your project might use variables to store the values of sprites, which are speci
|
||||
|
||||
## Project Ideas
|
||||
|
||||
### Firework Screensaver
|
||||
### Firework screensaver
|
||||
|
||||
This project uses a for loop with the plot/unplot blocks to create a symmetrical design on the screen. This student used a subtraction operation to get a variable that decreases as the index variable in the loop increases.
|
||||
|
||||
@ -40,7 +40,7 @@ basic.forever(() => {
|
||||
})
|
||||
```
|
||||
|
||||
### Cascade Screensaver
|
||||
### Cascade screensaver
|
||||
|
||||
This example creates a diagonal cascading effect across the screen. Note the use of a variable (speed) to allow you to easily change the speed of the animation by changing just one number value.
|
||||
|
||||
@ -81,7 +81,7 @@ basic.forever(() => {
|
||||
speed = 10
|
||||
```
|
||||
|
||||
### Dodge Ball Game
|
||||
### Dodge ball game
|
||||
This is a Dodge Ball game that uses one sprite (dodger) to try to avoid another sprite (ball). You use the A and B buttons to move the dodger to avoid the balls that are falling from the top of the screen.
|
||||
|
||||
Here is the complete Dodge Ball program.
|
||||
|
@ -36,7 +36,7 @@ Since their grid is only one quarter the size of the original Battleship grid, s
|
||||
|
||||
The game can be played with just paper and pencils or you could use small tokens and markers, like coins, buttons, or paper clips to represent the ships.
|
||||
|
||||
Notes
|
||||
### Notes:
|
||||
* Place students’ grids in sheet protectors or laminate them so they can be used again and again with white board (dry erase) markers.
|
||||
* The official rules of Battleship are easily found on the internet. Modify them as needed for your particular class.
|
||||
|
||||
|
@ -1,12 +1,12 @@
|
||||
# Final Project Examples
|
||||
# Final project examples
|
||||
|
||||
## 1. Baseball Pitch Counter
|
||||
## 1. Baseball pitch counter
|
||||
|
||||
![Baseball pitch counter](/static/courses/csintro/finalproject/baseball-pitch-counter.png)
|
||||
|
||||
This project straps to a pitcher's arm and uses the micro:bit accelerometer to record how many pitches have been thrown in a session.
|
||||
|
||||
## 2. micro:bit Wrist-Mounted Step Counter and Compass
|
||||
## 2. micro:bit wrist-mounted step counter and compass
|
||||
|
||||
![Step counter and compass](/static/courses/csintro/finalproject/step-counter.png)
|
||||
|
||||
@ -14,14 +14,14 @@ This project straps to a pitcher's arm and uses the micro:bit accelerometer to r
|
||||
|
||||
This project straps to your wrist, displays a compass that updates as you walk around, and keeps track of your steps. The micro:bit is elevated to allow room for the battery pack to fit underneath.
|
||||
|
||||
## 3. Combination Lock Box
|
||||
## 3. Combination lock box
|
||||
|
||||
[**micro:bit Combination lockbox**](https://youtu.be/OXks3MJWhhk)
|
||||
https://youtu.be/OXks3MJWhhk
|
||||
<br/>
|
||||
This project features a secret combination that opens the top of the box using a servo motor.
|
||||
|
||||
## 4. Violin Tuner
|
||||
## 4. Violin tuner
|
||||
|
||||
![Violin tuner mount](/static/courses/csintro/finalproject/violin-tuner-mount.png)
|
||||
|
||||
@ -29,7 +29,7 @@ This project features a secret combination that opens the top of the box using a
|
||||
|
||||
This project uses a piece of cardboard to mount the micro:bit to the side of a violin. This student wanted to use it to tune his violin by playing a specific series of tones. The micro:bit displays the note being played.
|
||||
|
||||
## 5. Trumpet Angle Detector
|
||||
## 5. Trumpet angle detector
|
||||
|
||||
![Trumpet angle detector](/static/courses/csintro/finalproject/trumpet-angle-detector.jpg)
|
||||
|
||||
|
@ -40,10 +40,10 @@ Teacher Note: This form of assessment places just as much weight on documenting
|
||||
|
||||
However, you may decide to assign more or less weight to each of these pieces, and you should certainly feel free to scale up or down the documentation piece as appropriate for your classroom, grade level, and teaching priorities.
|
||||
|
||||
## While Working on the Project
|
||||
## While working on the project
|
||||
The expectation is that you are working steadily on your independent project for three weeks, testing out ideas, trying things out, getting stuck, and getting yourself unstuck. Because everyone is working on a different project, we can't assign the same homework to everybody so besides the project work itself, you are also responsible for documenting the work you are doing on the project using work logs, and reflecting on the process of your learning in a record of thinking. Here are more details on these.
|
||||
|
||||
## Work Logs
|
||||
## Work logs
|
||||
A work log is a short, bullet point list of what you worked on, and how long it took. Stick to just the facts. It shouldn’t take more than thirty seconds or so to write up a work log. Students should do one for every class, several times a week. A shared Microsoft OneNote notebook is a great way to keep a work log that students can update regularly. Alternately, you might use a collaborative shared document, or your classroom management system, or even e-mail.
|
||||
|
||||
Sample Work Log:
|
||||
@ -54,9 +54,9 @@ Sample Work Log:
|
||||
4/3: 45 min. Hot glued NeoPixel strip to outside of dinosaur, finished painting<br/>
|
||||
4/4: 30 min. Coded lighting patterns in pxt._
|
||||
|
||||
**Teacher Note:** We generally don't accept late work logs. If a student simply didn't have time to do any work on the project, he should still file a work log, and report that no work got done. Work logs are worth a few points each, so missing one or two isn't a problem, but if it happens a lot it's usually time to do a check-in with that student and see where she is with the project.
|
||||
**Teacher note:** We generally don't accept late work logs. If a student simply didn't have time to do any work on the project, he should still file a work log, and report that no work got done. Work logs are worth a few points each, so missing one or two isn't a problem, but if it happens a lot it's usually time to do a check-in with that student and see where she is with the project.
|
||||
|
||||
## Record of Thinking
|
||||
## Record of thinking
|
||||
A Record of Thinking is like a journal entry (or like the reflection that you did for the mini-project) that tells the story of your learning throughout the past week. Go through your work logs for the week and look at what you did, where you got stuck, and how you figured it out.
|
||||
|
||||
Then write a 150- to 300-word Record of Thinking addressing the following:
|
||||
@ -74,7 +74,7 @@ I guess I would choose the word "elated" because that's what I am feeling right
|
||||
|
||||
Teacher Note: A Record of Thinking is not an expanded work log! Students will sometimes just write a more detailed list of all of the tasks they completed over the week, and that's not the point of the Record of Thinking. The Work Logs are to show WHAT you did. The Record of Thinking is to show HOW you learned how to do it. Unlike Work Logs, I will accept late Records of Thinking as long as they come no later than the due date for the next week’s Record of Thinking. It is an important form of documentation of the learning process.
|
||||
|
||||
## Turning in the Final Project
|
||||
## Turning in the final project
|
||||
When you turn in the final project, you should turn in your code, and a final narrative.
|
||||
To turn in your code, you can Share the code by clicking the Share button at the top of the MakeCode window (next to Projects).
|
||||
|
||||
@ -116,12 +116,12 @@ Sample Final Narrative:
|
||||
|
||||
>_Once I started to get a little more clear on what to do, I was able to get more effective help from my classmates. Specifically, Jordan helped me a lot with figuring out how to get an image to display properly on the screen. He also showed me how to search through the online documentation more effectively. I think if I could do this over again, I would have scheduled more time earlier to meet with Mr. Kiang and/or found a better way to share the different online sites with my table mates because we all found different places to go. I didn’t even find out until the end that you could jump into JavaScript to make changes to the code, and it makes it all with the right blocks when you go back! (Beta Testing notes) That would have saved me a lot of time._
|
||||
|
||||
## Beta Testing
|
||||
## Beta testing
|
||||
Beta testing is an important part of testing the final projects to uncover bugs or design issues that could make the projects difficult to use. One way to test the projects is to ask all students to come in to class on a specific day with the projects ready to test. This is not the final deadline, but projects should be "feature-complete" i.e., all features need to be incorporated into the micro:bit, and the construction of the real world elements of the project need to be done or almost done.
|
||||
|
||||
Students can take turns presenting their projects to the entire class, or they can work in pairs to take turns trying their partner's project out and offering feedback. Students who are being critiqued should take beta testing feedback notes and turn them in as part of their final project narrative.
|
||||
|
||||
## Final Showcase
|
||||
## Final showcase
|
||||
Have a celebration of your students' hard work and hold an event at your school for parents, administrators, and other community members to appreciate all of the hard work that went into making each of the final projects.
|
||||
|
||||
We have found that a "science fair" format works nicely, with students sitting at tables where they can demonstrate their projects and answer questions. Some schools do a "shark tank" type of event where students take turns "pitching" their project ideas to a panel composed of local software developers, entrepreneurs, and investors. Either way, a little public recognition of all of your students' hard work goes a long way!
|
||||
|
@ -37,19 +37,18 @@ This course takes approximately 14 weeks to complete, spending about 1 week on e
|
||||
|
||||
## Overall Course Scope & Sequence:
|
||||
|
||||
1. [Making](/csintro/making)
|
||||
2. Algorithms
|
||||
3. Variables
|
||||
4. Conditionals
|
||||
5. Iteration
|
||||
6. Review/Mini-Project
|
||||
7. Coordinate Grid System
|
||||
8. Booleans
|
||||
9. Music and Arrays
|
||||
10. Bits, Bytes, and Binary
|
||||
11. Radio
|
||||
12. Arrays
|
||||
13. Independent Final Project
|
||||
1. [Making](/courses/csintro/making)
|
||||
2. [Algorithms](/courses/csintro/algorithms)
|
||||
3. [Variables](/courses/csintro/variables)
|
||||
4. [Conditionals](/courses/csintro/conditionals)
|
||||
5. [Iteration](/courses/csintro/iteration)
|
||||
6. [Review/Mini-Project](courses/csintro/miniproject)
|
||||
7. [Coordinate Grid System](/courses/csintro/coordinates)
|
||||
8. [Booleans](/courses/csintro/booleans)
|
||||
9. [Bits, Bytes, and Binary](/courses/csintro/binary)
|
||||
10. [Radio](/courses/csintro/radio)
|
||||
11. [Arrays](/courses/csintro/arrays)
|
||||
12. [Independent Final Project](/courses/csintro/finalproject)
|
||||
|
||||
Each of the 12 lessons is comprised of the following parts:
|
||||
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
This lesson introduces the concept of looping and iteration. Presents the 'While' block as a combination of an iteration and a conditional statement.
|
||||
|
||||
## Lesson Objectives
|
||||
## Lesson objectives
|
||||
|
||||
Students will...
|
||||
* Understand the value of iteration in programming
|
||||
@ -10,7 +10,7 @@ Students will...
|
||||
* Learn how and when to use the Looping blocks ‘repeat’, ‘while’, and ‘for’
|
||||
* Apply the above knowledge and skills to create a unique program that uses iteration and looping as an integral part of the program
|
||||
|
||||
## Lesson Structure
|
||||
## Lesson structure
|
||||
|
||||
* Introduction: Lather. Rinse. Repeat.
|
||||
* Unplugged Activity: Walk a Square pseudocode
|
||||
|
@ -114,7 +114,7 @@ If there is time, let the students experiment with changing the parameters to se
|
||||
|
||||
We just used the first of the 3 different types of Loop blocks available to us. What about the other 2 loop blocks, ‘while’ and ‘for’?
|
||||
|
||||
## ‘For’ block: Traveling light
|
||||
## ‘For’ block: traveling light
|
||||
|
||||
The ‘for’ block is useful when you have a variable in your loop that you want to change by a fixed amount within a specific range each time through a loop. What does this mean? Let’s look at an example.
|
||||
|
||||
@ -265,4 +265,4 @@ Example Pseudocode:
|
||||
|
||||
_When someone shakes the micro:bit, while button A is not pressed, play the two tone alarm twice. Keep playing the alarm tones until the user presses the A button._
|
||||
|
||||
To use sound with your micro:bit, you will need to connect it to some speakers or headphones. See how to do this here: https://pxt.microbit.org/projects/hack-your-headphones
|
||||
To use sound with your micro:bit, you will need to connect it to some speakers or headphones. See how to do this here: [Hack you headphones](/projects/hack-your-headphones).
|
||||
|
@ -68,9 +68,9 @@ Have students write a reflection of about 150–300 words, addressing the follow
|
||||
`*` Uses loops in a way that is integral to the program<br/>
|
||||
`*` Compiles and runs as intended<br/>
|
||||
`*` Meaningful comments in code<br/>
|
||||
**3 =** micro:bit program lacks 1 of the required elements<br/>
|
||||
**2 =** micro:bit program lacks 2 of the required elements<br/>
|
||||
**1 =** micro:bit program lacks 3 or more of the required elements
|
||||
**3 =** micro:bit program lacks 1 of the required elements.<br/>
|
||||
**2 =** micro:bit program lacks 2 of the required elements.<br/>
|
||||
**1 =** micro:bit program lacks 3 or more of the required elements.
|
||||
|
||||
### Collaboration reflection
|
||||
**4 =** Reflection piece includes:<br/>
|
||||
|
@ -6,7 +6,7 @@ on incorporating the physical micro:bit into a basic making activity.
|
||||
|
||||
![micro:bit board](/static/courses/csintro/making/microbit-board.png)
|
||||
|
||||
## Lesson Objectives
|
||||
## Lesson objectives
|
||||
Students will...
|
||||
|
||||
* Exercise creativity and resourcefulness by coming up with ideas for using simple household materials to accommodate the micro:bit’s size and weight in many different ways.
|
||||
@ -15,10 +15,13 @@ Students will...
|
||||
* Use the design thinking process to develop an understanding for a problem or user need.
|
||||
* Apply their understanding in a creative way by making a “micro:pet” creature.
|
||||
|
||||
## Lesson Plan Structure
|
||||
## Lesson plan
|
||||
|
||||
* [Introduction: The micro:bit is for making](/courses/csintro/making/introduction)
|
||||
* [Unplugged Activity: Design Thinking](/courses/csintro/making/unplugged)
|
||||
* [Walkthrough Activity: MakeCode download](/courses/csintro/making/walkthrough)
|
||||
* [Project: Micro:pet (including mods and rubric)](/courses/csintro/making/project)
|
||||
* [Standards: listed](/courses/csintro/making/standards)
|
||||
* [**Introduction**: The micro:bit is for making](/courses/csintro/making/introduction)
|
||||
* [**Unplugged**: Design Thinking](/courses/csintro/making/unplugged)
|
||||
* [**Activity**: MakeCode download](/courses/csintro/making/activity)
|
||||
* [**Project**: Micro:pet (including mods and rubric)](/courses/csintro/making/project)
|
||||
|
||||
## Related standards
|
||||
|
||||
[Targeted CSTA standards](/courses/csintro/making/standards)
|
@ -10,7 +10,7 @@ It also reinforces the important idea that how you solve problems is at least as
|
||||
|
||||
## Lesson plan
|
||||
|
||||
1. [**Review**: Look back at what we've learned so far](/courses/csintro/miniproject/review)
|
||||
1. [**Review**: Looking back at what we've learned so far](/courses/csintro/miniproject/review)
|
||||
3. [**Activity**: Collaboratively independent](/courses/csintro/miniproject/activity)
|
||||
4. [**Project**: Mini-project](/courses/csintro/miniproject/project)
|
||||
|
||||
|
@ -52,7 +52,7 @@ View projects at the following sites for inspiration:
|
||||
* http://make.techwillsaveus.com/bbc-microbit
|
||||
* http://microbit.org/ideas/
|
||||
* https://twitter.com/MicroMonstersUK
|
||||
* https://pxt.microbit.org/projects
|
||||
* [Projects](/projects)
|
||||
|
||||
## Examples
|
||||
|
||||
|
@ -8,7 +8,7 @@ Take this time to review the concepts we have covered so far.
|
||||
|
||||
The micro:bit is very effective at bringing real things to life. It can be supported in a cardboard holder, attached to a wand, or even sewn into fabric. The design thinking process is a helpful way to gather more information about the person who will be using whatever you are designing.
|
||||
|
||||
## Processing and Algorithms
|
||||
## Processing and algorithms
|
||||
|
||||
The code you write for the micro:bit processes data from its inputs, and outputs it in some way. An algorithm is a series of specific instructions, or steps, that solve a problem or accomplish a task.
|
||||
|
||||
@ -20,6 +20,6 @@ Variables store information so that it can be accessed or referenced later. Some
|
||||
|
||||
Conditional statements tell the computer when to do something. They are used to create branches, or decision points, where a program can choose one path or the other based on the values of certain variables, or based on data from the micro:bit’s inputs. Conditional statements can be nested inside one another so that both conditions must be true in order for the enclosed statements to run.
|
||||
|
||||
## Iteration and Looping
|
||||
## Iteration and looping
|
||||
|
||||
Portions of your code can be made to run over and over by using a Repeat or a For block loop. This allows you to iterate over several different variables, or items in a group, and do something to each of them. You can also combine a conditional statement an
|
@ -18,8 +18,7 @@ The goals of this activity are:
|
||||
![Biohazard symbol](/static/courses/csintro/radio/infection.png)
|
||||
|
||||
## Setup
|
||||
This site is the home page for the Infection game:
|
||||
https://pxt.microbit.org/projects/infection
|
||||
This site is the home page for the Infection game: [Infection](/projects/infection).
|
||||
|
||||
On that page you should be able to copy the JavaScript code, then go to your MakeCode JavaScript editor and paste the JavaScript code into the window.
|
||||
|
||||
|
@ -13,7 +13,7 @@ Remind the students of all the different inputs available to them through the mi
|
||||
|
||||
### Duct tape wallet
|
||||
|
||||
You can find instructions on the web for creating a durable, fashionable wallet or purse out of duct tape (https://pxt.microbit.org/projects/wallet). Create a place for the micro:bit to fit securely. Use Button A to add dollars to the wallet, and Button B to subtract dollars from the wallet.
|
||||
You can see the instructions for creating a durable, fashionable wallet or purse out of duct tape: [Duct tape wallet](/projects/wallet). Create a place for the micro:bit to fit securely. Use Button A to add dollars to the wallet, and Button B to subtract dollars from the wallet.
|
||||
|
||||
**Extra mod:** Use other inputs to handle cents, and provide a way to display how much money is in the wallet in dollars and cents.
|
||||
|
||||
|
BIN
docs/static/courses/csintro/icons/adobe-pdf-file-icon-24x24.png
vendored
Normal file
BIN
docs/static/courses/csintro/icons/adobe-pdf-file-icon-24x24.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.3 KiB |
BIN
docs/static/courses/csintro/icons/apple-itunes-ibook-24x24.png
vendored
Normal file
BIN
docs/static/courses/csintro/icons/apple-itunes-ibook-24x24.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.5 KiB |
BIN
docs/static/courses/csintro/icons/microsoft-onenote-24x24.png
vendored
Normal file
BIN
docs/static/courses/csintro/icons/microsoft-onenote-24x24.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
BIN
docs/static/courses/csintro/microbitman.jpg
vendored
BIN
docs/static/courses/csintro/microbitman.jpg
vendored
Binary file not shown.
Before Width: | Height: | Size: 57 KiB After Width: | Height: | Size: 82 KiB |
Loading…
Reference in New Issue
Block a user