I Did the Hour of Code, and then I Did Three More Hours of Coding


By: Tony DePrato | Follow me on Twitter @tdeprato

Every year I take a few minutes to express slight annoyance at “The Hour of Code”. In my professional life, I will support any teacher wishing to participate. However, if anyone does happen to ask my opinion, I would explain to them my reservations about the event.

This year I want to take a new approach. Let’s skip the part about how an hour of coding is not a practical amount of time to plan, draft, built, and evaluate a creative solution or idea. Let’s move beyond the fact that the majority of the programming environments children are using are telling them what to do and how to do it (because they only have an hour). Finally, let’s completely ignore the potential disappointment students will face when they decide to actually try and build something on their own.

The first important fact I would like to address is that I have taught children as young as  grade three how to code something meaningful. It was a slow, and often painful process, that seemed to be futile. However, the children always surprised me, and after 6-8 hours of work, there was usually a working program that connected to an idea. I would like to stress that I am aware many students are not able to simple open an IDE and begin creating the next Mario Kart. Coding/Programing is tough. It takes practice. Students need to learn and evolve. Doing an Hour of Code ONCE to get them going is fun, and I would support that.

Why Are We Still At An Hour of Code?

My rant this year is on this simple question: why do we still just have an hour of code?
It seems like since many schools have been doing this for a few years that there would be another, possibly required, track that regular participants would need to follow.

For example, Three Hours of Code. Or maybe Two Hours of Code, the Wrath of Python. Anything beyond on hour for those who understand the mission, and have mastered an hour of code, would be preferable.

Maybe if it is the first time coding with students, schools do one hour, and join the movement.

Since those schools have a full year to prepare for the next challenge, how about level it up a bit? Why wait all year to just do one more hour?

If we are saying the mission of the project is to get students interested in coding, then shouldn’t the continued mission require more  levels of participation?

An Hour of Code year-after-year is not a going to make an impact.

Are You Really Serious About Coding and Project Based Learning?

If you are serious about working with young learners, then you need to find programs like AppJamming. These types of contests connect all the aspects of the Systems Life Cycle , to the student experience. Working with a program like AppJamming allows students to experience the various phases of creation from the idea to the end-product.

Makerfaires are another outlet for getting students involved in true project based learning initiatives. These types of events are excellent. Coding is part of a tool kit instead of the sole focus. Students who may “like” coding, but do not “love” coding, would be more likely to participate. Students would learn to integrate coding as a process into a larger product.

In Summary

Support teachers and students who want to do new things. Do not keep allowing people to easily do the same thing over and over. The learning becomes less and less when the goals are easy to achieve. Encourage people to challenge themselves, and take some risks.

 

 

Computer Science, Programming, and Coding Standards by Grade Level

By: Tony DePrato | Follow me on Twitter @tdeprato

A while back I took the ISTE NETS Standards and decided to create a grade level based layout for what students should be able to do at different grade levels.

As the students continue to progress through their education, the grade level view expands gradually. The idea is that they keep repeating activities and meeting these standards.

Here is what the current design looks like:

Years  3 & 4:

  • Effectively use primitive data types
  • Effectively use, manipulate, and explain various external data types (text, images, sound, etc.), various locations (local, server, cloud), etc.

Year 5:

  • Effectively use primitive data types
  • Effectively use, manipulate, and explain various external data types (text, images, sound, etc.), various locations (local, server, cloud), etc.
  • Effectively use modeling and simulation to solve real-world problems
  • Effectively use two or more development environments

Year 6:

  • Effectively use primitive data types
  • Effectively use, manipulate, and explain various external data types (text, images, sound, etc.), various locations (local, server, cloud), etc.
  • Effectively use modeling and simulation to solve real-world problems
  • Effectively use two or more development environments
  • Demonstrate an understanding of operating systems and networking in a structured computer system

Year 7:

  • Effectively use primitive data types
  • Effectively use, manipulate, and explain various external data types (text, images, sound, etc.), various locations (local, server, cloud), etc.
  • Effectively use modeling and simulation to solve real-world problems
  • Effectively use two or more development environments
  • Demonstrate an understanding of operating systems and networking in a structured computer system
  • Using a modern, high-level programming language, construct correctly functioning programs involving simple and structured data types; compound boolean expressions; and sequential, conditional, and iterative control structures

Year 8:

  • Effectively use primitive data types
  • Effectively use, manipulate, and explain various external data types (text, images, sound, etc.), various locations (local, server, cloud), etc.
  • Effectively use modeling and simulation to solve real-world problems
  • Effectively use two or more development environments
  • Demonstrate an understanding of operating systems and networking in a structured computer system
  • Using a modern, high-level programming language, construct correctly functioning programs involving simple and structured data types; compound boolean expressions; and sequential, conditional, and iterative control structures
  • Design and test algorithms and programming solutions to problems in different contexts (textual, numeric, graphic,
    etc.) using advanced data structures

Years 9 & 10:

  • Effectively use primitive data types
  • Effectively use, manipulate, and explain
    various external data types (text, images, sound, etc.), various locations (local, server, cloud), etc.
  • Effectively use modeling and simulation to solve real-world problems
  • Effectively use two or more development environments
  • Demonstrate an understanding of operating systems and networking in a structured computer system
  • Using a modern, high-level programming language, construct correctly functioning programs involving simple and structured data types; compound boolean expressions; and sequential, conditional, and iterative control structures
  • Design and test algorithms and programming solutions to problems in different contexts (textual, numeric, graphic, etc.) using advanced data structures
  • Demonstrate an understanding of the operation of computer networks and mobile computing devices
  • Demonstrate knowledge of two or more programming paradigms

Years 11 & 12:

  • Effectively use primitive data types
  • Effectively use, manipulate, and explain
    various external data types (text, images, sound, etc.), various locations (local, server, cloud), etc.
  • Effectively use modeling and simulation to solve real-world problems
  • Effectively use two or more development environments
  • Demonstrate an understanding of operating systems and networking in a structured computer system
  • Using a modern, high-level programming language, construct correctly functioning programs involving simple and structured data types; compound boolean expressions; and sequential, conditional, and iterative control structures
  • Design and test algorithms and programming solutions to problems in different contexts (textual, numeric, graphic, etc.) using advanced data structures
  • Demonstrate an understanding of the operation of computer networks and mobile computing devices
  • Demonstrate knowledge of two or more programming paradigms
  • Analyze algorithms by considering complexity, efficiency, aesthetics, and correctness
  • Demonstrate an understanding of static and dynamic data structures

Over the next few weeks, I will be connecting the standards at each grade level to the types of activities and lessons that facilitate them.

Problem Solving with Technology: A List of Topics and Standards

tiefourimage

 

 

 

 

 

 

 

By Tony DePrato | Follow me on Twitter @tdeprato

Core Concepts and Definitions

Digital Native is a term that refers to children who have been born after the advent of the modern personal computer and affordable personal laptop. There is a belief that these children have a very high aptitude with technology. This curriculum plan completely disagrees with this belief and reaffirms that all children need a solid foundation in problem solving in, and creating with, technology. The normal life of the average Digital Native is one of a consumer and user of things others have created.

Read More @The International Educator

Programming with spreadsheets – START NOW!

I’ve heard a lot of math teachers comment (to me personally) how difficult it is to integrate math into their classes. Most of the time these teachers just use apps on iPads or use websites like IXL, Mathletics or more to have students practice skills and then track the students progress. That’s fine and those apps do provide a much needed service especially in the data rich educational classroom of today.

But there is another way, an older way, that can directly tie your lessons into technology. I’m talking about using spreadsheets. Now let me be clear, you can do this with Excel, Numbers (Mac only), OpenOffice, NeoOffice (Mac only), LibreOffice, Google Sheets or Zoho Docs. Yep, that’s a lot of different programs, but the process should be nearly identical regardless. You will be teaching your students to use a spreadsheet to solve math problems. As long as you have access to any of these programs you can do this.

Right now, my sixth grade class is working on volume and surface area of rectangular prisms. Volume is pretty easy, you just multiply the length, width and height. The surface is a bit more complicated as you need to find the area of each side and then add those values up. It’s not hard to say or even wrap your head around but doing the math by hand can often lead to simple mistakes that wreck the whole problem.

I can hear people now “They need to understand what they’re doing!” Yes, yes, yes we’ve practiced surface area ad nauseam and I feel pretty confident they can calculate it, so we’re past that. Now onto the fun stuff – setting up a spreadsheet to do the work for them.

This was their first time really working with a spreadsheet so I expected a lot of questions and confusion. I had to explain the following concepts:
Cell reference
– How to enter equations using the equal sign
– The asterisks (*) as the multiplication symbol

This confusion will pass due to the repetition of the equations that you must enter. The real magic happens when you start to duplicate the formulas and it starts to solve them automatically. The reaction of my students was awesome!

You can do this with just about any equation and I would even try it with students as young as fourth grade. Once a student understands an equation thoroughly enough, they can enter it into a spreadsheet and let it do the heavy lifting.

This is a great start for students because there is so much more they can do such as make their own gradebook, customize their spreadsheets using conditional formatting, need help with more math equations, then you can empower them spreadsheets!

I’ll put my instructions in another post and include a download link for the PDF.

Patrick Cauley – @itbabble
http://www.thetechjonsey.com

Beyond Hour of Code

By: Tony DePrato | Follow me on Twitter @tdeprato


A friend emailed me to get some ideas for his IB Computer Science (IBCS) class. We had recently discussed The Hour of Code, and how it was a good activity, but it was not deep enough to accomplish anything real.

I gave my friend the same advice I always remind myself to take. If you want to meet your curriculum standards and be interesting, teach students how to make their own math.

The example I gave to my friend went like this, and I typed it out in about five minutes, so forgive the loose structure:

  • Have students write a simple grade calculator. The calculator needs to tell the student what score or combination of scores need to be earned in order to reach a target grade. For example, I have a an 89% and I want an ‘A’. What grade do I need to get next or over the next few assessments?
  • Then, introduce this question, “Are all courses, grades, and the effort put into activities rewarded the same?”. The goal is to get the students to start looking at the work they do at school in degrees of importance, chance and statistics, etc. For example, how much effort should go into earning an ‘A’ for an elective vs earning an ‘A’ for a core IB course? In fact, does my class grade even matter that much compared to my overall IB score?
  • Students then revise their work adding more variables and creating metrics to measure aspects of their academic life. They are creating new metrics. They are learning to assign value to things, in a way that is meaningful to them.
  • This activity is automatically differentiated. Standard level students in standard level math courses will use different approaches than higher level students. Students who are strong in economics or business, but weak in math, will approach the problem from completely different level as well.
  • The assessment is not that difficult. There are always standard IBCS specific benchmarks that need to be considered. They can form 30%-50% of the assessment plan. The remaining percentage could involve creativity, real-world application, ability to reproduce results, etc.
  • Students can do this individually at first, and then in teams to refine their solutions. This is an excellent way to simulate the type of collaboration that happens when people decide to make something new. The team will have to compromise, probably choose a leader, etc. Some will fail. Few will actually succeed. Who said IBCS class cannot be the starting point for entrepreneurship?

Encouraging the use of tools and problem solving is great, but unless students can see beyond language constructs, they are not going to ever get away from programming for the sake of programming. Programming is a tool. Excellent programmers are creative and inventive. Unless those last two concepts are nurtured through planning students will never realize their potential. Also, this keeps IBCS from being boring.

If you want some ideas for programming projects for grades 3-12, send me an e-mail: tony.deprato@gmail.com

Office 365 for Education, What You Need to Know and Don’t Want to Hear

sharepoint-developer-houston

I have been using various versions of Microsoft education solutions since 2007. I am also quiet adept at developing online Sharepoint solutions for business processes, writing custom scripts to make accessing Microsoft resources easier, and by-passing much of the fake resources and security Microsoft has to offer. In addition, I have been using Google Apps since they were first introduced, mostly because I needed to work and the Microsoft made it difficult to do anything aside from typing a memo 1990’s style. My Google experience extends to setting-up Google Apps for education on three occasions, writing custom app functions, working with multiple domain configurations, and even developing a bulk upload/download process to Google Drive.

I am working in China now, and the school does not have a campus wide VPN. Therefore our only affordable cloud solution is Office 365. Our current implementation has gained praise from the corporate giant itself, and soon I can share an article by Microsoft about what we have been doing and how we have been doing it.

However, the fact is Office 365 still has a very long way to go. If I had the option, I would still choose Google, and I would push hard for Chrome books for the younger students. Microsoft still is lacking in developing mature products that are truly online. They have new licensing, which is a huge step forward, but they are limiting the options to certain regions. This can be seen in the USA where students can easily get desktop software for free, but in China we have to make special arrangements to get these same features.

For those schools or districts who feel that you have some magic plan with Microsoft, believe me you do not. Anyone can access deals with enough users, and desktop software in 2015 should not be a motivating force for increasing student resources.

OneDrive for Business is better than it was last year, but still years behind Google Drive. It is very fast, and my tests have shown it to be faster than Dropbox or Google Drive. However, the desktop clients which are needed to do bulk work are rough around the edges. They do work, and on Mac OS X now as well, but if you are a Google Drive user you always feel like you are in someone’s beta test instead of a finished product.

The mobile Office 365 clients are pretty good. One shining example is OneNote. I really like OneNote, and I am starting to prefer it to Evernote. This is going to be a new key application we use with students in the next semester. It works great, and on iPad has some nice features for handwriting. What is funny is that OneNote is more flexible than Word and has features you would expect in a truly collaborative environment, yet, many decision makers are obsessed with giving everyone Word. I guess they love the useful WordArt and ClipArt.

The most powerful product in Office 365 for Education is Sharepoint. I find most schools barely or rarely use it. The fact is that it is more powerful than any Google Apps for Education resource. I would wager that you would need to buy many additional Google Apps features to match even 50% of the Sharepoint features. Unfortunately, non-developers and those who see the bare-bones implementation of Sharepoint, hate it.

People hate Sharepoint for a variety of reasons. Here are a few I often here:

  1. It looks bad and has an old design.
  2. The mobile compatibility is bad.
  3. The logic for linking things around is weird and does not seem to work well.
  4. The menus don’t make sense.
  5. The terminology of what a “thing” is does not make sense.
  6. It only works well in Windows.
  7. There seem to be features I cannot access.
  8. There is no public page for people who are not part of the organisation.
  9. Speed.
  10. It is seems like a pure business product.

Out of the box, all of these things are true, yet, they are also not true. Sharepoint is designed to be developed, not started and driven around like a golf cart. It is a set of tools that require a development environment and an implementation plan. Sharepoint is not something you use by random clicking, which is how many people seem to do things. It requires intent and purpose to be useful. From it’s core it is based-on your organisational needs, and not the needs of the outside world. The apps you can add to Sharepoint are not for entertainment. They are for getting work done and creating levels of accountability.

I have a love hate relationship with Sharepoint. When I finally deploy something, I find it works well and requires very little maintenance. While creating solutions in Sharepoint Developer, I find myself constantly frustrated at some of the features that a normal development kit would have sorted out properly.

People who end-up being Sharepoint power-users tend to like it. They learn to access and use data in different ways, and automate processes that are quiet difficult to manage on paper or even with sophisticated online forms.

If integrated properly into a normal content management system (Drupal, WordPress, etc.), Sharepoint solutions work well for normal end-users, and the security is handled without any additional work. But, it needs to be integrated, you do not want the average person to ever navigate Sharepoint.

Sharepoint has an up-sell for storage space which is annoying. OneDrive has a terabyte of space per user, but it is missing many features (unless you can find the secret menus). If Sharepoint had 100GB of space allotted per organisational user license, then it would actually be a better solution than OneDrive for most people, especially if the storage was flexible and assignable.

If you are using Office 365 for Education, and you are not using Sharepoint at all, then you are missing out on many powerful tools. To get started you need to setup a development environment and then do a few courses. Here are my recommendations for the development environment and what courses should be the initial focus:

Development Environment

  • iMac or large screen Apple Laptop with Virtualbox/VMware Fusion and a licensed 64 Bit version of Windows 7. A minimum 8 GB of RAM with 4 GB assigned to the virtual machine.
  • Office installed from the Office 365 online store. This allows all users to install Office on 5 devices.
  • IE 11 or higher in the Windows 7 Environment.
  • Notepad ++ for the Windows 7 Environment.
  • Turn off all Windows security, and firewalls.
  • Install Sharepoint Designer from the Office 365 online store.
  • Update Windows 7.
  • Backup the virtual machine to a secure area on the Mac or on an external drive. If Windows gets infected or too slow, trash the virtual machine and use the copy you have made.
  • MAMP for OS X to work on things like HTML,CSS, and Javascript. It is easier to experiment this way, before working in Sharepoint Designer or the online Sharepoint design interfaces.

Training Modules and Courses

  • Introduction to Sharepoint
  • Editing Pages
  • Sharepoint Lists and Columns
  • Web-parts and App-parts.
  • Security and Permissions with Groups
  • Introduction to Sharepoint Designer
  • Introduction to Infopath
  • Making Item Workflows in Sharepoint Designer
  • Importing data into Sharepoint
  • Using Excel spreadsheets in Sharepoint Lists
  • Understanding Calculated Columns

Tony DePrato

www.tonydeprato.com

A Time to Stop and Think About : STEM, Programming, & Feynman

STEM-logo

In a single day, three pieces of media influenced me to write a post. This is one of those times when I hope people involved in curriculum planning and long-term education planning read IT Babble. Of all the things I have written this year, this one is the most important.

First, I read a post on Slashdot, Coding Bootcamps Already 1/8th the Size of CS Undergraduates. This is talking about crash courses in programming and how they are going to be producing more programmers than university programs.

Second, I watched the movie The Challenger Disaster. I should have known all about this, and was upset with myself for not knowing. The movie highlights Dr. Richard Feynman’s methods for determining the cause of the accident in the face of a huge bureaucracy.

Finally, I read an article by Deborah K. Fitzgerald- At MIT, the humanities are just as important as STEM. This quote from the article will sum it nicely, and hopefully stick with anyone who reads it: ..”the world’s problems are never tidily confined to the laboratory or spreadsheet. From climate change to poverty to disease, the challenges of our age are unwaveringly human in nature and scale, and engineering and science issues are always embedded in broader human realities…

I think everyone needs to take a breathe and step back. I am concerned that art, music, literature, philosophy, the study of language, etc. are being considered insignificant to computer programming and other STEM subjects. The STEM term has grown from a buzz word, to business model. It is being marketed by non-profits, publishers of textbooks, and online services for schools. It is being driven into the public eye by a media frenzy. This is simply a huge mistake.

Science and technology education opportunities should be developed in all levels of education, and they should be kept current. But the people who choose to follow a science or technology career need to be connected to the world in order to understand the problems before they propose solutions. Human beings tend to connect to the world through religion and philosophy, art, music, media of varying types, and of course writing and publishing.

Many STEM projects are pushing computer programming, but I do not think anyone is paying attention to what type of programming students are learning. There is a huge trend going-on right now. Students are being directed to build apps and make webpages that do something entertaining. App building is creative, but it is done with code that is already part of someone else’s design. It is regulated by companies. It is not truly original thought, nor is the process of developing a world of app builders going to benefit the future of science and technology. It is only going to benefit a handful of people enjoying short-term profits.

Teaching kids to make apps or webpages is not the type of curriculum that drives the universal benefits that are derived from studying programming. Programming can be studied as a topic, but it should not be seen as something the masses need to master.Not everyone can be a programmer, nor should they. Programming should be part of a project, such as in robotics, but it does not have to be the whole project or topic. Programming is a tool, and knowing that it is a tool means that other skills are required to make it truly effective. Students must learn these other skills as well.

What education needs to do is reach back in-time and refocus on what is important. The world needs professionals who can use tools and teach themselves new tools as they evolve. Society needs as many people as possible who are aware they need to be responsible to be equipped in the same way every carpenter knows they need a t-square. Doctors, Engineers, Artists, Teachers, and other professions must understand more than the single dimension in front of them in order to face unknown problems or problems that violate known theories.

Using canned curriculum and programming libraries   ,and calling those things new and innovative, is sending the message that applying knowledge is limited to what is being provided and what already exists. Having a society of people focused only on what already exists, is not going to solve the next Challenger Disaster, raise a Russian sub-marine from impossible depths, create the equivalent to a supercomputer in a garage, revolutionise the way films are created, save millions of people from evil regimes, or improve infant mortality rates by 100s of percentage points.

All of those things were achieved by teams of people from varying backgrounds who did not have Google and who did not have tools given to them. They were achieved because there was a problem, and everyone involved simply believed that they could solve the problem, and if needed, create the tools.

Unless STEM curricula are designed to put a few students in a room with a box, and help them learn to turn that box into something better than a box, then those curricula will fail. Unfortunately, when they fail the world will know about it 10-15 years too late.

Students need learning opportunities in as many subjects as can be afforded. Humanity does not know enough about how our individual mind goes from seeing a glass of ice, and then deriving the inspiration to solve a problem that has hundreds of engineers at NASA confused. Because we do not know, we should not assume that the things we are removing from curricula are insignificant. We should only assume that we need to keep questioning and keep searching. We need different types of people doing that questioning and searching, because obviously we are doing it wrong.

Perplexing the future is.

Tony DePrato

www.tonydeprato.com

 

 

Schedules, Scheduling, and Scheduling Software Don’t Make Sense

I have spent the last few weeks implementing a new school management system. I will not mention the system by name but it is very popular among schools and it is considered extensive in features.

As I was working through the scheduling features, I began to compare them to the previous system I had to administer. I realized quickly that these systems are setup to be mostly manual. The scheduling logic and algorithms are very simple. Why do I say that? Because in a world where people are programming and producing Skyrim, Minecraft, Military Logistics software, Auto-tuning software, Mars rovers, and landing Jade Rabbits on the moon – we should be able to make the scheduling of classes at a K-12 school artificially intelligent and visual.

Imagine if scheduling were more like one of those shifting puzzles. You would start with blocks of classes or groups of students, and you would move them around until they fit into your constraints. We should be able to gamify the process. After all we know how many items are involved, how long each of those items needs to be used, and when those items have expired and need to be leveled-up or removed.

Instead we approach scheduling in such a way that all classes and blocks for classes are seen as the same thing. They have to be defined individually by a person. Sometimes they can be grouped and some rules can be applied, but for the most part, it is an inflexible hardcoded system.

The problem is not money either. The revenue that is generated by 10 schools would be enough to hire 2-3  developers to fix the problems found in nearly all the scheduling software that schools use. The problem is that schools seem  to let the tail wag the dog. I think, and maybe I am being paranoid, that school administrators like having nice even blocks more than educational objectives. I think they like to say, “We only have 45 minutes for Art because we have to have 45 minutes of Math right after Art, and we have to then have 45 minutes of something else.”

Looking at K-12 scheduling in terms of Monday to Friday time slots or even blocks of time is a mistake. We need to look at the numbers of hours required for the average student to master concepts, and what concepts should logically come before others. Then look at the time available in the year and make a plan.

But then the unspeakable will happen. Some students will finish early, and they will have NOTHING TO DO! That is not my paranoia, that is what I hear often when speaking to people about scheduling and time usage.

There are models all over the world where students manage their own time in greater amounts as they get older. I think that is called life or growing-up or something. All I know is a change needs to come, and I am tempted, very tempted, to kickstart it.

 Tony DePrato

www.tonydeprato.com

Scratch 2.0 – Coming your way THURSDAY!

wpid-spam10-2013-05-6-08-34.png

Howdy folks! Long time users of Scratch (the intro to computing program from MIT) has been stuck on version 1.4 for a long time now. Scratch is easy enough for elementary students (third maybe even second grade) can use it, but it is powerful enough that high school students and people in higher education can find uses as well.

Lately, there has been quite a bit of news concerning the latest version of Scratch scheduled to become available this Thursday, May 9th, but there are some things that you need to know about it before you dive in.

The biggest thing I am excited about is the fact that it is now browser based. which means no need for people at schools to download and install. They can just go to website, log in and get programming.

Here are some cool features that you can find in Scratch 2.0. It looks very exciting.