Categories
Computer Science Learning Tools Lesson Opinion Programming SuperTopic Update

Creating Coding Lessons – Grade 6-8: Part 2

coding lessons reflection

Any time I try something new I get some unexpected results. Often I learn something new. Usually I tweak something. Sometimes I find a connection to something else. My students find the lesson easier or harder than I expected. I’ve even discovered that some of my basic assumptions were faulty before. This time is no different. This coding lessons reflection will be of dubious use to you without having read this post. Don’t let me dissuade you though, read away. What follows is an outline, and reflection on what I have done for the coding lesson I am working on so far.

I tend towards jumping right in, and being flexible as I go with new lesson ideas. I know that others prefer to have every moment planned out in advance (and there’s nothing wrong with that), but I am more comfortable winging it a bit. That isn’t to say I don’t have a plan, it’s more to say that my plans are fluid. I trust my research and experience to guide me as I go. This post is a bit different than usual as well. There are a lot of moving pieces to this lesson, and I’m writing to focus my own thinking in addition to documenting what I’m doing for others.

Refined Overview

I am working towards several goals in this lesson. First, I want to provide a solid foundation in computer science to my grade 8 students. Second, I want to introduce my students to some basic web design. Third, I want to give them an outlet for their desire to create. Fourth, I want my students to be less dependent on me for the knowledge they require, and finally I am exploring how to differentiate a performance based lesson across students of varying needs.

Students learn different subjects in different ways. Some students require more scaffolding than others in order to benefit from a lesson, other students learn best with more independence, and still others require something in between. I have always been of the opinion that it is not a given student’s responsibility to learn how I teach. Rather, it is my responsibility to teach how they learn. In the immortal words of Mr. Miyagi: “Teacher say, student do”. My hope here is that I can create a lesson for all students.

Assignments Thus Far

As mentioned here, I started of with a simple tutorial for the Talk to Me App in App Inventor 2. Additionally, I assigned the students to create a google site, populate it with an About Me page, a Links page, a Classwork page, and a Portfolio page. We did the tutorial, and the web site assignments together during class. They were also given a question to answer about computers in general.

Students are required to create a project page for each app, and to fill it with documentation and reflections on each project. After the first assignment they have been given several more in rapid succession. They were assigned the second part of the Talk to me App, the Ball Bounce App, and were tasked with making unique improvements for each app as well. All of the apps up to this point are part of App Inventor’s Hour of Code. As part of these apps we have discussed the concept of abstraction in computer science. Additional App assignments will be designed to cover other topics mentioned in my last post. As an assessment for this first, basic section I asked students to work through the set of tutorials under the Paint Pot App. This assignment is different as I am not giving students class time to complete it.

Coding Lessons Reflection

All assignments are given in the google classroom, and students are encouraged to ask any questions in the google classroom as well. They are also encouraged to answer each others questions.  The first App assignment, and the first web assignments are the only ones we do together in class. The rest will simply be assignments. Students are given class time to work on their assignments. I also expect them to answer many of their own questions through internet research.

There was some push back on these ideas at first, but students are really beginning to embrace this style. This manner of having video tutorials, and performance tasks is allowing me the time to help those students that need it while allowing other students to work at a more accelerated pace. I don’t know yet how the assessment will pan out. My goal is to have students doing work outside of class which will foster greater levels of collaboration on their sites, and in the classroom. My main concern with this is that some students may be unable to work from home because they lack a computer with internet. We’ll see.

I’ve mapped out the app assignments for the rest of the quarter already. I am however, still trying to fit in the concepts & practices I discussed in the first article. That portion is a moving target that I will revisit periodically. Certainly, the app assignments will have most of these ideas built in. My challenge will be to pull out these specific concepts & practices to shine a light on them. A lot of this will come into greater focus as student move away from tutorials, and into building their own unique ideas, but I need to keep them at the top of my mind.

Differentiation in Coding Lessons Reflection

One of the pleasant surprises I’ve come up with is that assigning work in this manner is exceptionally easy to differentiate. In my current class I have several students who are incredibly comfortable with the subject matter, several who are moderately comfortable, and several who need significant scaffolding in order to be successful. By taking myself out of the initial distribution of knowledge to my students, I allow myself to be available to scaffold where needed.

Additionally, by forcing my students to add unique features to their apps I have allowed my students the opportunity to dictate their own level of challenge. Improvements to an app can run the gamut from changing the color of the screen, to translating typed text into another language before “speaking” it. What I’m left with is a room full of engaged students who are given the exact amount of support they require. This has allowed me to view all of my lessons differently, and will change how I teach moving forward.

Next Steps

This Coding Lessons Reflection would be of reduced value without a discussion of where I plan to go next. The rest of the course will continue to be focused on App Tutorials, and web design. In order, the apps I will assign are:

 

As time goes on the tutorials begin to focus on specific features without repeating information. Many deal with some pretty advanced programming concepts so, I’ll have to pay close attention to how my students are doing. There’s a good deal of work left to do on this unit, and I expect to make revisions as I go. I will continue posting about what is going on with the apps individually, as well as what’s happening in my classroom. The really interesting items will be what the kids come up with for individual apps.

Conclusion

Though I am essentially 20% through this first iteration of my coding lessons curriculum there are still a huge number of questions that need answering. I feel like it is going well, and I am excited to see how everything pans out in the end.

Thanks for reading, and if you’d like to keep updated on what’s happening on the blog please sign up for email updates. I promise I will never send you anything other than updates on my posts. Additionally, the more you share this around the more people will get use out of it. Please use the buttons at the top of the post to let everyone know whats happening here.

 

Categories
Ev3 Robots Learning Tools Lesson Programming SuperTopic Update

Advanced Ev3 Robotics Lesson For Superstars – Problem Solving

advanced ev3 robotics lesson

 

My first year teaching STEM was relatively simple from a curriculum design perspective. I knew that grades 5 & 6 would be robotics, and 7 & 8 would be 3D printing (Grade 4 Was a mystery, but I knew I’d figure it out eventually). As none of my students had previous exposure to Robots or 3D printing I could just give my grades 5 & 6 the same lesson, and give my grades 7 & 8 the same lesson. After they had the basics, I would go advanced the next year. The problem was that though I found some basic Ev3 lessons, there didn’t seem to be an Advanced Ev3 Robotics Lesson to look at anywhere.

Not to be slowed down by the fact that no one seemed to have done this before, I decided to go with a series of broad based challenges. Luckily I found the fantastic Dr. E’s Mindstorm Challenges web site to steer me in the right direction. After about 12 iterations, the Advanced Ev3 Robotics Lesson you are about to discover was born. If you came here looking for more basic Ev3 lessons, check here & here.

Materials I use

  • A Core Lego Ev3 for Education kit for every 2-4 students.
  • An Expansion Lego Ev3 for Education kit for every 2-4 students.
  • Some type of cellular phone, or tablet for every 2-4 students.
  • 1 Laptop running Lego Mindstorms Ev3 software for each team.
  • Chromebooks for every 1-2 students.
  • Sumo ring.
  • Access to google classroom for all students (hereafter referred to as the classroom).
  • At least 1 extra Ev3 brick for every other team. For instance if you have four teams, you will want to have a minimum of 2 spare bricks. Ideally though, you will have a spare brick for each team.

 

Advanced Ev3 Robotics Lesson Overview

What follows is a lesson designed to be given over the course of 10 weeks to students in grade 6. These students have already had 10 weeks of basic Ev3 robotics in grade 5, but may not have had that lesson in a year or more. My first challenge here is to refresh my students on the basics. I do this by assigning the same challenge they had as a final for their previous course (Robot Sumo). I add the twist that they must design their own robot. In the previous challenge all of the robots were the same.

The greater lesson here is colored by the fact that my grade 6 students do an Egg Drop Challenge. The design challenge for my class focuses on the Engineering Concept of a fair test. Typically with egg drop challenges some neutral adult actually drops each design off of some high structure (like a roof). Part of the lesson is a discussion about what makes a fair test, and how to develop one.

Invariably we come to the idea that only if all of the egg containers are dropped in exactly the same manner is the test fair. If you refer to my previous post you will note that one of our Big Ideas in computing is that computers are good a repetition & precision. It is a really good day when one of my Sixth Graders points this out unprompted. The design challenge that will take up the majority of the quarter will be to develop a robotic device that will drop the egg container in the exact same manner every time. The device will start out simple, but will become more complex with each iteration.

Note:

This lesson assumes both you, and your students have a high level of comfort with Lego Mindstorms Ev3. Basic concepts are covered in posts here & here. In addition, you & your students should also be comfortable with control structures such as loops, waits, and switches. A high level understanding of Ev3 Sensor blocks, bluetooth operations, and math operations is also necessary for you as the instructor.

Skills Refresher Robot Sumo

For the skills refresher I give the students the following specifications regarding their Sumo Fighting robot.

  • 2 Large Motors are required for movement.
  • 1 Color Sensor is required to stay inside of the ring.
  • At least 1 arm is required that will try to flip your opponent.
  • Any arm is controlled by the Ultrasonic Sensor.

 

Students are asked to research at least 2 web sites that have information on how to build Ev3 robots. Once they have done the research most teams seem to have an idea about how to start. If a given team seems stumped I have them refer to their classmates posts in the classroom. If they are still stumped I demonstrate a couple of ways to attach large motors to Ev3 bricks as this seems to be the barrier for most students that keeps them from beginning to build.

Once they have constructed their robots we walk through a basic program with two parallel loops. One loop has the robot drive up to a black line, back up, turn, and move forward. The second loop triggers the robotic arm when an enemy robot comes within range. However, I don’t necessarily give students these programs. Instead we talk through psudocode for each loop, and I show them how to run parallel loops.

Advanced Ev3 Robotics Lesson Expansion

Once the building starts I bring up two additional Engineering & Computer Science concepts that I teach in my program. The first is documentation, and the second is collaboration. For documentation I am specifically referring to work in progress photos. I managed to get my hands on 5 Android Tablets from a project I worked on with Tufts University (similar to these), which I have my students use as digital engineering notebooks. They are asked to take pictures of their builds in progress, and post them to the classroom along with a description of their picture. I sometimes even ask them to take pictures of each step of a build, and post them. I also ask them to take photographs of their screens when they are writing their programs, and make sure each block of code is commented using the comment feature in the Ev3 software.

For collaboration I have students comment on at least two of their classmates posts in the classroom per week. This seems like a small thing, but what actually happens is that student become used to this, and begin working together. They will even use their classmates work as a resource when a particular aspect of a challenge has them stumped.

Note:

You will need to teach your students what you would like in terms of both Work In Progress (WIP) photos, and comments. These are both new skills to most students, and need to be taught continuously.

Design Challenge Sequence

The main idea with this series of challenges is to create a solution, and improve it in a specific way with each iteration. When students run into programming concepts they are unfamiliar with, encourage them to try and figure it out independently. The idea is that they find their own solution either by asking a classmate or finding an answer through internet research. As a last resort you can use guided self discovery, but don’t give them answers.

Iterations 1 & 2

The first project in this series is to have students design and program a device that will drop a box (I use a tissue box) when the program is run. I don’t give my students any hardware requirements for this solution, just the main Ev3 brick. This initial solution will work, is uncomplicated, and typically just involves running a motor (or motors) just long enough to “drop” the box. The device is then reset manually for the next drop. In most cases no new programming concepts are required, but more complex solutions may require the use of the unregulated motor block. The second iteration should have the device reset itself when run.

Iteration 3

In this iteration, students will likely run into some new concepts in programming. They should improve their device so that it uses the touch sensor or multiple touch sensors. They can use either one or two touch sensors. The program runs continuously, and is controlled by the touch sensor(s). By some combination of press and release the device will activate & reset.

Iteration 4

In this iteration students use the brick buttons to control the devices activate & reset functions. It is certainly okay to swap iteration 3 & 4, but I do it in this order to build towards the next iteration. It so happens that there is a fantastic video on youtube that will assist your students in the next iteration, but uses brick buttons.

Iteration 5

Here is where the difficulty of this set of challenges ramps up significantly. As they are asked to do something they have never done before in the Ev3 environment. Up until now all of the iterations are just variations on concepts they would have mastered the previous year. Now however, students are asked to connect two Ev3 bricks via bluetooth. One brick will act as the controller for the second brick. Students will set up a bluetooth connection between 2 bricks, they will use the messaging feature to make their device activate & reset using the brick buttons. Here & Here are some excellent tutorials that will help your students solve this problem. I make them search for the solution, but you may want to give it to them.

Iterations 6, 7, & 8

For the remaining iterations of the Egg Drop project students will change the manner of control among their connected bricks. First they will use a single touch sensor on their control brick, then they will use two touch sensors, and finally they will use a large motor. All of the information they need to accomplish these tasks can be found on the internet, or inferred from previous work on this problem set. As mentioned above, most of these concepts are pretty high level.

Final Assessment (WIP)

Ideally my whole class would get through the first 8 iterations of this problem set, and would have the opportunity to perform the assessment I am about to describe.  Unfortunately, it is a lot to expect in a 10 week program. In my classroom, none of my students has gotten further than Iteration  8 above. I hope to one day get here, I hope you can as well. In any case, always plan for more than you think you can accomplish.

The assessment here is to have your students design both a robotic car, and a remote controller for that car. They are then asked to perform a series of runs through a maze, and are competing for the best time. You could add complication by having items for them to pick up, and drop off if you so choose. If you wanted to get really challenging you could set up a system whereby students use some manner of video feed to see their robot while controlling it.

What I am aiming for with this assessment if for student to realize that controller design is as important, or even more important than the design of the car. I will happily do another, more robust post on just this assessment if I can manage to get my students far enough to do it several times. If you manage to get your students to this point please let me know how it works out.

I hope this post (long as it is) has been helpful to your teaching practice. If it has, please feel free to share it with whomever you’d like. If you’d like to be updated when new posts come out by email, please sign up for our mailing list. Thanks for your time.

Categories
3D Printing Learning Tools Lesson Rockets SuperTopic Update

Lesson: SuperStar Rocketry 2 – 3D Printing Lesson

3D Printing Lesson: Model Rocket Nose Cone Design

When I first started teaching I got offered an incredible budget to set up my STEM program. The only caveat was that I buy a 3D printer with some of the money. The challenge however, was that I’d never heard 3D printing before, let alone how to design a 3D Printing Lesson. What I needed was something simple, engaging, adaptable, and quick to learn. I did internet research, and though there are some good resources now, at the time there really weren’t. Instead I designed my own curriculum for grade 7 & 8. After twelve or so refinements I came up with the 3D Printing Lesson you’re about to read.

The below 3D Printing Lesson assumes that you already know how to use your 3D printer, and are familiar with model rocketry in general. As of this posting, I don’t have a recommendation for a 3D printer. That said, Make Magazine does a great annual article evaluating what’s out there. Depending on which make & model printer you buy, training may be available from the manufacturer. Alternatively there are lots of how to articles, and videos online. One day I hope to buy a kit, and make my own printer. When/if that happens I will document the process. If you are unfamiliar with Model Rocketry though, I have good news. Why you should use model rocketry is covered here, and Lesson 1 in the series is here. This lesson will refer back to lesson 1 often so, give it a read if you haven’t already.

In case you haven’t read my other Lesson posts it is worth noting that my style of writing a lesson plan isn’t what you may be used to. I write out the plan in a manner that is meaningful to me as a teacher. The first thing I typically need to know is what materials I need, followed by what to teach, followed by how to teach it, and finally the applicable standards. Here we go!

3D Printing Lesson: Introduction.

In this lesson students design several model rocket nose cones based on established shapes using computer aided design software. Students print out each nose cone, equip a model rocket with it, launch the rocket, and record the data. The same rocket body is used for each launch to protect the integrity of the data. This lesson is designed for use in grades 7 or 8, and takes approximately 1 academic quarter the way I teach it.

I have my students build rockets from scratch, but if you use kits this lesson could take less time. This lesson could also take less time if you give students measurements to work with. I ask my students to develop size specs on their own. This lesson could certainly be used as a performance task for performance based assessment. I also teach this lesson along with Rocketry Lesson 1 as opposed to separating them in order to save time.

3D Printing Lesson: Materials.

  • 3D Printer & Supplies.
  • Rocketry Supplies (see Lesson 1).
  • A computer (Chromebooks work fine), or tablet for each student.

 

3D Printing Lesson: What to Teach.

  • Computer Aided Design.
  • 3D printing.
  • The Iterative Design Process.
  • The Use of Data in Design Decisions.
  • Everything from Rocketry Lesson 1.

 

3D Printing Lesson: How to Teach

If you are using kits, begin with constructing the kits. If you are doing a from scratch build to a certain set of instructions like I do, you can start with that. In either case, while construction is happening, I go over the Parts of a Model rocket from lesson 1, but as I am having my students design the nose cone for the model rocket, I go into greater detail on the nose cone as shown below.

nose-cone-exploded

I apologize for the quality of the drawing, clearly I teach Tech Ed not Art. Since we are creating the nose cones we need to have a shared vocabulary when discussing a given design. When we get to the actual design phase I will give my students some specifications for measurements, but for now they just need to know what the various parts are called.

Baseline Launch or CAD?

Once you have a shared vocabulary established, and rockets assembled you can go one of two ways. You could put some standard nose cones on the rockets, have a launch, and record data for a baseline.  I take the other tack,  which is to begin with the use of the Computer Aided Design tool. Great News! If you use the tool I use (which is free, web based, and functions well on Chrombooks) called TinkerCad, it comes with a whole suite of fantastic tutorials that guide your students through the various aspects of the software. For this 3D printing lesson you can allow students time in class to work through the tutorials, assign it as homework, or do a combination of the two.

I have my students do the tutorials in Basics, Accessories, Gadgets, and Miniatures. One word of caution here, if your students are under the age of 13 setting up an account takes parental approval. The site uses a question about birth date to verify age when an account is set up, but doesn’t do any other type verification.

Design

Once you & your students have established a shared vocabulary, learned how to use CAD software, and have built rockets you can begin to design nose cones. Prior to beginning the actual design of their first nose cone I ask my students to research model rocket nose cone shapes. I am trying to get them to find conical, ogive, parabolic, and blunt shapes. At this point I ask them to make a prediction about which nose cone will give the rocket the highest altitude. Once they have done their research I give my students a set of digital calipers, and have them get the interior diameter of their rocket air-frame. The should also measure the exterior diameter. Their first assignment is to design a Conical Nose Cone.

Nose Cone Design Requirements
  • The nose cone must fit snugly into the rocket air-frame.
  • The nose cone must have a shock cord mount.
  • The height of the cone is twice the exterior diameter of the body tube (2D).
  • The total height of the full nose cone including body tube mount is three times the exterior diameter (3D).
  • The shoulder will measure 2 millimeters.

 

In all likelihood, your students will need to go through 2-3 iterations just to get the nose cone to fit inside the air-frame correctly, and meet the specifications. Here is one I designed for the project. See the Pro Tips below to learn from my experience.

Design & Printing Pro Tips:
  • Print the shock cord mount beside the cone & superglue it onto the bottom.
  • Make an indent in the bottom of the cone for the shock cord mount to sit in.
  • In your 3D printing Software, there should be an add feature to add several additional objects to your print, use it.
    • If you follow this pro tip assign students a number or letter to have as a unique identifier such as the “X” on my example nose cone.
  • Make certain to have your students name the files in a descriptive way.
    • For instance, if the class is grade 7 quarter 1, the student’s name is John Smith, and the nose cone is conical I have them name the file: G7Q1ConicalNCJS.
  • Teach students how to use the Align Tool in TinkerCad so you can have everything centered.
  • Students will save themselves heartache if they fully understand the Ruler Tool in TinkerCad.
  • For each design after the first they copy (Ctrl+C) & paste (Ctrl+V) their body tube, and shock cord mount assembly from the successful conical design. Those two features don;t change from cone to cone.
  • When printing nose cones set the initial fill setting to 0.00%. This gives you a very light nose cone.
    • You can expand this lesson by messing with the fill, and seeing how much the weight of the nose cone changes with the fill percentage. You can further expand it by seeing how much nose cone weight effects altitude.

 

Next Steps

Once you’ve got conical nose cones that fit snugly into the students rockets you’re ready to move on. Schedule a launch, launch rockets, collect data, and go over that data as a class. I go into more detail on both data collection, and expansions in Lesson 1. After the first launch move to a different nose cone shape, and do as many launches as you can. The more launches your class does, the more interesting your data will be. For comparison, the most launches I have achieved within a quarter was 3.

Standards:

  • All Standards covered in lesson 1.
  • Future Tech from 3D printing.
  • CAD introduction from TinkerCad.
  • Additional math standards based on the calculations you have your students perform.

 

Expansion, Assessment, & Conclusion

I have expanded this lesson by complicating the nose cones in various ways. One good way to complicate the design of a nose cone includes eliminating the square shoulder in favor of a parabolic shoulder. One way to complicate the data, and analysis of a launch is to include meteorological data. The data can be further complicated by adding speed, and velocity calculations. This lesson really is almost infinitely expandable with a bit of creativity.

To assess this unit I have posed questions relating to a fictional rocket launch in short answer form. If you are working towards performance based assessment, you can give your students a design challenge with a goal of highest, or lowest altitude as an assessment.

Have found this lesson useful? If so, please use the social media to share it with as many teachers as you know. If you would like to keep up to date with new STEM lessons, research, learning tools, and book reviews please sign up for updates.