Categories
Computer Science Learning Tools Lesson Programming SuperTopic Update

Creating Coding Lessons – Grades 6-8: Part 1

Creating Coding Lessons

As a STEM teacher I am continually taking workshops and courses to get better at my job. As a public school teacher I am always on the lookout for those who are willing to donate equipment to my program. While on a follow-up call for a coding PD I took last summer, I was asked what I would need in order to implement coding fully into my curriculum.  My answer was simple: “I need 9 new Android tablets”. I was half joking, but you miss 100% of the shots you don’t take. When the response was: “Okay we should be able to get those to you in January”. I realized I needed to begin Creating Coding Lessons for my grade 8 students, and the idea for this post was born.

If you don’t have access to an Android device for each student (or each pair if you are using pair programming), check out this post for your coding lesson needs.

Creating Coding Lessons Overview

I am Creating Coding Lessons for a 10 week course for 14 grade 8 students. We use tablets and cellular phones running the Android operating system to run our programs. We use Chromebooks, and the App Inventor 2 IDE to create them. This course focuses on teaching Computer Science fundamentals, and specific event based programming skills. Class time is spent on performance tasks, and all assessments are performance based. Any lecture is video based. For the final assessment, students will create an app that solves a real world problem. Successful completion of this task will show mastery of the content at Depth Of Knowledge (DOK) 4. The process for Creating Coding Lessons for this unit will be outlined over several posts.

Standards framework for Computer Science Education in primary grades is evolving. No clear system with fully developed standards, and practices seems to be available. There is a generally accepted framework I will be working from which can be found here, but this will be my interpretation of the general concepts they recommend.

Unlike most of my curriculum posts, I will not initially be focused on a full STEM implementation here. Eventually, Math and Science will be integrated, but to start I will be focusing on Technology and Engineering. Designing a full fledged STEM unit is a daunting task, but designing a focused unit to be altered later is significantly less problematic. In this case I am under a time crunch to start teaching this unit so, Creating Coding Lessons for it needs to happen quickly. Remember that much like the design tasks we use to teach engineering, we can iterate on our lessons. In fact, none of my lessons are exactly as I originally envisioned them.

Creating Coding Lessons Practices

K12cs.org outlines 7 core practices of Computer Science that students in all grade bands should work towards mastering. Within the greater context of the coding unit each performance task should be working towards fostering the following.

  1. Fostering an Inclusive Computing Culture: This practice refers to the idea that computing is for everyone, and that perspectives from various genders, ethnicities, and abilities have positive effects on computing.
  2. Collaborating around Computing: This practice encourages individual students to become used to working collaboratively on teams, and in pairs.
  3. Recognizing and Defining Computational Problems: This practice fosters the ability to recognize, and define problems that can be solved with computing.
  4. Developing and Using Abstractions: The concept of abstraction revolves around helping students develop the ability to generalize portions of a solution for reuse in other computational problems.
  5. Creating Computational Artifacts: This practice involves having students actually create things as opposed to just learn about them conceptually. Students should create programs, videos, robotics systems, and apps as part of their study.
  6. Testing and Refining Computational Artifacts: This practice refers to having students iterate on their creations.
  7. Communicating About Computing: At its core this practice asks students to not only create computational artifacts and iterate on them, but also to be able to describe what their creation does as well as how it does it.

 

Creating Coding Lesson Concepts

In addition to the core practices as outlined by k12cs.org there are 8 Computer Science core concepts. These concepts are broken out by grade band level. This set of lessons is focused on the 6-8 grade band. Additionally, this set lessons is designed to teach students these concepts to a level they should know by the time they graduate grade 8. The descriptions for these concepts, and what students need to know by the end of grade 8 are found here.

  • Algorithms
  • Variables
  • Control
  • Modularity
  • Program Development
  • Culture
  • Social Interactions
  • Safety, Law, and Ethics

 

First Lesson

As evidenced  by the Concepts & Practices above I am teaching far more than simply app development.  I will use the App Inventor 2 IDE & Google sites for the lesson, but I am teaching a core of Computer Science. As it turns out, I just had my first class in this lesson today. After the normal opening day items such as how to get permission to use the rest room, and safety concerns we really only had enough time to get set up with the various systems that will be in play for this class.

Google Classroom

For this course I will use Google Classroom primarily to assign homework, and give students direction for independent research. I use Google Classroom, because I am at a Google school, I’m certain that there are other tools available, but I find it very easy to use, and it’s available to me. Since I am working towards teaching Computer Science through App Development the first thing I did was assign the students a set research questions, and a video.

The questions are: What is a Computer? What are it’s features? What is Computer Science?

My students are asked to research the above questions, and provide answers on their individual Google site. I made the questions broad based intentionally to see what the kids come up with. This question set serves the primary purpose of getting students used to research. The discussions that will follow will work to refine their understanding of computer science. By the end of this course they should have a better understanding of the above concepts.

The video I assigned is here and just covers the basics of the App Inventor 2 IDE, as well as walking learners through creating their first app. We will actually create the app in class, but I wanted them familiar with the video before we work through it. I gave my students the option of attempting the project by themselves as well. Allowing students this opportunity will take advantage of their excitement, and allow them additional autonomy if they would like it.

Google Sites

In addition to software development, web site design is another foundational Computer Science skill. Teaching some simple design, with a simple tool will make later exploration more efficient. I also want to have a way for my students to effectively collaborate with one another in their work, and to archive their work. With all of this in mind, having them create a digital portfolio is the right call. Again, I work at a Google School so I have access to this tool, but others are certainly out there. Additionally, for younger students I really like Google Sites. It is easy to use, and incredibly easy to control who sees the content. One of the things I am trying to teach my students is the concept of safe computing, and one of the foundations of safe computing is limiting access.

Some things to keep in mind here are that students will need to “share” their site with you in for for you to view/edit it. You should also have them set their privacy settings to “anyone with the link”. This allows them to share it more easily while keeping the  circle of viewers small. I ask my students to set up an about me page, a links page, and an assignments page to start. When they complete an assigned question they put the link to their answer in the comments to the question in google classroom. Later I will have them collaborate using their sites by posting links to them in the google classroom.

 

Talk to me App

The first App we will develop is a simple piece of software that is designed to use the text to talk feature of the Android Operating System. This feature allows a user to input a string of text, and the computer will “read” that string out loud through the device’s speakers. In this first iteration of the App, students will program in a graphical button on the device’s screen which when tapped will “speak” a pre-determined statement. The tutorial for this app can be found here.

This particular App isn’t overly complex. It requires changes to the code itself in order to change the message spoken, and only has one component. However, if we look a bit deeper it teaches a good deal more than we think. First, this tutorial, and the app created with it gives students a solid overview of how App Inventor 2 works, which will serve them well later on. Second, it shows all of the computing practices outlined above. Thirdly, it opens up conversations about algorithms, program development, and modularity. You can also add important general coding good practices such as annotation. Finally, this program allows you to ease students in to how you will be assessing, and grading them.

Grading & Assessment

If you’ve already had a look at my Ev3 Robotics Lesson 2 post you are familiar with my method for assessing a computer program. Assuming you haven’t gotten to that post yet, I assess computer programs by breaking them down into three measurable components. They are Accuracy, Efficiency, and Annotation. Accuracy refers to whether the program functions predictably. Efficiency deals with how many commands are used, and Annotation refers to what manner of commentary a program contains. In the case of this first lesson, as we will be creating the program in class by following a tutorial so using this method gets a bit tricky.

For most of my classes I use a class participation rubric, which would apply here. When students have advanced sufficiently for assessment I create a separate rubric for the assessment. For an example of what that may look like, click the link in the first sentence of this section.

Part 1 Conclusion

This first article is about getting set up to teach using  variety of tools. Though the first lesson is discussed here, it is not done in detail.  I will do a series of reflection posts about how the lesson is going, and discuss further lessons in greater detail. If you found this article helpful, please share it wherever you think it will do the most good. Stay tuned for more in this series.

 

 

Categories
3D Printing Learning Tools Resources SuperTopic Update

Makerbot Tips & Tricks: Get the Best From Your Tech

makerbot tips

 

As I’ve mentioned in other posts, I didn’t come to STEM education via the traditional routes. I mention this now because the post that follows is the culmination of three years of working with the Makerbot Replicator 5th Generation in my classroom. It showed up in a box, fully assembled, without anything resembling a manual. It had a quick start guide. That’s it. As such I really could have used a post covering Makerbot Tips. Aren’t you lucky that I’m here to give you some tips and tricks to make this incredibly expensive, powerful, learning tool work well for you, and your students.

Note: What follows is not a recommendation to purchase the described technology. Further, this is not an offer to support this technology. Before purchasing any 3D printer, or other technology please be certain that you have researched the various options available, and have a plan for how you will use it. The following post assumes you either already have a Makerbot Replicator 5th Generation, and are looking for some tips & tricks to help you along, or you are already buying one. This is what makes my life easier as an educator that uses this tech in my classroom. Your mileage may vary.

Makerbot Tips of Utmost Importance

Before your Makerbot even ships you need to begin maximizing your chances for successfully implementing this solution in your classroom. The best way to do that is to budget for the service contract. If you don’t purchase a service contract for this device, the support you get via the warranty is awful. However, the support you get with the service contract is pretty great. Roll the dice if you want to, but I would never buy one of these (or any other $3,000 piece of equipment) without the service contract.

Additionally, make sure you order an extra Smart Extruder to have on hand. In my experience you will go through 1-4 extruders per year, and as a teacher you can’t afford downtime. With a spare you can just swap out the part, and get back to printing. A note about the service contract though is that they only cover three extruders per year so, count on paying for any after that.

Makerbot Tips for Care & Feeding

Your Makerbot will treat you well if you treat it well. If you do not pay attention to its basic needs it will die on you when you need it most. Job One for a long, and happy life with your Makerbot is understanding the leveling feature. On the Makerbot Printer you will see a menu of options. In order to level your build plate you will select “Settings” followed by “Calibration” followed by “Assisted Leveling” (this is how it is found as of this writing). In order to have the greatest number of successful prints you need to run this feature any time you change filament, remove the build plate, or have a filament jam. Once you select Assisted Leveling you just need to follow the on screen prompts.

Job Two is proper maintenance of your build plate tape. This is a largish section of painter’s tape that covers the glass of your build plate. Any time this “tape” gets ripped up you need to change it. Some people will tell you to use any old painters tape you can get at the hardware store. That’s probably fine, but I use the stuff Makerbot sells. It isn’t that expensive, and seems easier to use as there is no cutting involved. However you keep the build plate covered, you want to make sure that there are no bumps, bubbles, or wrinkles in the tape. Remember that this device has tolerances of down to .1 MM, it doesn’t take much of a wrinkle to mess things up.

Makerbot Tips for Getting the Most Life Out of Your Extruder

There are a couple of good tips for minimizing the number of extruders you use each year. In my classroom the 3D printer runs every day for most of the year. After a good deal of experimentation I am only going through 2-3 extuders per year which equals out to about $450.00 per year when my service contract runs out. The main way to keep the number of extruders you need per year to a minimum is to limit the number of times the hot end heats up, and cools down. The way to achieve this is to use the “add” feature in the Makerbot Desktop software, and to print small.

The add feature, found in the file menu or by clicking Ctrl+Shift+O allows you to add multiple files to a given print. What this means in practice is that instead of printing one file at a time, you can print multiple files and maximize your available build plate space. The fewer times you need begin a print, the fewer times your hot end will heat up and cool down which will make it last longer.

Printing small, involves what types of projects you have your students work on. Ideally, whatever project you have them doing will allow you to reasonably print a whole class worth of designs in one run. In my case I focus on Model Rocket Nose Cones I have also used snowflakes, and Christmas ornaments. In any of those cases I have been able to fit 10-20 unique designs on my build plate. It makes for a longer print, but minimizes heating and cooling.

Makerbot Tips for Limiting Filament Costs

One of the biggest frustrations most people have about the Makerbot is that you have to use their proprietary filament. It so happens that the filament they sell is on the expensive side, and the options are really limited to various colors of PLA. As such, it helps to limit how much you use. My first year teaching with my Makerbot I went through 16 rolls of Filament. After figuring out a trick or two that dropped down to 4.

First, I started printing hollow. This is achieved by changing the settings in the Makerbot Desktop software to having an infill of 0%. Depending on the specific project you may or may not be able to do this, but in my case it works great. Second, I started printing in low resolution. Low resolution makes the layers .3MM as opposed to .1mm. Fewer layers means less filament. Again, you need to figure out what will work for your particular lesson here, but with my model rocket nose cones this works perfectly. Third, don’t print things that require supports. In my experience using supports on the Makerbot is a recipe for trouble anyway, but no supports equals less filament as well.

Fin

I love 3D printing as a learning tool, but I have found that it can be frustrating for many teachers. It also causes me massive amounts of stress when I am giving a workshop on 3D printing, and I find a printer in disrepair. It bums me out because I know that once it starts breaking down it is destined for a storage closet, and that is a crying shame. Like any technology 3D printers take some getting used to, but once you understand it intricacies it is really hassle free.

Thanks for reading my Makerbot Tips article. If you found this article helpful please spread it around. If you want to read more about specific lesson on 3D printing poke around a bit on the rest of the site. Finally, if you would like to receive regular updates when we post a new article (and noting else from us) sign up below. Thanks again for reading.