Great American Eclipse 2017

map_of_the_solar_eclipse_2017_usa_osm_zoom4

Image: By Wolfgang Strickling [CC BY-SA 2.5 (http://creativecommons.org/licenses/by-sa/2.5)%5D, via Wikimedia Commons

There’s a big event coming to the USA on August 21st of this year, and I’ve been looking forward to it for a decade – ever since I heard of it. We get a coast-to-coast total eclipse of the sun, and many, many people live within a day’s drive of the path of totality.  One of my favorite places to get info about the event is http://www.eclipse2017.org/ largely because I love their Google Map of the path, provided by Xavier Jubier, here.

As soon as camping reservations opened up along the centerline, I pounced and made our reservations. Many people are just learning about the eclipse now, however. I have started educating my students about what an eclipse is and why they should get to the path of totality on eclipse day. Every so often, I see a news story on my social media about the eclipse. It will start to get big, and I am sure many people will decide last-minute to get to the path of totality to take it in.

Since Denver and the front-range cities are within a day’s drive of the path, I wanted to use this space to share what I’ve learned about accommodations for viewing the eclipse.

If you live in Denver or Northern Colorado, you’re most likely thinking of heading north along I-25 to Wyoming to view the eclipse. Totality will occur along I-25 starting at Wheatland, all the way through where the interstate bends west and goes through Casper, then about 30 miles north into the wide open country. Most of the eclipse path in Wyoming has excellent weather prospects, so we’re lucky to have prime viewing areas so close to us!

Although Wheatland is on the southern edge of the path, most of town will still see almost a minute of totality. Recently, there were still hotel rooms available in Wheatland (although a couple of the hotels were charging premium rates, roughly $500 per night).

Just northeast of Wheatland is Grayrocks Reservoir. There’s a map of the reservoir here.  The reservoir has primitive camping, or you could bring your boat on the lake and watch the eclipse from the water – or just drive up for a daytrip as it’s less than 3 hours from Denver. It will probably be less crowded to be farther away from the interstate, and this short jog northeast brings the time of totality to almost 2 minutes.

If you keep going east past Grayrocks Reservoir, you reach Fort Laramie, and then Lingle and Torrington. Fort Laramie is a National Historic Site run by the National Park Service. Torrington has camping, hotels and restaurants. The corridor from Wheatland through Torrington can be reached in less than 3 hours from Denver, and being on the southern edge of totality, this area may see smaller crowds and give you better mobility than areas on the center line. Yet you’ll still see a total eclipse for 1-2 minutes.

Continuing north on I-25 past Wheatland, you get to the Guernsey exit. Guernsey is about 15 miles east of I-25 and is home to a state park on a reservoir and historic Oregon Trail wagon wheel ruts left in the sandstone. The camping at Guernsey State Park is booked, but there is a golf course RV campground and a couple of motels. The Wyoming State Park system is offering day passes on its website. You can use one of the day passes to get in to any state park on the path of totality – Guernsey, Glendo State Park a little farther north, Edness K Wilkins State Park in Casper, and Boysen State Park near Shoshoni. This would give you guaranteed parking wherever your eclipse-day plans end up taking you, and you’d have access to the state park programs such as ranger talks.

Further north on I-25, you arrive at Glendo. Glendo is home to another state park on a reservoir, with the same day-pass program as Guernsey. Camping there has been booked for some time. Glendo is where the centerline of the path of totality intersects a major interstate highway going north from Denver. It’s still less than 3 hours away from Denver, and as such I expect this will be a very popular location as long as the weather looks good! Glendo is doing a lot of preparation for the eclipse. The town only has a population of 200 people – but it will likely swell to tens of thousands on eclipse day. Is it possible it could be hundreds of thousands? The state park will be busy, with hikes and ranger talks, boating and camping, and the main attractions will be at the Glendo Airport right next to the interstate. This will be the main viewing area along with vendors and exhibits. The school will also have eclipse exhibits.

If you decide to keep going on I-25, you get to the Orin exit, which has a rest area but limited facilities otherwise. If you go east from here and leave the interstate, there will be roadside stops but no actual towns – and you get to experience the vast openness and nothingness that is most of Wyoming. The first town of any size is Lusk – although in the northern part of the path of totality, Lusk will still see almost 2 minutes of the total eclipse. The town website for Lusk doesn’t indicate any eclipse events yet, so I don’t think they are doing a ton of planning or expecting big crowds. The biggest groups they may see will be people migrating south from the Black Hills area of South Dakota.

Continuing on I-25 from Orin, the interstate bends west and follows the path of totality through to Casper. Douglas and Glenrock are towns along this route, with lodging, viewing areas, and eclipse-related events planned. One charming stop might be Ayres Natural Bridge, a rock formation in a county park south of the interstate.

Casper will be an eclipse hotspot, as the first really sizable town north from Denver, with great weather prospects and the presence of the AstroCon convention. It takes about 4 hours to get to Casper from Denver, making it still doable for a daytrip for people who leave really early. Lodging in Casper has been booked for quite some time.

Finally, an additional option for people heading up for a daytrip from Denver would be to stop in southwestern Nebraska. Scottsbluff is on the southern edge of the totality path, but Scotts Bluff National Monument will still see 1 1/2 minutes of totality. The communities of Scottsbluff and Gering, along with the National Park Service, have set up viewing events and plenty of parking and free eclipse glasses. There is also a beer and wine festival in downtown Scottsbluff. This area promises to have a fun, community-wide celebration with easy in-and-out access to Denver and Colorado’s front range. In addition, Agate Fossil Beds National Monument is located in a more remote location north of Scottsbluff but will see a longer eclipse. Finally, the area around Alliance, home of Carhenge, the quirky replica of Stonehenge made from cars, will have about 2 1/2 minutes of totality and has plenty of community events planned. Intriguingly, there’s a music festival named Toadstock: Party on the Prairie. Still tickets available and free camping, and close to the centerline of the eclipse. I found a couple of other lodging options but don’t know how full they are. Viewing areas in Alliance will be available in several locations. Scottsbluff is almost exactly a 3 hour drive from Denver, and Alliance is 45 minutes northeast of there.

I made a Google Map with the information I know about eclipse viewing, lodging and events in southeastern Wyoming and southwestern Nebraska. I did not include Casper in the event map, but focused on everything within a 4-hour drive of Denver. This is my first total eclipse, but I can tell I am going to want to make it to another. If you possibly can, get out there.

GOOGLE MAP: ECLIPSE IN SOUTHEASTERN WYOMING

I got resources from these websites:
Converse County WY Eclipse Map

Goshen County WY Eclipse Map

Glendo Eclipse

Carhenge Eclipse 2017

Get solar glasses and eclipse viewing tips here:
Solar Glasses

Viewing Tips

 

Eclipse Chaser blogs:

http://eclipsechasers.blogspot.com/

http://www.beingintheshadow.com/

http://goseetheeclipse.com/

 

And if you’re a teacher, start talking to your students, your district and your parent community about this as soon as you can. The eclipse will be seen throughout the entire USA and you’ll want to make sure all of your students have a chance to view it, get glasses and/or make pinhole viewers. The students may or may not be in school when the event happens, so encourage your school district to make plans now.

 

 

Achievement Mapping in OneNote

So I’ve been thinking a lot about competency-based education – the idea that learners should be able to progress through a flexible map of skills or concepts or dispositions, tracking progress and reflecting as they go, with as much choice as is reasonable on the timing and nature of the learning, on a time scale that’s right for them. Simple… right? I’m playing with some ways of piloting the idea in my classroom and I keep thinking about gaming in this process. Most video games have levels or achievements, and gamifying education is based on the inherent motivation built into video games. Every time you fail a level, you get to try again. You try until you succeed. Success metrics are clear, and when you succeed you go on to the next level. I like playing Minecraft with my kids, and we have fun finding our way through the Minecraft achievement map. The skills are really clear-cut and the achievements have to be done in order.

Anyone who plays Minecraft recognizes this map.

Anyone who plays Minecraft recognizes this map.

I wonder if I can apply the gamification principles to a class I teach. I’m experimenting with OneNote Class Notebook to push an achievement map out to my students. I need the map to be flexible – I don’t have it all written right now, and I’m not sure a competency map should be articulated completely from beginning to end. Do you want your child’s educational path pre-mapped from K through 12 or do you want them to be able to take unexpected turns as needed? I’d like to be able to push achievement challenges to the students as they come up, and maybe assign achievements flexibly depending on student choice and need.

I can push the achievements out as documents that contain a checklist, maybe a place to paste some code, and a reflection from the student. I can respond to their achievements and use this as the basis for conferencing with them about their learning.

For example, as my first two achievements for kids:

achievement1

achievement2

This semester, I wouldn’t use the achievement map as a grade, but I could leave the door open for it as an assessment tool in the future. How far would a student need to progress through the map to “pass” the class and move on to the next one? This is something I hope to answer after this semester.

I really wish I could create a clickable map like the Minecraft one, where you could hover over a box and it would tell you about the achievement, or click on the box to submit an entry to pass the achievement. When you passed one, the following achievements would be enabled. I know this is doable, but time and 217 students and so many preps and…. it’ll have to wait for a break, unless someone has created a tool like this and I just don’t know about it. Any badging or achievement-mapping tools out there that I should learn about?

What do you think? Have you ever gamified a graded class? What structures did you use and what should I fix before diving into this?

Etching your own PCB’s in a classroom

A couple of years ago, one of my former students came to visit. He brought business cards and a selection of little printed circuit-boards, or PCB’s. My questioning turned into a lesson in which a 15-year-old kid taught me how to install some circuit-designing software, create my own circuit board, export the design and e-mail it to a factory in China where the boards would be manufactured and mailed to me. It was one of the most empowering things I’ve ever learned! I feel I got some valuable consulting work from this student, and he provided it for free. What a generous gift and a valuable example of a teacher and student learning together.

A former student taught me how to make this!

A former student taught me how to make this!

I found out since that time that you can actually etch your own printed circuit boards at home, for quick prototyping. In electronics class, my co-worker Tracey and I created an engineering project for the students: design or modify a small, rechargeable LED-based lantern that works. This semester, I thought I would offer the opportunity for students to learn to etch their own PCB’s if they wanted to do it for their design. This was a rich and challenging project, and I want to share how we did this with middle school kids – with some notes of caution. It’s hard to do in a big group. I was grateful to have Tracey’s presence to work with most of the class on an alternate lesson while I took small groups to work on PCB design and etching. It was failure-prone and high-frustration, but also high-reward. Here’s how we did it.

First, the students need to design their circuit and generate a high quality, printable image of the copper traces. I used Fritzing, a free program that is fairly easy to use. I taught the students how to lay out a simple parallel circuit with resistors and LED’s. The components can be either surface mount (SMD) or through-hole (THT), but you want to choose Through-hole. Pay attention to the pin spacing to make sure it matches the components you have. In our case, we needed 3 mm spacing for the LED’s and 400 mils (these are thousandths of an inch, not the same as mm) for the resistors. I don’t know why the default units were different. I added a couple of via’s to connect to the switch and battery. Choose the “home-etched” setting for via’s to make them a little bigger.

Completed simple PCB in Fritzing.

Completed simple PCB in Fritzing. Most students added 5 or 6 resistor/LED pairs.

Students could add as many resistor/LED pairs as they wanted, and rearrange them as needed. Some students created some interesting layouts for their PCB.

Next, we had to export the file to a high quality PDF. In Fritzing, choose File –> Export –> As Image –> PDF.

I stitched together a couple of methods from online articles for the etching part. This article from Hackaday used the magazine page transfer method, and it worked all right with some cautions.

Here are the supplies you need for this step..

  • Glossy magazine paper and a laser printer. We found the alumni magazine from my university works well! Its 8 1/2 by 11 size and nice sturdy paper loaded and printed in the laser printer perfectly. We had some success with catalogs pulled from my mailbox too, although the paper was thinner so it tended to jam.
  • One-sided copper clad PCB. You can get lots of this very cheap on eBay.
  • An iron and ironing board (we borrowed these from the family consumer science teacher)
  • A scotch-brite scrubbing pad.

You need to load the glossy paper into your laser printer and print the PDF of the copper traces. Fritzing will export a lot of files into a folder – print the one that ends in “copper_top_mirror”. You might have to try a few times before you get a nice printout on the magazine paper.

Buff the copper-clad PCB with the scotch-brite pad, until it’s roughed up a little.

Turn the iron to its hottest setting, and make sure there’s no water in the iron. Put the magazine paper with the image on it face-down onto the copper clad. Push down HARD with the iron for a full two minutes. Then move the iron around still pressing down hard, for 4 more minutes. This process sometimes took 4 tries to get a good transfer and was really difficult with a number of groups to work with. Imagine it takes pressure on every wire trace in order to transfer it from the paper to the board, and visualize how you have to press the iron down to make this happen.

Ironing. For the first time ever.

Ironing. For the first time ever.

Inspect the copper clad to make sure the image transferred with no thin or broken spots. We attempted to fix a couple of the designs with Sharpie, but it really didn’t work well. Better to transfer properly the first time.

A bad transfer, and a better one.

A bad transfer, and a better one.

Now you’re ready for the etching. For this part, I used the second half of the instructions from Blondihack. Some blogs recommend using muriatic acid, but with middle-schoolers the normal kitchen chemicals are the way to go here. You will not regret using plain old vinegar. You really should use a proper science lab with fume hoods, sinks and safety equipment. At the very least, make sure you have safety goggles and nitrile gloves for everyone, and access to a sink. To do the etching, you need:

  • White vinegar
  • Household hydrogen peroxide
  • Some salt
  • Foam brushes
  • Plastic tubs
  • Measuring cups and spoons
  • Safety goggles and gloves
  • A timer
  • Acetone (nail polish remover)

It’s pretty simple. Pour equal portions of hydrogen peroxide and vinegar into a shallow plastic tub. Add about a teaspoon of salt and stir it gently. When the salt is dissolved, put the PCB into the solution. You’ll see a film of yellowish gunk appear on the board, and over time the liquid will turn blue. About once a minute, use the foam brush to wipe the gunk off. It took us about 50 minutes to complete the etching. When you’re close to done, the edges of your board will be free of copper. You’ll know you’re done when all of the copper is dissolved except for what’s under the black toner. When you’re at this point, rinse the board with lots of water. We washed the remaining etching solution down the drain with lots and lots of fresh water.

This is boring work, but the kids don't mind socializing while they wipe the boards down once a minute.

This is boring work, but the kids don’t mind socializing while they wipe the boards down once a minute.

When you're close to done, you can see the edges of the board are free of copper.

When you’re close to done, you can see the edges of the board are free of copper.

Done, rinsed and ready for the next step.

Done, rinsed and ready for the next step.

When the board was rinsed, we took paper towels and some nail polish remover (acetone) and scrubbed the rest of the toner off the board until the copper was visible.

After scrubbing with acetone. Ready for drilling!

After scrubbing with acetone. Ready for drilling!

I used Blondihack’s method for drilling holes with a Dremel tool. I did the drilling and chose not to let students use the Dremel. It has the potential to really hurt you and this step requires a steady hand. Get your inner brain surgeon ready.

For the drilling, you’ll need:

I recommend clamping your PCB to the table on top of scrap wood. You really want to make sure it doesn’t move around. Wear the safety goggles. Use the 1/32 inch drill bit and carefully drill a hole in each location on the PCB.

Next the students can solder the components onto the PCB. You can only solder them onto the copper trace, not onto the blank side of the board. Clip on the battery and test it out! Students sometimes had to use solder or jumper wires to fix locations where the copper traces were broken or thin. They cut the boards down to size with tin snips (fairly cheap at Home Depot) and sanded them when needed.

Soldered and cut! They look great.

Soldered and cut! They look great.

The groups that had fewer problems were able to finish their circuit boards in 3 class periods, but some student groups took up to 6 class periods. These groups had to re-do steps along the way, usually in the printing and transferring, but sometimes in the soldering as well.

It was a supremely rewarding process. The students were so proud of their work. We all learned a lot about how printed circuit boards are made, and I think the kids felt as empowered as I did when I made my first PCB with that student so long ago. Students stayed after class and after school, trying over and over to get the process right. They really wanted to finish it once they started.

Showing off their work with pride!

Showing off their work with pride!

I would strongly recommend having extra adult supervision if you try this activity with kids. Six students at a time seemed to be my capacity – consider bringing in parent volunteers or community members and training them on what to do. Plan ahead for science lab space, drilling and soldering, and for how you’re going to manage failures, because they will happen. It’s part of engineering.

If you try PCB etching with your engineering students, I’d love to hear from you. What went well? What would you do differently? What did I miss that I could be doing better?

Thanks a bunch to Quinn Dunki and Jason Rollette for their tutorials.

Reflecting on Reflecting

In my 6th grade tech class, called Web 2.0, my colleagues convinced me to include some keyboarding practice in the curriculum. It’s not a fun topic to teach, but it is a really important life skill and it’s not taught in any of the kids’ other core classes. One of my fellow tech teachers had a great idea to have students keep a spreadsheet of their keyboarding speeds throughout the quarter. The students take a 1-minute test every day and log their score in the spreadsheet. We use the sheet to teach students about using formulas, and it’s a good daily reflection tool on their growth.

We use NitroType and typing.com as tools for practice. NitroType is really engaging and I really like the drills on typing.com.

I have the students calculate their average speed (the average formula), their growth (using max, min, and subtraction), and how many times they got 25 words per minute or more (using the “countif” formula). A finished spreadsheet looks like this.

typing_speeds

Here’s what I find fascinating. I think teaching keyboarding is really boring. The online tools make it bearable. I put on my game face and practice with the students, and challenge them to race me to keep myself engaged in it. The students, however, LOVE it, and I think what they like about it is that they track their progress with a number. They know when they’ve improved. The goal is crystal clear and they can tell instantly if they’ve met it.

At the end of the quarter, I asked the students to reflect on whether they met either the goal I set for them (which was to gain 10WPM and be over 25WPM at least once), and whether they felt they had met their personal goal. These were some of their comments.

“I Met my score :)”

“I love TYPING”

“My goal was to increase by 10 words per minute. I started at 27 words per minute and slowly increased and got better until I got to 39 words per minute which was past my goal”

“My goal was to get to 35 WPM and I passed it by 10, I am really happy.”

“My goal was to get more accurate and more comfortable without looking at the keys. This I think I did improve on.”

“I improved so much!!!!!!!!”

“I think I’ve really improved with my keyboarding. I think I met my goal because I beat 25 by at least 20 and all of my scores were in the green. I will continue to practice keyboarding as I believe it will help me in the future. The time we had in class helped my improve and I fell like I’m 10 times faster than I was last year. Even if that is an exaggeration I really mean it when I say I got a lot better, so thank you for making me not only a better typer, but a better student as well.”

“I got to 25! That was very exiting because I am not that fast at typing! and I made my spread sheet very colorful!”

“I am proud of where I am with my typing and gained ten WPM”

 

Isn’t it interesting how motivating it is to have a clear goal and know immediately if you’ve met it or are improving? I see this every quarter. I wish I had a way to give students this instant satisfaction in classes in which progress is slower and proceeds over the course of a project. Learning coding can feel like this if you do activities like an Hour of Code, but what about learning in a creative problem-solving setting, where you have to investigate, discover, create, try and fail, iterate, gather data and perfect an actual product? Can I help students reflect on their day-to-day growth and their short-term goal setting as a motivational tool? I’m sure I can facilitate this by putting some good reflection tools in place. Let’s make this a New Year’s Resolution – I will help my students become motivated and reflective learners, and to track their own progress to make them feel the same sense of satisfaction my keyboarding students get.

End of Year Report for 2016

Hi everyone, sorry for the long silence on the blog. I don’t have any good excuses but would love to do better. Sometimes I have so many things going at once that if I think for an evening about what I want to write, everything is different the next day.

Here’s the report on how Fall 2016 went at Preston Middle School and beyond. It was quite a whirlwind!

August:

Before school even started, I traveled to Washington, DC for the Teacher Leadership Initiative Alumni Academy through the NEA. We did a lot of group brainstorming on some of the sticky issues of teacher leadership. The team really focused on what to expect under ESSA (the new law replacing No Child Left Behind, which puts a lot more power and flexibility in the hands of states), as well as early career teacher retention and mentorship. I did some targeted work with a small team on the student-discipline aspects of ESSA, which requires states and districts to track discipline data and disaggregate it by subgroup. Sharing stories, we realized our schools and districts still have much progress to make in this area. There’s ample evidence that suspensions and exclusionary practices result in worse educational outcomes and they’re applied unevenly when it comes to the students’ race or special education status. Yet many schools still practice them – here’s an area where our association needs to help educators take a stand on behalf of the kids.

I always enjoy working with my colleagues at the NEA, and I appreciate what they do for the 3 million of us (!!!) that are members.

My friends Laurie and Kim, from Massachusetts and Utah, were great sources of inspiration on this trip.

My friends Laurie and Kim, from Massachusetts and Utah, were great sources of inspiration on this trip.

 

And I saw a real blooming corpse flower at the National Botanic Garden while on a break.

And I saw a real blooming corpse flower at the National Botanic Garden while on a break.

Also in August, my family and I vacationed hard and had visits from friends right up until the day school started. It was a rush to get ready for the school year to start! Our building tech coordinator, Matt, and I also had to set up and plan for a year of working with our new VR makerspace. We had won a grant for it in the spring, and so we spent some time in the summer ordering equipment and getting the makerspace ready.

Everyone in the school staff wanted to try the new VR machine, including our head custodian.

Everyone in the school staff wanted to try the new VR machine, including our head custodian.

I taught five different classes this fall, and had over 200 students total – not too uncommon for a middle school elective teacher. Most of August is spent just getting things started – learning names, establishing your classroom norms, getting started with whatever it is you’re planning to do.

September:

All of my classes moved forward with learning content and working on projects – Scratch, Processing, Arduino, NAO robots, and Minecraft kept all of us busy. Toward the end of the month, I traveled to San Diego to work with Convergence on their Education Reimagined initiative. I represent a group with Poudre Education Association and Poudre School District at these events. Education Reimagined networks practitioners who are moving toward learner-centered education – a model in which schooling looks very different from what we think of as schools. In this model, education is driven by the needs of the learners instead of the needs of the system around it. The learners have choice, develop an individual map of competencies instead of progressing through grade levels, learn socially as not just students but as peers and teachers, and they learn in the context of the world they live in. These events involve very big thinking and it can be difficult to find the thing you’re going to change in your classroom Monday morning. You come back wanting to tear down the whole structure you work in, wanting to rebuild it based on the new paradigm. It’s hard to do work like this in short bursts and then come back to a traditional public middle school. I try my best to be learner-centered in the 90 minutes I have with all of my 200 students every other day, but of course there are limits to how far we can take it. If you’ve ever thought about the big structural changes you’d like to make to your own schooling environment, or if you’ve had some success making those changes, it would be wonderful to network with you.

Most of Poudre School District's Education Reimagined team. Oh the things we want to do to schooling!

Most of Poudre School District’s Education Reimagined team. Oh the things we want to do to schooling!

img_6515

The Colorado delegation at Education Reimagined. Thanks to Kerrie Dallman of CEA for bringing us together.

 

October:

I traveled to Providence, RI with my colleagues in the Allen Distinguished Educator program in the middle of the month. Sometimes I come back from a professional development experience thinking how far ahead my school is when it comes to innovative education. And other times I’m deeply humbled as I realize how much I could still grow. My meetings with the ADE’s always fall into this category. My colleagues have allowed their students to grow into true engineers and entrepreneurs, and they seem more energized the more they do. We visited the MET, a Big Picture Learning school in Providence, and we toured the entrepreneurship program and met some of the amazing students there. We also visited AS220, an arts school and also a residential art program that really focuses on students who have been in the correctional system.

The more I visit programs such as these and hear the stories of lives changed and inspired, the more ridiculous our current standards-based curricula and accountability systems seem.  The real work of changing lives requires more out of us – harder thinking from the adults as well as the kids in the system.

At the MET, we were introduced to student entrepreneurs running their own businesses. What a great way to be educated.

At the MET, Jodie Woodruff introduced us to student entrepreneurs running their own businesses. What a great way to be educated.

In addition, in October, we got a really interesting invitation from Colorado State University to attend a Virtual Reality symposium and hackathon as special guests. I hoped the students might be able to participate in the hackathon (some of the middle schoolers would have done really well), but that was not to be. But the symposium was great. Matt and I had 20 kids attend the symposium and another dozen come to visit the hackathon. I think anytime a student gets a chance to be in a university setting, talking about academic topics with the adults, it’s good for them. Some of the language was over their heads and the students described the experience as “sometimes boring but also interesting”. We never knew some of the ways VR could be used, and how exciting it could be if we were involved in the cutting edge of that kind of research. Everything from immunology to big data to civil engineering.

Matt and I infused the symposium experiences into class curriculum by including readings and videos for the kids about the future of VR, and by allowing kids to choose to work on semester projects in Unity that explored how VR can be used to make the world better.

Students trying the HTC Vive at the VR Symposium.

Students trying the HTC Vive at the VR Symposium.

Hearing from Colorado State University's VP of Research, Dr. Alan Rudolph, at the hackathon.

Hearing from Colorado State University’s VP of Research, Dr. Alan Rudolph, at the hackathon.

 

November:

In 2016, the Colorado State House passed a law requiring the CDE to develop standards for Computer Science, and allowing districts to opt into them. The bar is set low here, but the ceiling is high. At the very least, the initiative to develop standards gets educators talking about CS education and that’s worthy in itself. The effort to develop standards and get stakeholders together is just getting started. With a couple of my co-workers at the high school and district level, I attended a stakeholders’ meeting and standards input meeting in November. It was great to meet the folks in Colorado passionate about bringing computer science education to every kid. There are a lot of us, from diverse backgrounds, involved. Leaders from government, nonprofits, K-12 education, higher education, and private industry all had a lot in common. We believe computer science education is critical for the new workforce kids are expected to enter. We believe CS education should involve concepts and skills, but perhaps more importantly, creativity, problem-solving, and innovation. I loved that one message that came through was that we should exceed the expectations of the law. We don’t need to limit ourselves to high school and don’t need to set the expectation that CS is optional. We also believed that CS education should be accessible regardless of zip code or family background, and whether a student plans to attend college or not. We believe computing jobs should be available to high school graduates and we’d love to offer that track to learners.

I am excited about where these efforts are going next.

November 8th came and went. I volunteered throughout October and up until election day. I canvassed for our school district’s mill and bond, and I went out many weekends with the Larimer County Democrats for Hillary Clinton. Election day was hard. As an educator, all I want for my students is for them to think critically and be kind. The result of the presidential race felt like we have a long way to go, and it was disheartening. In the days following, I listened to the kids and just enjoyed being around their innocence and good spirits. Middle-schoolers sometimes bring their parents’ politics to class, but overall they are just interested in being kids, learning and having fun, and so we honored that and will continue to do so. We tried, and continue to try, to keep school safe and polite while also allowing students to discover their own voice and reason about what they believe. I will be flexing my own voice about policy and messaging in the coming months and years… while keeping my identity as an educator separate from my identity as an activist citizen. And this is the delicate balance we walk as educators. I would never deign to influence my students’ beliefs and yet I want them to know I believe in them and want the best for them.

December:

The critical time in December is Computer Science Education Week, the week of Dec. 5. The awesome staff at Preston agreed, for the third year in a row, to conduct an Hour of Code with the students at some point before winter break. Math teachers and science teachers carved out a little time to make it happen. The kids in my classes told me all about it and how fun it was. For my part, I had a few different items cooked up. I created a Minecraft Hour of Code using the ComputerCraftEDU mod, in which students program a turtle to mine and build for them. They love this Hour of Code and the kids asked to continue programming turtles afterward. For my Computer Science students, I wanted to empower them as CS ambassadors and advocates. I arranged a tour of elementary schools, and for four class periods, volunteer parent drivers shuttled my 7th and 8th graders to several other schools where my students taught an Hour of Code to kids from kindergarten to 5th grade. The CS students had to develop a lesson plan, with a learning objective, an opening, activity, and a way for kids to know if they had been successful. My students said this was their favorite part of the semester, and I heard from parents that their child would not stop talking about their elementary school visits at home! This was a devilishly challenging puzzle to work through, with the logistics and timing and paperwork, but it was very rewarding.

These 7th and 8th grade boys gave a robot demo and coding lesson to the 4th graders.

These 7th and 8th grade boys gave a robot demo and coding lesson to the 4th graders.

On the Wednesday of that week, we hosted the 2nd annual Preston code-a-thon. 160 students signed up for it, and we accepted 50 of them for the big day. The code-a-thon’s theme was “Hack the Holidays”. Students had about three hours to design and code a solution to a holiday-related problem. We got educational programs that taught about world religion, a robotic light-hanger, an app to help you with meal planning, a 3-D virtual reality holiday maze, a budget planner for gifts, a gift-delivery game, a few stories about helping the homeless, and many more. The event was a wonderful success and the kids had a great time coding with their friends for a morning. We hope to hold another one in February to accommodate the students who couldn’t get in the first time.

 

Students at the code-a-thon having snacks and working on their program in Scratch.

Students at the code-a-thon having snacks and working on their program in Scratch.

Finally in December, the VR and emerging technology enrichment class I taught with Matt came to a close for the semester – as did my other classes. We decided to host a Passion Project night in coordination with one of the GT English teachers, in which students could share their projects with their families. We had students create a few VR projects, including a skydiving app, a fear-of-heights simulator, and a virtual zoo. One student did an involved Arduino project, one student did a web design project, and another did research on how to build his own computer. We featured a couple of students in TED-style talks in front of the large crowd. The young man who created an Arduino-based distance sensor and the young lady who created the VR fear-of-heights app demonstrated their projects in front of a crowd. It was a fun way to put a cap on a very good semester.

This student was inspired by VR apps that can help people, and wanted her sister to conquer her fear of heights using VR.

This student was inspired by VR apps that can help people, and wanted her sister to conquer her fear of heights using VR.

 

This young man's distance sensor was a fun engineering project for him.

This young man’s distance sensor was a fun engineering project for him.

 

I’ll try to blog a little more consistently this semester instead of writing about EVERYTHING right at the very end. I’ve enjoyed communicating with those of you I meet on Twitter and social media, so please reach out if you’d like to share thoughts or plans on anything.

 

The Realities of Bringing Virtual Reality (VR) to the Classroom

I wrote a blog for the Allen Distinguished Educators about my school’s experience starting a VR program in a middle school.

 

Realities of Bringing VR to the Classroom: ADE Blog

I have found quite a few articles lately about how VR can be helpful and life-changing for those that use it. VR can change your behavior and decision-making. VR can ease the pain of hospital patients, including children with sickle-cell disease as well as burn victims and other patients in pain. I think these ideas will really appeal to kids and empower them to think about what they could create in VR that involves the engineering process.

We’re excited for this program to gain traction this year!

Beginning of the year in CS and Electronics!

I’m now a couple of weeks into the 2016-2017 school year, and I really think things are off to a good start. This year marks a bittersweet milestone for me. This will be my ninth year teaching. I was a software engineer for nine years. After this year, I’ll have been teaching longer than I was an engineer. I guess this is my real job now!

I have three regular-length classes I teach this year, and they’re pretty much the same as last semester: Web 2.0 (our required quarter-long 6th grade tech class), Computer Science Explorations, and Electronics (both of these are semester-long electives for 7th and 8th graders).

I’ll also teach a couple of enrichment classes, for a shorter time and for no grades. I’ll blog about those once they get started!

In Web 2.0, I start the semester right away by introducing Scratch. It provides much more than just coding at the beginning. Students learn about data privacy as we talk about creating a login and password, and facilitate the discussion with their parents so they can get their accounts confirmed. We go over the Scratch community guidelines and talk about what it means to be a good internet citizen.

We dive into coding by exploring the “motion” and “looks” blocks and having students write a story. Sixth graders have a funny and strange sense of humor and I always get quirky programs from them, including things like farting, flying hippos and a purple Morgan Freeman in front of a black hole.

A sixth-grader's imagination, in Scratch.

A sixth-grader’s imagination, in Scratch.

"Did you code a farting hippo?" "Yes I did!"

“Did you code a farting hippo?” “Yes I did!”

As we get into more challenging aspects of coding, we’ll continue to spiral back to the community guidelines, and we’ll learn about proper commenting, remixing, reusing and giving credit.

For the Computer Science Exploration class, we’re starting with coding right away in Processing. After doing some basic lessons on the coordinate plane, we learn about shape and color commands, and the students have to plan and create a free-draw program. I’ve blogged about this assignment before and enjoyed it this time around as well. Here’s some of the work from the kids.

Pixel art in Processing.

Pixel art in Processing.

This student imagined a solar system model in Processing.

This student imagined a solar system model in Processing.

And in Electronics, my teaching partner, Tracey Winey, and I decided to start the semester with circuits and Arduino, and then in the second quarter we will explore the engineering design process with sustainable lights in Engineering Brightness. I love our Arduino program and the kids have so much fun with it. So far they’ve all been able to make multiple lights blink and they are just so happy when they make it all work. Coding is fun, but coding when you’re interacting with something in the real world is extremely rewarding – we are having literal light-bulb moments.

The Allen Distinguished Educator program and LearnBig worked with us to develop a DIY guide on the Arduino light-up music boxes, and we actually had our kids use the professional video to work on their first project. They enjoyed it and said the videos were very helpful.

Students show Mrs. Winey their blinking lights.

Students show Mrs. Winey their blinking lights.

We asked the students to write reflections on Google Classroom about the blinking-light activity and their comments were gushing with positivity.
“i really was confused at first but now i get it and it is very fun!”

“I learned how to code, because I didn’t know how to code before. I really liked just the learning aspect of it because I have always wanted to code and I finally learned how to.”

“I learned how to use Arduino. I liked that I actually can make this board light up. it just felt nice.”

“I learned that it really isn’t that hard to program and arduino, and I really liked this! I just know I am going to have a lot of fun with these! Thank you so much for the opportunity!”

“I learned that this is a awesome class and that there was a lot of cool and hard steps to get to where i am i would have to say that i dont just like but love this class”

Wow, so many feels! I love being able to come back to those later in the year and reminding the students how far they’ve come and what they have learned!

As a final note, the number of girls taking CS and Electronics has slowly crept upward, although the numbers aren’t what I hoped they would be, and they probably never will be as long as learning computer programming / computing is considered optional. I have 4 girls in Electronics, and 12 total in my two sections of CS. It’s better than my first year when I would have one girl and 30 boys in a programming class, but we continue to be part of the problem when it comes to inequitable access to learning programming. The ability to program a computer won’t get less important as these kids graduate, and I wish for all of them to be able to participate in the world as inventors and creators.

I had my CS students do a little activity about their perception of programmers, and I’ll blog about that next time!

 

 

 

 

The Allen Distinguished Educator program and grants

In February, my teaching partner Tracey Winey and I received the Allen Distinguished Educator award. I want to tell you a little about the program as there are some possible ways for you to get involved! (Hint – there’s money available!)

The program was spearheaded by Paul Allen, and it seeks to highlight and further the spread of innovative education programs in computer science, engineering, and entrepreneurship. The program looks for teachers who are “breaking the mold” in these areas, re-imagining what education looks like in a variety of school settings. There are ADE awardees who teach all grade levels, from large and small schools, from charter, private, and public schools. What we have in common is that we believe in students’ ability to be creative problem solvers – we believe in individualized, project-based learning – we believe a 21st century education is not just about modern tools but allowing those tools to be used powerfully. We’ve created programs that look at learning in different and exciting ways. The ADE community helps us share our work and network with each other and with you.

IMG_5185

Video of the ADE class of 2016 at SxSWEdu

Tracey is the media specialist at our middle school, and I’m the computer science and electronics teacher. She has taken the lead at turning our school’s media center into a social hub and makerspace, filling it with engaging technology, a creative spirit, a sense of adventure. I have worked hard to grow the computer science and engineering program at our school, to make programming just another creation tool we use to solve problems and to make engineering part of the everyday culture. We have our separate sandboxes but  we work together on an Electronics class and program called Engineering Brightness. We share a lot more about this program and what we’ve learned from it on the ADE website.

On the ADE website, you’ll find Micro-documentaries, Roadmaps, and Do-It-Yourself guides. A team from the Allen Distinguished Educators program, including a video production team from LearnBig, an e-learning company, came to our school and spent three days with us creating these products. It was exciting for me – my first time working with a professional team of videographers and writers. They listened to our stories and inspected our lesson and unit plans, and turned them into video products I’m really proud of and excited to share. It’s interesting to see an outside perspective of myself as an educator. It’s not the whole story of me and Tracey, but I like the story they told.

IMG_5583

Making the DIY guide with the video crew from LearnBig. They do wonderful work.

I’m not a perfect educator or person. Going through the process of documenting and videoing my life as a teacher has laid bare the areas where I want to improve as well as my strengths. I’m really humbled to be in the company of the other ADE’s and suffer from imposter sydrome as much as the next person. I am, however, firmly committed to honoring my students as creative people with an interest in exploring the world around them, playing and solving problems, and I’m committed to learning alongside them – I stay grounded in that philosophy.

You can get involved in the Allen Distinguished Educator program! The grant application period just started for the DIY grants. These grants will award $1000 for you to implement one of the DIY guides on the web site. Tracey and I created the DIY guide about making Arduino-based music boxes with middle schoolers. $1000 would be enough to get a class set of Arduinos so you can get involved in physical computer science! I hope you apply for a project that is suited for you. All of them are rigorous and interesting and innovative for the students and teacher.

Let me know if I can do anything to help you with a grant proposal! And if you’re interested in joining the next class of ADE’s, watch the web site for application information this fall.

 

A Week of Minecraft Camp

I have not blogged in a very long time! A lot has happened in this exciting semester, including being honored as an Allen Distinguished Educator and getting to work with a phenomenal team to create resources to share with the public. I will write about that experience as well, but am moving in reverse-chronological order, starting with the most recent project. I teach classes at our district STEM institute every summer (find the website here: http://www.steminstitutes.org/) . I love teaching at the institute. I wish school could feel like this all year long. This year, I had the pleasure of teaching a Minecraft Explorations class during the morning and afternoon. It hit me about a week before the institute that I was getting paid to play Minecraft all day long – living the dream!!

At the beginning of this school year, I purchased licenses for MinecraftEDU and I love it. Unfortunately, as you can tell if you follow the link above, the old MinecraftEDU is now in transition. Microsoft is re-writing and re-releasing the educational version as Minecraft: Education Edition. I would love to use it, but it’s only going to be available on Windows 10 and my district’s IT department has been very clear that we are not moving to Windows 10 this year. I had JUST convinced a whole bunch of colleagues to purchase MinecraftEDU, and a couple of them had JUST gotten the funding approved, when we found out we could no longer purchase MinecraftEDU – and the new Minecraft: Education Edition is not an option for  us at all because of our operating systems. It is extremely frustrating – I believe in this tool and think our kids will really benefit from using it in classrooms, and our progress as a district has been completely shut down.

I am still able to use the old MinecraftEDU, and I did. The kids loved it and I had a wonderful week. I decided early that the kids could make a creative map and design anything they wanted, on a safe school server – and that I would provide mini-lessons every day to add a little more to their Minecraft toolkits so they could build even better things at home. I provided them with flash drives that had all of the mods, maps and documents they would need.

Day 1: Beginning build and Redstone lesson.

After some getting-to-know you activities, I told students they could sit next to one or two people they would like to build with. We first installed mods on the computers: I installed Mr. Crayfish’s furniture mod, BiblioCraft, Custom NPC’s, ComputerCraftEDU, Malisis Doors, Carpenter’s Blocks, and the Key and Code Lock mod. I opened a creative server and had everyone spread out with groups far away from each other. I told them they could build a home and to pick a theme – a castle, a dungeon, a zoo, a specific animal, a treehouse – anything they wanted. The kids loved the mods and were thrilled with the furniture mod, which allowed them to have Minecraft blenders, refrigerators and sinks among other things. The Carpenter’s Blocks are really cool – they allow you to create angled, curved and sloping blocks with any texture you want.  And the Malisis Doors mod allows you to create interesting doors and even custom doors with special animations, textures and combination locks. Fun!

We then saved and temporarily shut down the creative world, and I opened a redstone world map that I made. It’s located here:

http://services.minecraftedu.com/worlds/node/210

This map takes students on a tour of redstone contraptions. I spent some time over the weekend watching video tutorials on more advanced uses of redstone. Did you know you can make logic gates with redstone? You can create a NOT gate, OR gate and of course an AND gate. I wouldn’t be surprised if someone, somewhere, has made a fully-working computer or arithmetic-logic unit using redstone.

In the map, students explore different redstone devices and activators, and also learn about logic gates, repeaters and comparators. I finished the map with a Kahoot! quiz and then opened the creative world again. Students were instructed to add their own redstone contraption to their home. Some of them were very complicated – I would never figure out how they worked!

Day 2: Custom NPC’s

Non-playable characters let you turn a map into an adventure or a quest. These characters can be configured to follow you, fight for you, trade with you and have dialogs. I gave a mini-lesson on how to create an NPC using a special wand, and then how to set up a dialog with multiple-choice answers. We also learned how to add quests to the NPC’s dialog. The non-playable character can be part of a storyline, leading you from adventure to adventure. I suggested that the next time students have a science project, a book report, or a time in history to write about, they could do the project as a Minecraft adventure! Wouldn’t that be a more fun way to learn about the Revolutionary War if you could interact with the main players and let them tell you about the events?

The lessons are summarized in these videos.

NPC dialogs and command blocks:

This video shows how to use quests:

http://screencast-o-matic.com/watch/cD1iehiIo5

To finish out the day, I gave the students command blocks using the command: /give @a command_block

I gave kids a very basic tutorial on using command blocks. You can set up the blocks with a command, and activate it with a lever, button, or other redstone connection. Some simple commands include:

Summon an entity: other entity names can be found online

/summon Zombie

Give the nearest player an item

/give @p cookie

Teleport the nearest player to the following x,y,z coordinates.

/tp @p 100 75 -200

I would not recommend giving command blocks to a large class and you really need to be cautious with them. They give great power! There is a connection with computer science here… each command is like a function, and the parameters follow the function name. Just as with any computer language, punctuation, spelling and capitalization are important.

We played a Kahoot quiz on custom NPC’s to finish out the day.

Custom NPC Kahoot

Day 3: ComputerCraftEDU

On this day, we introduced turtles! These are adorable Minecraft robots that you can program to mine, dig, chop, attack and build for you. The ComputerCraftEDU turtles use a graphical programming language that is fairly intuitive to learn, and maybe more importantly, super cute. I introduce the turtle coding with a little “hour of code” activity I developed for them.

Turtle Hour of Code

The language looks like this. This program tells a turtle to dig, move forward, dig – then place a block, move backward, place another block.

turtle_program_example

The language has variables, loops and conditionals as well. We talked about how important it is to specify WHICH steps you want to repeat over and over again. I often introduce loops by having students write instructions for a “human” robot to do something such as walk down a line of kids and tap every kid on the head. The instructions might say something like this:

Start at the first kid
Tap on head
Go to the next kid
Repeat until no more kids

If I follow instructions like that, I may tap only the first kid on the head and then just walk to every other kid until I get to the end of the line. Or, I might repeat all of the instructions – start at the first kid. Tap on head. Go to the next kid. Start at the first kid. Tap on head. Go to the next kid. Our language needs a way to specify a beginning and end of what exactly is repeated.

The Turtle coding language has this. For a repeat loop, for example, the instructions to be repeated are bookended by “Do” and “End”.

turtle_program_example2

The “Place” and “Move Backward” instructions are inside the Do and End blocks, so the turtle will place a block and then move backwards, and repeat those 2 instructions 8 times.

After we do some whole-class activities experimenting with the Turtles, the whole class discusses how you would write a useful program that the turtle could run that would help you in Minecraft. We talk about some activities you do in Minecraft that might be helpful to have a robot do for you: exploring at night, fighting some of those nighttime mobs, mining, chopping down trees, building a house, farming. We choose one of those examples – say “mining” and discuss what exactly you’re doing, step by step, when you mine. The kids usually start by describing how they dig a staircase into the ground. But we have to talk about special conditionals that pop up. What if you dig into gravel? What if you dig and find lava, or a cave? If you find iron,  should you keep digging forward or do you dig in all directions to see if you’ve hit an iron vein? Once you’ve dug down a certain depth, how do you return back to the surface? Writing all of this down as a program becomes a challenging and interesting task.

I gave the kids a couple of example programs that do some complicated mining and tree-felling, and let the kids explore the pros and cons of them and try to make the programs better.

Mining and Tree-Felling Programs

 

Of course,there is a ComputerCraftEDU Kahoot Quiz to finish things out. 🙂

ComputerCraftEDU Kahoot!

 

Day 4: Modding

Kids were very interested in modding, but this is the most difficult concept to teach. What is a mod? Think of Minecraft as a box of plain legos. The analogy to a Minecraft mod is a specialized set of Legos… the Harry Potter kit, the pirate kit, the farm kit. A mod uses Java code to connect to Minecraft’s events and data structures, letting you create customized blocks and items and even mobs. Most kids have an idea for a mod they’d like to create. Most kids will not get there on their first mod, but they’re excited to start down that road.

I have an O’Reilly book about modding that uses Forge and Eclipse, and I was fairly successful at home at writing a simple mod and getting it to build. I ran into troubles when I tried using this on the school computers – installing the software, keeping the folders straight, and working around blocked websites was very painful. Then one of my students introduced me to MCreator. This is a very nice tool found here:

https://mcreator.pylo.co/

MCreator uses forms and menus to generate the Java code for mods. First we used the “Tools” menu to access the texture drawing tools, and kids drew their own texture for a block or item. Next we went to the Workspace and created a new block. The menus let you choose the block’s texture, its properties such as hardness and luminescence, and the events it responds to – what happens when you place it, right-click it, destroy it. The tool creates the code, and then you can click “Export” to create a .jar file, drop it in your mods folder and voila! The only catch to running this on a school computer was that the kids have some websites blocked (including minecraft.net) that make it so they can’t actually build the mods from school. I had the students give me their MCreator folders on a flash drive, and I built the mods and gave the flash drives back with the .jar file on it. They had a lot of fun seeing their mods come to life in a singleplayer world.

Day 5: Putting it all together

On this day,  we made our houses presentation-ready and put together a poster board for the parents. We played some charades and made sure the map, mods and MCreator files were all on the students’ flash drives. For files created in MinecraftEDU, they could use the maps and mods at home if they used the right version of Forge. The version I found that worked is 10.13.2.1291. I gave kids instructions for copying the mods and the map for use at home:

Home instructions for Minecraft

We played survival, just for fun, for the last hour of class. Great fun and excitement to hunt, gather, and dodge zombies together for a while.

I feel when you’re teaching just a weeklong class, you have a tradeoff to make. I chose to focus on new tools and skills in the Minecraft world rather than creating a big project – we worked on a creative house build but the class was really composed of four mini-lessons and not one large product. I also think there’s a lot of value in having the students plan, execute and troubleshoot through a whole-class build with a theme. With the custom NPC’s, I’d love sometime to create a multi-player adventure map with quests and an educational purpose. Maybe that will be my focus of my Minecraft enrichment class next year!

 

Arrays in Middle School #csk8

How do you give instructions to pull a random book off a shelf? Or to sort all of your books in alphabetical order? Or to remove the books off your shelf that were written before 1960 and order the rest by date? Or figure out the average length or Lexile level of all the books you have on the shelf?
If you have ever considered problems like these, a computer program can help you and you need to use data structures.

In Computer Science, since I started the semester right away with coding AND I have a very sharp class this semester, we have actually gotten to data structures – the kids are learning about arrays. I mostly learned about arrays in college, so teaching it to middle schoolers is still something I’m new at. I am spreading the instruction out over about a week and a half.

I started by addressing the need for arrays, by having the kids modify a little fortune-teller. The starter code is here.

Fortune Teller Starter

The fortune teller uses three variables to store different fortunes, and then picks a random number. Then it uses a series of if/else statements to choose which fortune is displayed. Pretty simple. I asked the kids to add a new fortune to it and tell me in how many places they had to change the code. The kids did, and the consensus was that it needed three changes: add a new variable, modify the random number generator, and add one more else/if clause.

So then I led them through a short explanations of arrays. You have one variable and it contains an indexed list of data instead of just one data item. The first item is always item 0, then item 1 and so on. This indexed list is called an array. It’s like the arrays they worked with in math class to multiply. You can make arrays that are two-dimensional or more, but this one is just one-dimensional for the list of fortunes.

We modify the program so it looks like this.

Array Fortune Teller

I asked the kids if they would prefer me to go over the instructions live or let them watch a video. Almost the whole class preferred live instruction, which surprised me. I made this nice instructional video but then didn’t use it.

Instructional video: Using an array in the fortune teller

With the new code, adding a new item to the list of fortunes requires only one change to one line of code. Much simpler to make changes! But a little trickier to code.

In the next lesson, we look at how to use a loop with an array to do something simple, like print the contents of an array to the screen. This is also a mainly teacher-led demo, but I did make a nice instructional video that again I didn’t use.

I start with this code:

Print an Array Starter

And then I had this video, which we didn’t use:

Video for looping to print an array

I feel that when you start getting into data structures, that’s where interesting algorithmic work with computers really starts. I decided to have the kids do a little algorithmic role-play to see how they would make a computer work with an array.

I lined up a row of kids at the front of the board and told them to all write down a number on a card, but keep the number hidden.

An array of data, starting from index 0. Can you write instructions for a robot to find the largest number?

An array of data, starting from index 0. Can you write instructions for a robot to find the largest number?

Then I asked the rest of the class to write a set of instructions that a robot could use to figure out the biggest number on a student’s card.  The kids asked “can’t you just write an instruction to have everyone flip their number over and see which one is the biggest?” I said no, robots really need things written step by step, so start with which kid I should walk to first, and what I should ask them and so on.

I knew I’d have some kids that would absolutely fly with it, and I also knew I’d have some that would have trouble with this concept. I did. However in the discussion, a basic understanding of the algorithm came out:

  1. Look at the first number.

2. Remember it.

3. Look at the next number.

4. Compare this number to the one you remember. If it’s bigger, then throw away the number you are currently remembering and remember this one instead.

5. Repeat steps 3 and 4 until you run out of numbers. The number you’re remembering is the biggest.

Arrays are hard, in which the array itself has a variable name, and then the index in the array can be referenced by another variable.

int p = 2;

This use of a variable is pretty straightforward and only takes a little practice to understand. Kids have been using variables since 5th grade in math class, so they have some background with it.

int [] p = {9, 72, 40, 12, 35, 99, 33};

This is more difficult as the whole array is named “p” and your algorithms require that you reference each number with “p” and its index. But so powerful. You can manage really complicated math once you have a basic understanding of data structures.

Anyway. We coded the “find the biggest number” problem by using a sample program, below.

 

int [] nums = {12, 59, 2, 63, 400, 88};
void setup() 
{
  int num_i_remember; 
  num_i_remember = nums[0];
  for(int i = 0; i < nums.length; i++) 
  { 
    if(nums[i] > num_i_remember) 
    { 
      num_i_remember = nums[i]; 
    } 
  } 
  println("the largest value is " + num_i_remember); 
}

 

The challenge I gave to the kids was to write a teacher tool. Sometimes, teachers have to do creative things with their data. For example, I gave 11 quizzes during a semester. Students convinced me to drop the lowest score and average the other 10.

The pair programming task: given an array of 11 quiz scores, find the lowest score, drop it and average the other 10, then tell me the average.

The kids did a really awesome job and only a couple of pairs got stuck and needed a lot of support. The most common solution was the one like Anoushka’s, below. She modified the code that found the largest number so it found the smallest instead. Then she averaged the rest of the numbers using brute force, but with only 10 numbers it worked just fine.

Anoushka’s Teacher Tool

Some students were able to get how to iterate through the array to find the total, subtract the lowest score, and divide by how many numbers there were. Maya’s solution works no matter how many quizzes I give during the semester.

Maya’s Teacher Tool

 

What’s next? I think we will do some unplugged activities to refresh / review, and then make a project that brings arrays to life by storing information useful to teenagers – like the locations of sprites in a video game! I think we’ll work on an animation with a bunch of images that have x and y coordinates stored in an array. Maybe we’ll think of different structures for the data (one array storing both x and y coordinates? 2 arrays? Dare I introduce multi-dimensional arrays?). Then after that… a mini-project, a little game or interactive animation including all of the things we’ve done so far. Processing is so colorful and interesting, I want to see what the kids can make with it.