Add the 'Mini project' lesson to csintro. (#431)

This commit is contained in:
Galen Nickel 2017-06-28 22:14:14 -07:00 committed by Peli de Halleux
parent 96815675a3
commit 762771277f
12 changed files with 240 additions and 1 deletions

View File

@ -85,6 +85,11 @@
* [Activity](/courses/csintro/iteration/activity)
* [Project](/courses/csintro/iteration/project)
* [Standards](/courses/csintro/iteration/standards)
* [Mini-project](/courses/csintro/miniproject)
* [Review](/courses/csintro/miniproject/review)
* [Activity](/courses/csintro/miniproject/activity)
* [Project](/courses/csintro/miniproject/project)
* [Standards](/courses/csintro/miniproject/standards)
## #reference

View File

@ -36,7 +36,7 @@ UNDER CONSTRUCTION: We are still migrating the CSIntro content to this format...
3. [Variables](/courses/csintro/variables)
4. [Conditionals](/courses/csintro/conditionals)
5. [Iteration](/courses/csintro/iteration)
6. Review/Mini-Project
6. [Review/Mini-Project](/courses/csintro/miniproject)
7. Coordinate Grid System
8. Booleans
9. Music and Arrays

View File

@ -0,0 +1,19 @@
# Mini-project
In this unit, we will be reviewing the concepts we covered in the previous weeks, and providing some ideas for an independent “mini-project” students can focus on in the next several classes. We will also introduce a framework for keeping students accountable to the work they are doing individually and in groups, and providing a rubric for assessment of the development process, as well as the finished product.
It is important to allow students to practice accounting for the work they are doing on a short “mini-project” like this, so that when they move on to an independent project spanning multiple weeks, it will be easier for you to keep track of what everybody is doing.
It also reinforces the important idea that how you solve problems is at least as important to learning as whether you solved them at all (or even got the right answer). Programming is a process of patient problem-solving, and finding ways to value, acknowledge, and reward the problem-solving process is an important part of assessment.
![Ideas](/static/courses/csintro/miniproject/ideas.png)
## Lesson plan
1. [**Review**: Look 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)
## Related standards
[Targeted CSTA standards](/courses/csintro/miniproject/standards)

View File

@ -0,0 +1,38 @@
# Activity: Collaboratively independent
Teachers want their students to collaborate on projects but they also want to be able to hold them accountable for getting their work done. Many teachers struggle with assessing exactly how much each individual contributed to a group project, as well as making sure that everyone does his or her “fair share”.
The Mini-Project (and the Final Project) are not group projects. Students are asked to propose their own independent project and are expected to get it done. But they are not on their own in this process! We build in frequent opportunities for students to collaborate and share the collective knowledge of the class as they go. We ask them to be “collaboratively independent.”
Here is how we structure our classes:
## Beginning of class
For groups of 15 or so, have students each **_briefly_** (no more than 30 seconds or so) report on their progress in front of the group:
* One-line description of project
* Their progress so far
* Something they are going to work on figuring out today
It is important that everyone else is listening to each project and volunteering their help or solutions if they are figuring out the same thing or if they have solved that problem in a previous class.
>Example:
_Im working on a pinball machine. So far I have done the board and the ramp. Today I am going to be working on wiring the bumpers so that when the ball hits the bumper, the micro:bit detects it and displays the score._
>Sample response from a classmate:
_Yesterday I wired up my targets so that when you throw a ball it keeps score. I can show you how I did it._
Ideally students who are working on projects should be aware of what other students are working on and what they are figuring out. It creates more opportunities for collaboration in the classroom and can encourage students to seek help from each other rather than all waiting in line to talk to you.
Its important to hear from everybody but it shouldnt take more than five or ten minutes. For groups larger than 15 or 20 students, you may want to split them into two or three larger groups and have them report out to each other.
![Quick progress report](/static/courses/csintro/miniproject/quick-progress-report.png)
## During class
This is a time to circulate and check in with students individually, starting with those students who seem to still be stuck from last time. For the most part, students should be working on their projects in small groups, helping each other wherever and whenever possible.
## End of class
About ten minutes before the end of class, you can have students do a “work-in-progress” report. Gather the students together and have them move from table to table while each student presents one thing that he or she figured out during the class. This is really an informal presentation, and it is understood that it is not finished at all; it is still a “work in progress.” But everyone needs to show something, and the entire group needs to move as one throughout the classroom, almost like physicians making rounds in a hospital. This is an important way to spread ideas throughout the classroom, and to “cross-pollinate” with helpful tips and techniques.
Work-in-progress reports should be short, no more than twenty or thirty seconds. If you have a large class, you might divide the class into several large groups and have them present to each other.
![Work in progress report](/static/courses/csintro/miniproject/work-in-progress-report.png)

View File

@ -0,0 +1,145 @@
## Project: Mini-Project
This project takes approximately a week to complete. Most of that time is spent working on the project in a makerspace or art classroom.
The mini-project is an opportunity for students to design a project that serves a purpose by solving a problem or filling a need. It is also an opportunity to do two things:
* Show what you know
* Learn something new
Ideally, there should be a maker component to this project. This is a real world component that works with the code on the micro:bit to do something unique.
Students are asked to each propose an original independent project. Students are allowed to work on the same idea, but they cannot turn in the same code. They can, and should work collaboratively, solving the same kinds of problems together, but the projects they turn in should be unique and original.
## Showcasing student work
Students will be showing their work regularly to each other in informal ways. Think about also organizing a day or an evening when parents, administrators, or others from the community are invited to come and view the students' projects.
We find that a "science fair" type of setup works well here, with students stationed at their own tables, showing off and demonstrating their project. An event like this works well for these reasons:
* A real world audience for the work students have done can be very motivating
* It is a chance for people who are not familiar with the micro:bit to appreciate the finished product
* It provides good feedback to students about how someone interacts with their product
* It is a chance to have real conversations with the people behind the product, rather than just viewing the product on display by itself
* Finally, and most importantly, it is a chance to bring the community together to celebrate the great work all of your students have done!
## Assignment
* Create an original project using the micro:bit.
* Incorporate a physical component to the project.
* Demonstrate the use of one of the following concepts:
>* Input / Processing / Output
* Variables
* Simple Circuits
* Iteration/Loops
* Conditional Statements
## Project ideas
* Make a “New and Improved” Fidget Cube
* Make a Moving Monster
* Make a musical instrument
* Fishing Game
* Make an Air Guitar (uses while loop to do tempo and pitch)
* Screensaver
* Screensaver that uses other inputs to draw
* Interactive book
* Binary Clock or some other way to represent numbers visually
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
## Examples
![Toss the ball project](/static/courses/csintro/miniproject/toss-the-ball.jpg)
Toss the Ball
This is a skill game in which an aluminum foil ball is thrown into a plastic cup. Copper tape lining the sides and bottom of the cup completes the circuit when the ball touches it.
[**micro:bit Bullseye Project**](https://youtu.be/NZUpoSixf4E)
https://youtu.be/NZUpoSixf4E
This is a skill game in which tennis balls are thrown underhand at one of the three rings, which are lined with aluminum foil so they complete a circuit underneath when the ball makes contact with the ring.
[**micro:bit Storybook**](https://youtu.be/yg1NNLMqa9c)
https://youtu.be/yg1NNLMqa9c
This is a prototype of a storybook that could use the micro:bit to display animations for part of the story. Copper tape is used on the underside of the paper flaps to make contact between the GND pin and each of the other pins in sequence.
## Work logs
Because students are working on the projects in class, and much of the benefit comes from working together to solve problems, they should account for the work they are doing by writing a work log.
A work log is a short, bullet point list of what they worked on, and how long it took. Stick to the facts. It shouldnt take more than thirty seconds or so to write up a work log. Students should do one for every class. 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
>**_April 11_**<br/>
_20 min. Created code that reacts when pins P0 and P1 are pressed._<br/>
_0 min. Talked with Mr. Kiang about how to attach wires so they wont fall off_<br/>
_20 min. Put target back together with pins_<br/>
_10 min. Helped Cody with attaching his scoreboard_
## Reflection
At the end of the week, students should compose a final reflection that summarizes the process of their learning over the course of the week. They should go back through their work logs and talk about the following:
* Talk about one challenge you faced in creating this project, either a challenge in coding or in making the artifact. How did you overcome this challenge?
* What did you demonstrate that you already knew?
* What was the new thing you learned in order to make this? How did you learn about it?
* Who in the class provided help to you along the way? How?
* Describe one specific thing you are proud of in this project.
* What would you do differently next time?
* If you had another week to work on this project, what might you add or improve?
Sample Reflection (excerpt)
>_“I spent this week finishing up little details with my program, making it work better and more user friendly. The part that surprised me the most was the little things that kept popping into my head, little suggestions that could potentially be good to add, but might not be necessary or even useful. At the beginning of the assignment, I just added them as quickly as I thought of them, but as the project neared the midpoint and conclusion, I find myself considering if I actually need them (as previous additions have been since quickly deleted). Another thing that I find interesting about this is that it is a rather specialized project. Not many people would use it except for me. However, this is supposed to be easily used by other people, so I have to take them into consideration as I design the project. I also realized that I had, at some point, broken part of my code without realizing it, so I now have to fix part of it. The reason that it is a problem is because I added a lot of code at once without deleting it, which is unfortunate. Next time I will add small amounts of code and test it first.”_
## Assessment
**Competency scores**: 4, 3, 2, 1
### Code - Show what you know
**4 =** Code very effectively demonstrates the use of previous concept(s). Variable names are unique and clearly describe what information values the variables hold. Code is highly efficient.<br/>
**3 =** Code only partially demonstrates previous concepts, and/or is not efficient.<br/>
**2 =** Code only partially demonstrates previous concepts, and/or is not efficient, variable names not clear.<br/>
**1 =** Code does not demonstrate previous concepts, is not efficient, variable names not clear.
### Code - Show something new
**4 =** Code very effectively demonstrates the use of new concept(s). Variable names are unique and clearly describe what information values the variables hold. Code is highly efficient.<br/>
**3 =** Code only minimally demonstrates new concepts, and/or is not efficient.<br/>
**2 =** Code only minimally demonstrates new concepts, and/or is not efficient, variable names not clear.<br/>
**1 =** Code does not demonstrate new concepts, is not efficient, variable names not clear.<br/>
### Maker component
**4 =** Tangible component is tightly integrated with the micro:bit and each relies heavily on the other to make the project complete.<br/>
**3 =**Tangible component is somewhat integrated with the micro:bit but is not essential.<br/>
**2 =** Tangible component does not add to the functionality of the program.<br/>
**1 =** No tangible component.
### Work Logs
**4 =** All work logs submitted on time, and accurate.<br/>
**3 =** One late or missing work log and/or work logs not accurate nor sufficiently detailed.<br/>
**2 =** Two late or missing work logs and/or work logs not accurate nor sufficiently detailed.<br/>
**1 =** More than two late or missing work logs and/or not accurate nor sufficiently detailed.
### Reflection
**4 =** Reflection piece describes:<br/>
`*` Development Process<br/>
`*` Something new<br/>
`*` Something proud of<br/>
`*` Future mods<br/>
**3 =** Reflection piece lacks 1 of the required elements.<br/>
**3 =** Reflection piece lacks 2 of the required elements.<br/>
**1 =** Reflection piece lacks 3 of the required elements.
 

View File

@ -0,0 +1,25 @@
# Review
![Take another look](/static/courses/csintro/miniproject/review.jpg)
Take this time to review the concepts we have covered so far.
## Making
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
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.
## Variables
Variables store information so that it can be accessed or referenced later. Some variables hold information that changes, and some hold information that stays constant. It is important to name your variables with something that explains what type of information it holds. Using variables in your code allows you to create algorithms that use mathematical operations to perform the same calculations every time, even when the values of your variables are different.
## Conditionals
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:bits 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
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

View File

@ -0,0 +1,7 @@
# Standards
## CSTA K-12 Computer Science Standards
* CL.L2-03 Collaborate with peers, experts, and others using collaborative practices such as pair programming, working in project teams, and participating in group active learning activities.
* CL.L2-04 Exhibit dispositions necessary for collaboration: providing useful feedback, integrating feedback, understanding and accepting multiple perspectives, socialization.   
* CL.L2-05 Implement problem solutions using a programming language, including: looping behavior, conditional statements, logic, expressions, variables, and functions.

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB