Monday, November 17, 2014

How to Use Scratch in Your Non-Programming Course!

There are so many ways to incorporate programming into a course that isn't about programming.  And since I want you to see how amazing coding is, I'm going to give you everything you need to make it work for you.  :)

Okay, here's the easiest way to program in a class that's not about programming: Scratch.

Scratch is a easy-to-learn programming language that's based on building blocks.  There's no messy syntax, no complicated typing ... it's just drag and drop blocks.  It's actually a brilliant idea that MIT came up with; teach the kids the big ideas of programming in Scratch where they don't have to worry about forgetting semi-colons or brackets.

It's also great because it's pretty easy to pick up!  Seriously, most kids I've worked with start getting the hang of it after only 15 - 20 minutes.  Some even faster than that.

----------------------------------------------

What to Do ...

So the important part: how you can use it in your classroom.  Here are some project ideas and some examples that other teachers have done:

Foreign Language:
Make an animation of a conversation between two people.  You could have students do this with just text or with audio.  You could even have a character in the animation have a conversation with the user.  Or have students make a quiz game on new vocab words or explain cultural/historical events with maps and animations.

Social Studies:
Animate a historical event like Paul Revere's ride or the significance of cowboys (although those examples definitely took more than an hour!).  Create a conversation between two historical characters or make a timeline like in this video which is a little more realistic to do in an hour.

Science:
Illustrate magnetic fields, blood flow in the heart, or other phenomenon in an animation.  Have two characters discuss a concept or create an interactive version of the table of elements.  There are some pretty cool calculations you can do too ... students could make a calculator to find Force, Work, or other calculations in a physics class.

Math:
There are countless project options on tessellations and drawing polygons, and you can do pretty much any calculation you want (unit converters,  matrix calculations, area, checking for prime numbers, etc.).  The sky is the limit.  :)

English:
Use animations to explain fallacies, discuss a book's theme, or recap part of a story.  Students could create animations to represent poems or to accompany readings.  Pretty much any presentation can be represented using an animation!

Art and Graphic Design:
Your options are endless!  From the more complicated to the simple to the informative, you can have lots of fun using Scratch with your students.

Health, Business, Foods, and Other Electives:
Basically any time students are doing presentations is a good time to incorporate Scratch.  You can have students present information in the form of a simple animation or an interactive diagram.


----------------------------------------------

How to Do It ...

Once you've decided how you want to incorporate Scratch into your classroom, check out these tools to help you implement it:

- I made a video tutorial that shows students how to make a very basic animation.  The tutorial takes 15 to 20 minutes, depending on how long students experiment.  They should pause the video as they watch to try things out in Scratch.

- My YouTube site has a Scratch playlist with lots of tutorials (some I made, some I found) to help students make some really cool projects.

- If you're a Mayo High School teacher reading this, I will be available after school on Tuesday, December 2nd in my classroom to do a live demo if you want.  Or just send me an email if you have questions.  :)

----------------------------------------------

Sample Lesson Plan

1. You should meet your students in the computer lab for class.  Have these student directions up on the board or printed and placed on the tables when they come in.  Feel free to download and edit as needed.

2. Have your students turn off their monitors and turn to face you.  Then take about 5 minutes to explain your project to the students.

3. Distribute a checklist of things the project should contain.  This will keep your students focused (and make it easier for you to grade their products!).  Here's an example for a history lesson on Confucius:

Make an animation that explains one or more of Confucius's sayings.  Your animation should include:
  • The quote
  • An accurate representation of the saying
  • At least two sprites
  • At least three blocks of code
  • School appropriate content

4. Direct the students to the video tutorial on my YouTube page.  They should work through this individually, pausing the video as they go to try the code for themselves.  I recommend headphones so you don't have to hear my voice all over the room.  :)

5. When they are done with the tutorial, they have the rest of the hour to make their project.  There are other tutorials on my YouTube page for them to watch if they want to learn more advanced techniques.

6. If a student gets stuck and you don't know what to do:
  • Google the question (it works like 90% of the time)
  • Look in the Scratch help section
  • Ask other students if they know how to solve the problem
  • And if none of those work, tell the student to find a work around so they can continue producing their project
7. To turn in their projects, students will email you a link to their page.  This is explained on the student directions.


----------------------------------------------

I know it's more work than doing what you've always done, but programming is so much fun.  Do you want to see kids ignore the bell when it rings at the end of the hour?  Then you have to try this.

If you have any questions at all, please do not hesitate to send me an email!

Some Statistics on Programming ...

We're making podcasts for one of my master's courses this week, so here's my podcast on the statistics of programming.  We desperately need more computer scientists, please consider introducing programming into your school or classroom!

Thursday, November 13, 2014

Wednesday, November 5, 2014

The Blog That's Been In My Head For A Year

I've wanted to put my experiences into a blog since pretty much the first day of my teaching career.  But since I am a new teacher, my time has been limited to getting stuff done for the next day and sleeping.  This has been me, in GIF form:



But I'm ready to share!  And I'll start by talking about blogs in general, since that's what we're doing this week for one of my master's classes.  :)

I don't think blogs are any different than other forms of writing, although everyone uses them in different ways.  For some, blogs are an outlet to anonymously share emotions and experiences that might be tough to deal with.  For others, blogs are a way to network and meet other people in similar professions.  Still others use blogs to share their talents and skills with the online world.

I love that blogs give people a way to project their voices.  My favorite blogs are written by my friends because reading them makes me feel like we're having a conversation.  How cool is it that we can stay so connected to the ones we love even though we're states and even continents away?

My hope is that this blog will be a way for me to connect with other computer science educators.  Being the only CS teacher at my school (one of three in the district) allows for very little collaboration.  Hopefully this blog can help me trade ideas and become a better teacher.


"Programming is easy to learn, but hard to understand."

This was said by one of my AP students recently.  While he got a lot of laughs, he did have a valid point.

Yes, on the surface programming isn't that hard to get ... brackets here, semicolons there, make sure everything is in the right code block, got it.

But figuring out how to make an accumulator for the first time?  Or change a while loop to a for loop?  Those are tougher questions that new programmers struggle with.  These things that might seem easy on the surface are often more complicated.

As a second year teacher, I completely understand the "this is more complicated than I thought it was going to be" thing.  Being a new teacher means planning lessons, making copies, and grading assignments for 10+ hours each day.  And then maybe working on Saturday and Sunday afternoon to get ready for the next week.

Sometimes I start writing a Google Presentation on something that I think will be super easy to explain.  Two hours later, I have a complete lesson that - even though I've spent hours on it - will end up having bugs that I'll have to work out next year ... if I teach the same preps.

So yeah, it's a lot.

But all that work to teach computer science is completely worth it when you see your students refusing to stop programming when the bell rings.  When does that happen in statistics class or 8th hour?  (Never, that's when!)

When it comes to teaching programming, I definitely don't have all the answers.  But I do have some tips and tricks that have helped me not totally fail yet.  Hopefully they will help you too!