Wednesday, December 30, 2015

Code in Different Languages

The other day I found an older blog post by Rob Underwood called Code Syntax Compared. In it he wrote a very simple program in 5 different languages. He used Python, Ruby, JavaScript, PHP and Java. No .NET languages. So since I was interested I wrote samples of the same program in C# and Visual Basic. Hey why not.

The most interesting thing to me is the typing. That is to say that some of the languages that Rob used are dynamic type languages while Java, C# and Visual Basic are statically typed languages. Which is better? Well like so many things in computer science – it depends. There is a good paper (the link is to a PDF)  on the topic - Static Typing Where Possible, Dynamic Typing When Needed: The End of the Cold War Between Programming Languages by Erik Meijer and Peter Drayton.

Anyway, if you are curious my samples are below:

C# example

image

Visual Basic Example

image

Tuesday, December 29, 2015

Top Posts from 2015

I decided it was time to take a look at my most read posts from the last year. This is an interesting exercise for several reasons. One is the inconsistency of statistics. I have two sources (Google Analytics and Blogger’s native statistics) there is not as much similarity as you would expect. Certainly not as much as I’d like. Another reason is that most of the most  widely read posts were not posted originally in 2015.  Search engine traffic brings a majority of my readers. But for good or for ill, accurate or not, here is what appear to be the most read posts over the last year.
Programming With Blocks  First posted three years ago but updated regularly since. A lot vof people seem interested in this topic.
Recursion – Love it or hate it? Posted this year back in February.  I guess I am not the only one who struggles with this topic.
Interview Questions for Computer Science Teachers A surprise. I wrote this list in March, with input from many people, after I saw that people were searching for related questions.
How NOT To Tell If Someone Is Cut Out For Computer Science This was a reaction to something I read online. In it I try to address some stereotypes about who is and is not cut out for computer science.
Lecture, Demo, Project From April of 2013, this post talks about my teaching style. I’ve no idea why search engines bring so many people to it.
Resources For Teaching Binary Numbers Also from April 2013 though I have updated it several times. And always looking for new resources if you know of any. Lots more people seem to be teaching this topic lately. It’s one of my favorites.
Programming Languages for Middle School From December 2013 (I must have been on a roll in 2013) this is another topic that has had a lot of interest this year. I’d love for some current middle school CS teachers to make suggestions for updates.
Robots For Teaching Programming Another list post that is updated as I found new resources. Good stuff for people who would rather move atoms than pixels.
Computer (and Math) Humor From May 2013. The link here is actually to a new version I posted yesterday that has a lot more images.
Your GPA Doesn’t Mean Anything Useful Really some thoughts on grades and what they are and are not good for.
The first three on this list have the really large numbers along with the base address (http://blog.acthompson.net ) I expect them to continue to attract search engine traffic. I’ll try to create some new posts that add value during the coming year though. Thanks for reading.

Monday, December 28, 2015

Computer (and Math) Humor

Two Kinds

I like this one in part because it is subtle. There are two basic standards for opening the curly brace in C-type languages.  Not everyone will pick up on it. Is it important which way you do it? Actually no. It may not even be important if you stick to it. But some people really do insist that their way is the one true way and that everything else is wrong.

Of course there is also the group of people who think that curly braces and semi colons are crutches for compiler developers and that real programming languages don't need them.

lol_programming

I’ve seen this time and again. OK perhaps even felt the same way. When nothing seems to be working programming can be frustrating and even something to hate. But lots of us persist. And when it works it just feels so good.

pi

OK it’s math not computer science. But is sure is fun.

afraid to compile_thumb[1]

I use VB_thumb[1]bugs gone bugs up_thumb[1]difficult_thumb[2]Programming a book_thumb[1]semi colon_thumb[1]

Christmas humor

image_thumb3_thumbimage_thumb4_thumb[1]

This one is the for math teachers in the crowd.

Merry-math-Christmas_thumb2_thumb

Interesting Links 28 December 2015

I just realized that this will be the last interesting links post of 2015. What a year it has been. Last week I spent less time online or thinking about school and computer science than usual. School was out for me but I had many things to fill my time with. Last minute Christmas shopping and dealing with home onwership problems. And then of course the Christmas celebration which was wonderful with my 15 month old grandson. But I still have a few links to share if you are looking for things to read and learn about.
Here is an interesting topic for class discusion or a “think piece” writing assignmnet. The problem with self-driving cars: who controls the code?

There is a new version of Kodu out. I may need to try it over break   You know for the learning.

Speaking of game related programming. Garth Flint asks the question Can a non-gamer teach a game programming class? It’s a concern of mine I have as well. I am not a gamer butv many of my students are.

Congressional App Challenge submissions due Jan 15. Open to all US High School students.

New from Mark Guzdial@guzdial Book released: Learner-Centered Design of Computing Education: Research on Computing for Everyone 

The annual Scratch Conference at MIT Media Lab is coming this summer August 4-6 (proposals due February 15)

More news from the Scratch Team at MIT ‏You can now record Scratch projects by selecting "Record Project Video" in the File menu!

  Don't forget that there's still time to participate in CSTA's "I AM" Campaign! Only a few days left before we choose a winner. My picture is there. Is yours? I’m pretty sure I am ineligible to win BTW. My picture is at http://wshe.es/33o9Hy8P

Sign up now! - Stack Exchange Q&A site proposal: Computer Science Educators This could be a valuable resource if enough teachers sign up.








Friday, December 25, 2015

Merry Christsmas 2016

It’s Christmas at my home. If you are also celebrating I wish you all a very Merry Christmas.

Maligayang Pasko at Manigong Bagong Taon

Boas Festas e Feliz Ano Novo

Pozdrevlyayu s prazdnikom Rozhdestva i s Novim Godom

Joyeux Noël et Bonne Année!

Froehliche Weihnachten und ein glückliches Neues Jahr!

Kellemes Karacsonyiunnepeket & Boldog Új Évet

كريسمس مبارك

Selamat Hari Natal

Linksmu Kaledu ir laimingu Nauju metu

Kung His Hsin Nien bing Chu Shen Tan

聖誕節和新年快樂

Chuc Mung Giang Sinh - Chuc Mung Tan Nien

圣诞节快乐,预祝新年快乐

Vesele Vianoce a stastny Novy rok

Selamat Hari Natal dan Tahun Baru

Feliz Navidad y Próspero Año Nuevo

God Jul og Godt Nyttår

If I missed anyone's language or got it wrong I apologize. I hope you all have a great day on December 25th whether or not you celebrate the birth of Christ in your own tradition or religion. And my strong wishes that you will all have a happy, healthy and prosperous New Year!

Monday, December 21, 2015

Interesting Links 21 December 2015

Yea! I’m on Christmas Break. Most of the public schools in my area start their winter break after Wednesday. I’ll be spending some of my free time getting ready for the spring semester. All my classes this year are single semester so I’ve got a chance to make things better for the next group. Plus, I hope to spend some quality time with my grandson.

Part of preparation is visiting some of the resources I have collected this semester. Speaking of resources, here are this week’s interesting links.

Should schools count coding as math? This keeps coming up. What do you think?

The Importance of Computer Games Development in the Computing Curriculum in Schools interesting article  by David Renton  @drenton72

Massachusetts Board of Elementary &Secondary Education Draft Digital Literacy and Computer Science Standards (DL&CS) are available for review. Have you looked at them? What do you think?

Untangling the Tale of Ada Lovelace – A very good read about Ada Lovelace written by Stephen Wolfram Founder & CEO of Wolfram Research Creator of Mathematica, Wolfram|Alpha & the Wolfram Language

The Big, Big Computer Science Gender Gap article on the CSTA Blog.

I hope you saw these announcements on my blog last week:






Friday, December 18, 2015

2015-16 ACM/CSTA Cutler Bell prize closing soon

There is still time to encourage your students to apply for the 2015-16 ACM/CSTA Cutler Bell prize!  This $10,000 award will go to four graduating high school seniors who show exceptional creativity and innovation in creating computing artifacts.

Eligible applicants for the award must be graduating high school seniors residing and attending school in the US. Challenges for the award will focus on developing an artifact that engages modern computing technology and computer science. Judges will look for submissions that demonstrate ingenuity, complexity, relevance, originality, and a desire to further computer science as a discipline.
The application is available now but will close on January 1, 2016. The inaugural awards will be announced in February of 2016 and the winners will be celebrated at a banquet in March in Seattle, Washington.


Please share this exciting announcement with your fellow teachers and your students, and Good Luck!

Thursday, December 17, 2015

2016 CSTA Annual Conference

Making Waves with CSTA!

2016 CSTA Annual Conference  |  July 10-12, 2016
Town and Country Resort & Convention Center
San Diego, California
Registration  is now open for the CSTA annual conference! CSTA 2016 is a professional development opportunity for computer science and information technology educators working in, or within the K-12 arena who need practical, classroom-focused information to help them prepare their students for the future. Conference content is peer reviewed and peer or industry led, making it relevant to today's classroom needs. This year we are staying true to "making waves with CSTA" so we have expanded our conference to span three days, with two days worth of workshops, more industry-specific sessions, more exhibitors, along with multiple networking opportunities.

Highlights:
  • Explore issues and trends relating directly to your classroom
  • Learn, network, and interact
  • Choose from various workshops and breakout sessions
  • Amazing value (complimentary conference Wi-Fi, networking events, hands-on activities, lunch, etc.) 
Some of this year's session topics include:
  • Advanced Placement Computer Science
  • Computational Thinking
  • K-8 topics
  • Programming
  • Robotics
  • STEM
Keynotes:

Our morning keynote will be moderated by Gary Beach (Publisher Emeritus, CIO Magazine) with a unique CIO panel joining him. Our afternoon keynote will be announced at a later date.

Pre-registration is required and will be accepted for the first 500 teachers. The registration deadline is June 16, 2016Also, please note that you must complete the payment portion of the online form in order to be fully registered for the conference!

The 2016 CSTA Annual Conference is made possible by the generous support of Google, Microsoft, and Oracle Academy. We thank our sponsors for their generous donations. Your registration fee will include networking opportunities, activities, lunch, and resource materials. 

Costs:
  • Early bird registration: $125 for 1.5 days (December 14-April 1
  • Conference registration: $175 for 1.5 days (April 2-June 16)
  • Workshops: $100 for the first one, $50 for each additional (three max, and must be scheduled for in advance as there is NO ONSITE registration for workshops)
  • Onsite registration: $225 for Tuesday only
  • Onsite registration: $250 for 1.5 days  
Workshops are a separate price, and this year we have expanded our offerings to include options on Sunday, as well as Monday. The price is $100 for the first workshop, and $50 for each additional workshop (maximum number of three).
 
Please note that all workshops are BYOD (bring your own device) and that workshop registration is limited to 30-40 participants; so be sure to register early to get your first workshop choice! As an additional reminder, due to the amount of advance preparation involved with each workshop, we are UNABLE to accept workshop registrations onsite or switch options.

Register at: www.cstaconference.org

Wednesday, December 16, 2015

CSTA Board of Directors Election Call for Applications/Nominations

It's time for elections or at least nominations for positions on the Computer Science Teachers Association board of directors. I'm in my third year on the board (and not up for reelection) so I have some ideas about what is involved in being on the board. I thought some might find that useful if they are thinking of running.
The first thing you have to know is that the board is a working board. It is not just showing up for a couple of meetings, hearing reports and nodding appreciatively or perhaps suggestions some tweaks to process. There are two face to face meetings a year. They are generally each two-day meetings. One is held in conjunction with the CSTA Annual Conference. The other, held in November, is held at a fairly central location. I've attended meetings in Arizona the last three meetings. Turns out that is the off season and expenses are kept low that way. There is also a full board meeting via teleconference in the winter.
All members on the board are on several committees which conduct business throughout the year via teleconference, email, and cloud based shared documents. For example the Equity committee runs an annually competition. This involves creating the contest, designing the rules, judging the entries and picking winners. Even with staff help (CSTA has a small but amazing staff) this means real work for committee members. Other committees have their own projects. The nominations and elections committee will be working on collecting and evaluating nominations over the next few weeks and months.
It is rewarding work though. The board is very collegial and people tend to work well together. And of course we are all committed to the mission of the CSTA. If you feel like this is a project you want to take on give serious thought to running.

The following CSTA Director positions will be vacated on June 30, 2016. We encourage interested CSTA members to apply or to encourage other qualified members to submit an application. Late nominations will not be accepted. 

The CSTA Board is a working Board. All Directors are required to attend two face-to-face Board meetings per year (including the combined Board Meeting and CSTA Conference on July 7-12, 2016) and are expected to contribute meaningfully by participating on at least two committees. 

Vacancies: 

9-12 Representative: A classroom teacher who is currently teaching computer science at the high school level.

At-Large Representative: An educator with responsibilities for K-12 CS education.

International Representative: An international (outside the United States) classroom teacher who is currently teaching or promoting computer science at the pre collegiate level.

State Department Representative: An educator or administrator who reports to a state department of education and oversees, in some capacity, computer science education.

University Faculty Representative: A faculty member from a university computing department offering graduate degrees in computer science.

CSTA is dedicated to promoting diversity in K-12 computer science education as well as on its Board. We strongly encourage all qualified individuals to apply. The Nominations and Elections Committee of the CSTA Board will select the two best-qualified applicants in each position for inclusion on the ballot. 

Nominations deadline: January 31, 2016. 

How to submit your application: 

1. Download the 2016 CSTA Nominations Form from the CSTA website at:

2. Complete the nominations form.
The form includes the following information: 
  • Position for which you are applying
  • Your name
  • Address
  • School or employer
  • Current title/Role
  • Email address
  • Phone number
  • Personal statement that explains your motivation, and why you are a strong candidate (limited to 130 words). 
  • Answers to the following four questions (no more than 100 words each): 
    • What experiences and/or interests in K-12 computer science/information technology education qualify you to serve as a leader for the organization?
    • What previous experience do you have with CSTA?
    • What leadership skills do you have that would enrich the Board and the organization? 
    • What do you think are the most important issues fir K-12 computer science education?
3. Submit the completed Nominations Form and your current résumé of experience to the Elections Committee by emailing them to nominations@csta-hq.org. The documents may be submitted in Microsoft Word or PDF format; PDF is preferred. 

Each candidate's personal statement and answers to the four questions will be posted on the CSTA website and included on the ballot. Statements will be truncated at the word-count limit if necessary. The candidate's résumé will not be made public. 

Ballot distribution: The election will take place online, beginning February 22, 2016. All CSTA members in good standing will be eligible to vote.

Voting deadline: The election will close March 22, 2016. 

Election results: Results will be posted by April 1, 2016.

Please send election related questions to: 
Nominations and Elections Committee Chair, nominations@csta-hq.org 

Monday, December 14, 2015

Interesting Links 14 December 2015

I’m late this week. Windows Live Writer’s connection to Blogger (where this blog is hosted) is broken. Now that it is being open sources as Open Live Writer I am hopeful all will be fixed soon. In the meantime I have to use the built in editor on the web (and manually upload images) so that slows me down. Plus I had a real life this weekend. :-)

Many of this week’s links are related to Computer Science Education week. BTW Twitter posted a custom icon for all Tweets using the #HourOfCode hash code.

Happy 200th birthday to the remarkable Ada Lovelace, a Victorian pioneer of computing

And of course it was Grace Hopper’s birthday last week as well.


US Secretary of Education @JohnKingatED talks to students about the importance of computer science.

A Tale of Two Coding Programs a reminder of the struggles. 

Why do students love Computer Science? Head to the Microsoft New England blog and they'll tell you!


Oakland joins almost 100 other US cities to add computer science to curriculum together with http://Code.org

Every Student Succeeds Act: CS defined as part of well-rounded education. What it means is that the same sort of support as is available for subjects like math and English will also be available for Computer Science. 

Tim Cook (CEO of Apple) crashes coding party, calls for fundamental changes in education.Cook said that he wants “to see coding be a required course like social studies, English, and mathematics in every public school curriculum.”

Why the Hour of Code Is Right for Your Students  with quotes from me :-)

Computer science is finally getting some well-deserved respect by Doug Bergman, Computer Science Chair, Porter Gaud School

Key Messages of Computer Science Education http://www.huffingtonpost.com/pat-yongpradit/key-messages-of-computer-_b_8742250.html by Pat Yongpradit the Chief Education Officer at Code.org.
 
Ria Galanosupdated her @Twitter assignment. Check it out at https://www.dropbox.com/sh/o0fvuw9hovm2m8c/AACvoL3Mf7C1MxUuNICcoQ54a?dl=0

Google for Education Blog: CS Education Week is All About Making a Difference Some of the history of Computer Science Education Week from Chris Stephenson who has been involved since the beginning.

Google for Education: Supporting the development of excellent computer science teachers globally Grants for professional development programs. Mostly of interest to universities who want to support secondary school CS teachers.  Google’s Computer Science for High School (CS4HS) award program opens applications for the 2016 year.

Play With Apple's Open Source Programming Language In Your Browser With IBM Swift Sandbox (via @LifehackerAU) I hear a lot of good things about Swift. I may have to try it out.






Friday, December 11, 2015

Do You Have Any Duct Tape?

Students this morning were asking people for duct tape. I don’t know what problem they were trying to solve but eventually it was solved with a plastic cup. Really. But it got me thinking about how students ask for help in programming projects. What seems to happen a lot is that they come up with a solution, some action they want the computer will do, that will solve their problem. This leads them to ask how to implement that action rather than how to solve their real problem. The problem for them and for me as a teacher is that the “solution” they have come up with may not be the best or even a good solution.
This can often lead to frustration in the long run as students try to make some feature of a language or library do things it was not really intended to do. I’ve learned to ask “what problem are you trying to solve?” Students sometimes have trouble explaining that as well. So my asking them often helps (or forces) them to think a bit more deeply about their ideas. Once they do that and understand both what they want to do and what the feature they are asking about does they see that they need something different. Or even see how to use a feature more correctly.
In many ways I see teaching programming as pointing students in a direction and getting out of the way. It sounds easy and in some ways it is. At least it is easier than trying to cover everything they could possibly need to know in lectures (which bore everyone). On the other hand it involves dialogue between teacher and student so that there is mutual understanding. I think that this helps students a lot though. They learn to think things out in more detail and learn how to communicate their ideas better. And of course it avoids some (though never all) of the “wrong” directions students run down in their hurry to get things done.
There is value in the “wrong” directions as well. But when you have a limit3ed time to work with students and grades must be given (yuck) and you want to keep enthusiasm high providing some good direction is pretty important.

Wednesday, December 09, 2015

Technology Changed How I Read

This week I have been reading an old-fashioned paper book. (The Martian – outstanding read) For the last two years most of my reading has been on my Kindle. I love my Kindle. I didn’t realize quite how much it changed things for me until I started reading the “dead tree” book though.

There are a couple of game changers for me in the Kindle. One is the obvious fact that if I read a book that is part of a series and I like it I can order the rest of the books and start reading them right away. A more subtle change though is that the Kindle has a dictionary.

If I run into a word I don’t know, which happens more than I like to admit, I can highlight the work and the dictionary will tell me what it means.

This feature doesn’t seem to exist in paper books. Yes, I find myself wanting to press on a word on the paper to see definitions but it doesn’t work. Silly I know but one gets used to things.

I remember as a child reading encyclopedias which were also paper back them. I would see references to other articles and in a few hours I would have a stack of books as I followed links from one article and book to another. I could do that because my mother worked hard selling encyclopedias so that we could have a set at home. Not every child was so lucky. Today of course we have the world wide web and following links is easy and doesn’t require stacks of books. It’s wonderful for the curious.

I wonder what things will be like when my grandson is my age. Will he just ask the computer for more information and say “tell me more?” Will he virtually walk though virtual corridors looking at virtual things? Or will it be something else again?

Tuesday, December 08, 2015

PBS KIDS ScratchJr.

Scratch Jr and PBS are both well known entities in education for younger children. It’s probably not surprising that the two have partnered up . Just in time for CS Education Week PBS announced its first coding app called PBS KIDS ScratchJr. From the announcement:

Today, PBS KIDS launched PBS KIDS ScratchJr, a free app developed in collaboration with the MIT Media Lab and Tufts University’s Developmental Technologies Research Group. Available now on iPad and Android tablets, PBS KIDS ScratchJr helps children ages 5-8 learn core coding concepts as they create their own interactive stories and games using PBS KIDS characters. PBS KIDS ScratchJr incorporates PBS KIDS media properties, including WILD KRATTS, WORDGIRL, PEG + CAT and the new series NATURE CAT. As kids snap together colorful programming blocks to make their favorite characters move, jump, dance and sing, they will learn to solve problems, design projects and express themselves creatively.

PBS KIDS ScratchJr Features

  • Colorful Programming Blocks: Snap together the color-coded programming blocks to create sequences of actions that cause characters to animate and interact in fun and exciting ways.
  • PBS KIDS Characters and Backgrounds: Create projects based on PBS KIDS shows and mix-and-match over 150 characters.
  • Paint Editing: Create unique characters and backgrounds.
  • Voice Recording: Use the recording tool to add sounds and give voice to projects.
  • Story Starters: Find inspiration with in-app story starters! Each Story Starter features a different set of characters and is designed to encourage children to edit and complete the story however they’d like.


The app is free, and can be downloaded on the
App Store and Google Play.

image

Monday, December 07, 2015

Interesting Links 7 December 2015

The calendar years is coming to a close. I have 10 days of school (including today) until my school’s Christmas break. I’m looking forward to it. I hope to find some time to play with my new Raspberry Pis. I have a link about that this week. Also some geeky computer science humor (you have to read to the bottom for that) But least I forget this is Computer Science Education week. Lots around that. So let’s get to the links.

Don’t miss the CSEdWeek: Message from CSTA’s Executive Director

NSF is gearing up for CSEdWeek. Here are some things you can do to celebrate computer science in your community!

Embedded image permalink

Tips for introducing computing   from @CSTeachingTips Read this before #CSEdWeek and #HourOfCode

Computer Science Education week photo contest  

On December 7-13, celebrate Computer Science Education Week 2015 with the CS10K Community by sharing how your students are innovating. Whether they’re using a new programming language or working together to create a robot, show the world what they can do for a chance to win great prizes for your classroom.

image

Exciting Hour of Code experiences from our friends by Kiki Prottsman, Edu Program Manager at http://Code.org

My Hour of Code 2015 Collection by Doug Peterson

Which is better, Arduino or Raspberry Pi? Make Magazine has a super-simplistic answer: 

Embedded image permalink

I added Added Harvey Taylor’s blog  to my computer science education blog roll Check out the post that lead me to discovering it. Getting into Computational thinking with Noughts and Crosses (Tic Tac Toe)

Computer Science Education Stands to Benefit from ESEA Reauthorization – good news in the law that is replacing No Child Left Behind.

My blog list of  Robots For Teaching Programming has been updated with Thymio

On the Computer Science Teachers Association Advocate blog -- "A review of Google's Exploring Computational Thinking Resources"

A pair of posts that speak to each other are worth reading:

Jokes I had to explain to my students:

imageimage

Saturday, December 05, 2015

Studio K for Kodu

I first wrote about Project K several years ago when it first came out. That was in my old Microsoft blog which I no longer have access to change. Recently I was contacted by the Project K team who told me about new links for their curriculum materials. They worked with the Kodu team at the very beginning and have years of experience teaching with Kodu at this point. So it seemed like a good idea to write about it again with updated links.


What is Studio K?

Studio K is a game design curriculum, online community, and set of teacher-support tools intended to enable teachers to help learners make their own video games using Microsoft Kodu. Kodu is a powerful 3D game design and programming tool that enables users to focus on creating compelling games for their friends.

Learn more at:http://www.gameslearningsociety.org/studiok/

Friday, December 04, 2015

Thymio–An interesting Looking Robot for Teaching

New things for teaching seem to appear every week. Sometimes they are around for a while before I find out about them. Apparently the world of computer science education does not revolve around me. :-) In any case I recently learned about the Thymio II robot. It’s a bit pricy at around $199 but it seems to have a lot of nice features including sensors and actuators. So I think it can serve as the basis for some complicated projects if that is a goal.
image ThymioTechykids.com is a robot developed in Europe for educational purposes. It provides three main features:
  • a large number of sensors and actuators,
  • an educative interactivity based on light and touch,
  • a programming environment featuring graphical and text programming.
They have a US distributor called TechyKids who also have curriculum.. It is run by a teacher who uses these robots in her classroom.
This is the latest entry to my list of Robots For Teaching Programming which I update as I learn of new robots. Let me know if I am missing any that I should list.

Wednesday, December 02, 2015

Students are Creative and that is a Good Thing

I love the creativity of students. We worked on a whack a mole game in class today. The purpose was to create a user control but of course students want to do more. Or at least different. Clearly the images I provided are too boring for most.

Several students used pictures of themselves or a friend. Others found other images to use. As you might expect at least one student went and found a picture of me. Yes, “whack Mr. Thompson.” But he was clever about at. He took a standard picture of me wearing my hat for one image. For the other he found an image of a hat much like the one I wear. When the program runs it almost looks like the hat is moving up to show the "mole" underneath.

Another student wanted to add sound. I made him look that up and figure it out for himself. I expect sound to show up in projects from a lot of students in the next few days. That may or may not be a good thing. The jury is still out on that. In any case students do a great job of teaching each other and learning from each other.

Letting students get creative really seems to help them learn. They do more and try more things. They decide to look things up and so learn how to teach themselves. That is more than worth being used in a whack a mole game.

image

Monday, November 30, 2015

Interesting Links 30 November 2015

Last week was busy on a personal level with some great family time. I even got to babysit my 14-month old grandson while everyone else when shopping. Double win. Time with the grandson and avoiding the shopping. Professionally it was quiet with only two days of school (one of which I missed with a sick day – fine now) and not much going on on the internet.

The big news for CS related education was probably the announcement of the new Raspberry Pi Zero which is already sold out. I wrote a bit of a cautionary post on that (How Much Does a $5 Computer Cost? ) last week. Sure I ordered one but I’m withholding judgment on how good it will be as an education tool.

The Raspberry Pi Foundation announced a new project book. I may have to get this. I have two Pis already and really need to find something useful to do with them. Especially with a third on the way. Can you say “oh, shinny object?”

Dawn DuPriest continues to knock out posts worth sharing. If she is not on your RSS list yet she should be.

Speaking of cautionary tales. Mark Guzdial had a post well worth reading called No Rich Child Left Behind, and Enriching the Rich: Why MOOCs are not improving education If you think MOOCs are the answer are you looking at the right problems?

Thursday, November 26, 2015

How Much Does a $5 Computer Cost?

This week the Raspberry Pi Foundation announced their new Pi Zero.  It only costs $5 in the US. Wow! Here are the specs, via the foundation:

  • Four fathers!?!??BCM2835 (same as Pi 1) but up-clocked to 1GHz, so 40 percent faster.
  • 512MB of RAM
  • micro-SD
  • mini-HDMI
  • micro-USB for data
  • micro-USB for power
  • unpopulated 40-pin GPIO connector (same pinout as A+/B+/2B)
  • size: 65mm x 30mm

Think of a class set of 20 for only $100. Sounds amazing. But let's hold on a minute. What else do I need? I wanted one (actually my wife wants one too but we'll share at least initially. So I went to Adafruit (the US outlet) and took a look. Raspberry Pi Zero is not available as an individual thing right now but can be bought with starter packs. They have two offerings:

I went with the budget pack. What does that include beyond the $5 computer?

Yeah I probably need all that. I also added a wi-fi dongle. With shipping I spent $50 which is still pretty inexpensive but it’s not $5. Of course I need a monitor and a keyboard and mouse to really do any development on it. I have some of them around but not everyone does.

So now we are talking about a class set of 20 for $1000 which is more than $100 but I can remember when one Apple IIe was $2,500 so pretty cool.

I don’t really see it as a replacement for a desktop or laptop though. At least not realistically. It’s still pretty limited in today’s world. What I would like to do is use it or something like it for learning about the Internet of Things. Add some sensors, some controllers of some sort, and have some of these for a Maker Space and who knows what will happen. There is potential there. I can’t wait to get mine and start playing.

Monday, November 23, 2015

Interesting Links 23 November 2015

clip_image002Microsoft Underground Part 1 – Dawn DuPriest is a middle school math and computer science teacher who was invited to Microsoft headquarters with some other teachers for a multi-day event – workshop and “underground tour”. This post is a trip report of sorts about what she saw and learned. Wish I could have been there.

Minecraft vs Project Spark vs Kodu Game Lab a teacher does a side by side look at three interesting and highly graphical tools for learning programming.

Finding the best coding language for beginners (revisited) - by Bob Irving @birv2 Bob makes a good case for Python. Bob’s a bigger fan of Raspberry PI and Minecraft than I am (at least right now) but his opinions are worth reading.

Bumblebees Are Teaching Smart Cars How to Drive – a lot we can learn from nature.

The new in-browser compiler for the BBC micro:bit is live! Seems like something new in the BBS Micro:bit world every week.

Linux kernel dev Sarah Sharp quits, citing ‘brutal’ communications style via @networkworld Interesting look (from one perspective) of communication in the open source world. Meanwhile, a Google study on what makes a team successful lists “Psychological safety” as the most important quality. Some good discussion points about how communication should work.

What students and teachers really think about computer science in schools is report by @HuffPostPol about the Google funded study that the Gallup Group prepared. To the surprise of no one actually teaching computer science a lot of people have incorrect ideas about what computer science actually is. And more.

A Call to Action for Higher Education to make AP CS Principles Work a post at the blog@CACM by Mark @guzdial Mark covers some great points. For AP CS Principles to really work there have to be college/university courses that student can get credit for after passing the AP CS exam.

Friday, November 20, 2015

Finding Methods in the Madness

Beginning programmers seem to like monolithic code. Give them a task to program and they start right off. writing everything in one huge method. If you assign them to use a specific method for a specific task they will do that. And the rest of the code will be monolithic. It seems to be hard for them to design code with small modules though. At least it seems they have to be taught to do so. It doesn’t seem to come natural.

Or maybe it’s just the teacher my students suffer with.

In any case, at this point in the semester I am really pushing breaking things down into small pieces and creating methods to handle things. We really just learned about methods in any detail in this first semester programming course so I can understand it not coming natural. On the other hand, we just went into methods in depth and usually students want to use the new thing they have just learned. But not in this case.

This morning I read though all of their code so far. Yep, lots of monolithic code. I spend the first 20 minutes or so of class discussing the different projects they are working on and explaining how I would break up some of the work into individual methods. It seemed to register a bit. I think that some of them who are having trouble debugging their code, in part, because they are trying to code and test “everything” at once, will really benefit from today’s discussion. I hope so.

Clearly though as we are moving into more complicated projects I need to spend more time talking about design. I’m looking back though my plans from earlier in the semester to see where and how I can talk design long before this point.

The other thing I would like to do is design a big project that requires lots of methods. The idea would be to randomly assign the methods to different students and have a test bed that calls the methods. Students would not know whose methods would be tested with theirs in advance. That way there could be no collusion to bypass the strict specification of inputs and outputs.

My hope is that this would show students the value of methods in larger projects. It should also help them understand the importance of design, specifications, documentation and working as part of a team. I just have to figure out the right project.

Thursday, November 19, 2015

Coding For More Than an Hour

hourAman Yadav from Michigan State University made this great image from the popular meme.  I love it because for me it is so very true. I code for fun these days. Oh sure a lot of what I code is for use in class as a demo or a prototype for a project I’ll assign to students but even then I pick projects that are fun.

That means I usually code for a while once I get started. Of course for professional developers (as I was in a previous life) coding can be a many hours a day thing.

This brings me to an Hour of Code. Well not the hour itself but what comes next. I love the Hour of Code. It’s a great way to introduce students to the idea of coding, let them create something cool and maybe help them to see that they can and should learn more.

Where do these students go to learn more? Sure there are lots of online resources and even a growing number of after school programs but I think we need more courses in the regular school day. A New Federal Law Means Computer Science Is Officially Part of STEM which should help convince administrators. On the other hand there is a lot of misunderstanding about what computer science actually is. A new report funded by Google (Google-Gallup research report: Perceptions of computer science reflect and reinforce stereotypes )  finds that most parents, teachers, administrators and school boards think that using a word processor is computer science. That lowers the credibility of studies that report how many schools offer computer science!

So what to do? School boards and school administrators need some education in many cases. There are resources to help. CSTA has some advocacy tools on their website. There is a growing Computer Science Advocacy Leadership Team (CSALT) made up of CSTA members across the country who are looking for volunteers to help with advocacy in the various states. Code.Org also has resources for advocacy of computer science education. NCWIT has many resources specially focused on girls in technology.

Computer Science Education week is coming up and that is a perfect time to advocate with local influential. They’re going to be hearing a lot in the news so they are going to be thinking about it. Computer science education take more than an hour. Not just to learn but to promote.

 

Wednesday, November 18, 2015

Creative Coding Through Games and Apps

I've been looking into this lately. It looks like an interesting first course for a lot of schools.


Creative Coding Through Games and Apps is a first-semester course to introduce programming in the early secondary grades. Students learn by creating real games or apps by working in the same ways as professional programmers. Designed to attract and reach a broad range of students, including those who may have never before considered programming, this course can be successfully delivered by any teacher, regardless of computer science background, via any modern web browser on phones, tablets, laptops, or desktop computers. The course length is flexible (6, 9, 12, or 18 weeks) and offers online and in-class resources. The downloadable curriculum package provides everything you need to deliver the course, including teacher prep materials, lesson plans, presentations, student assignments, homework, projects, and tests. Best of all, it's free!

Try out the preview package. Point them to https://www.touchdevelop.com/ccga.
There they can download the freely available Preview Package that contains a course description, teacher and student guides, and sample unit materials. They will learn more about the requirements, objectives, and learning goals in the enclosed sample lesson unit with Creative Coding Through Games and Apps.

Contests for Computer Science Students and Grants for Teachers

Earth | Microsoft Imagine Cup https://www.imaginecup.com/Earth via @MSFTimagine An Imagine Cup coding competition for students between 6 and 18 years old from Microsoft.

Do you know students who are interested in creating an app? The Congressional App Challenge is now open for submissions! Entries are due by January 15, 2016. Learn more at congressionalappchallenge.us

clip_image004

Attention innovative educators! Check out these 4 free projects & apply for grants: From Allen Distinguished Educators.

DIY Grant Application period opens on Nov 3rd and closes on Dec 4th at 11:59 PM PT.

clip_image002The purpose of the DIY Grants (up to $1000) is to help us enhance the replicability of the DIY guides as well as their adaptability to a range of school types, locations, and grade levels. Toward that end we are looking for teachers who work in school environments different from those of the ADEs who created them.

Tuesday, November 17, 2015

Interesting Links 17 November 2015

Yesterday’s interesting links was all about links to educators and their blogs and resources. Today is about links from non profits and companies. Good stuff all. My UK readers will want to read the BBC MicroBit news down below.

Have you seen the Hour of Code stuff involving the new Star Wars movie from code.org?  Looks pretty good as do the new inspirational videos at that page.

EngageCSEdu offers intro CS course materials to engage diverse students. http://www.engage-csedu.org provided by NCWIT.

http://www.LeadCS.org - a website for K-12 education leaders in schools and looking to build, grow, or sustain computer science programs.

Ohbot2 - A Robot Head to program from your PC by Ohbot on @Kickstarter Anyone looking at these? What do you think about the idea?

Meet the award recipients of the first Microsoft HoloLens academic research grants  - HoloLens is Microsoft’s virtual reality system. They have given some grants to universities to create some interesting projects.

Read the latest BBC Micro:Bit information from Lee Stott in Microsoft’s UK education team.

BBC Micro:bit lessons with Touch Develop a large playlist of very short videos on the BBC Micro:Bit witl links to associated lessons.

Microsoft pilot programme to expand the reach of BBC micro:bit   Microsoft is going to buy a whole lot of extra Micro:Bits so that some lucky schools will have some very enhanced opportunities with the devices.

Monday, November 16, 2015

Interesting Links 16 November 2015

Last week was loaded with interesting things flowing from blogs, twitter, Facebook and email. When I first put this post together I realized it was so long that no one would read it all.  I decided I would break it up into sections and post one a day. Seems like if I post twice in one day one of the posts gets largely ignored. Different quality or bad timing? I’m not sure. We’ll see how this goes. I decided the first post should focus on links to teachers for teachers.

First two lessons and reflections from Dawn DuPriest

clip_image002

Computer Science Education week for Existing Programs by Rebecca Dovi – Computer Science Education week is a lot more than just an Hour of Code. If you are looking for ideas for the week for your existing CS classes, this post may be helpful.

Computer Science - Children's Reading List Books for and about computer science broken down by grade level by Rebecca Dovi of @codeVirginia She prepared it for librarians. Maybe your school librarian should take a look?

Announcing def hacks("Winter",2015) For NYC high school coders with @zamansky

What they don't learn in college - Other People's Code – an interesting project from Mike Zamansky.

   “A Different Approach to Coding” by Mitchel Resnick from MIT Media Lab and Scratch

Programming With Blocks and Drag and Drop Programming One of my most read posts has been updated with the addition of a link to Beetle Blocks a 3d programming language.

Friday, November 13, 2015

How do you terrify computer science students?

How do you terrify computer science students? Ask them to design their own project to be graded. I asked my programming students today to come up with a project involving reading and writing files for them to create and me to grade. No one liked the idea at all. No one!  Hardly anyone liked it. (I had a couple of students tell me I lied on this post because they liked the idea.) I gave in and offered them three options. At least they can pick the one they are most interested in. And I hope not to have to grade 18 identical projects.
One student expressed the problem as the fear that they would either come up with something too hard and not finish or too easy and not get a good grade. Whoa! That never occurred to me. I just wanted to give options and let them have some fun. 
I think that generally grades drive fear more than they drive learning.
The funny thing is that about half my programming students have side projects they are working on that are completely their own design. Most of these projects are taking them beyond what I am teaching in class. More complicated and involved decision structures than I would assign (at least at this part of the semester), more use of objects, methods and concepts that I have not covered in class, and generally just more of everything. But they are doing it because they want to solve problems they are interested in solving.
I wish I could run the whole course with student selected projects. Grades are one problem there. Students are so worried about grades that it gets in the way of learning and creativity. Years of schooling the creativity out of students is another problem. From the time we start demanding they color inside the lines to years of step by step instructions and cookie cutter results we provide disincentive for creativity.
Software is, many of us believe, an inherently creative practice. We want innovation and creative solutions. We want students to think outside the box and make their work interesting. Too many students have forgotten that there is anything outside of the box though. Grades are a part of the problem.
What is the purpose of learning? I think most teachers believe that learning is worth it for its own sake. Students are being socialized to believe that the purpose of learning is to get a good grade. Learn for the test! Learn it for the SAT or AP exam or other high stakes exam.
Which of the following motivations for study do you think most students would say is the one that keeps them going?
  • Get good grades so you can get into a good college and get into a good college so you can get a good job.
  • Study to learn a lot so that you can succeed in life by using the knowledge you have gained.
My students want to learn. I think most of them want to learn for the sake of learning and gaining knowledge. But most of them place that second to getting good grades. In fact sometimes I think they separate learning from grades completely. They learn for fun and get good grades because that is THE GOAL. Is it any wonder they want us to provide lines for them to color in between?

Adding Interest Via Data

One of the lessons that stuck with my from some workshops I took some years ago was that more interesting projects involved doing things that involve a lot of data. Doing something once can often be done manually more easily than writing code to do it. Doing that same thing 10,000 times on the other hand justifies writing code. For that reason I like to assign projects with lots of data.

A couple of examples.

  • To learn about string handling I sometimes assign a project to calculate license numbers from names and birthdays. I prepared a data file of 20,000 names and birthdays for that one.
  • Today I asked students to generate such a data file using a set of files IUnited States Census Bureau obtained from the US Census Bureau. It turns out that files listing popular first names (by year no less) and popular last names are available there. Students will randomly generate name combinations and birthdays.
  • The thirdProject Gutenberg choice I gave students today was to count the occurrences of individual letters in a document. Project Gutenberg has some great data for that sort of project. Mark Twain’s “A Connecticut Yankee in King Arthur's Court” has over a half a million words. Plenty of data.

There is no shortage of large data sets on the Internet these days. (take a look at Big data sets available for free sometime) Computers are great at doing interesting things with data. A little interaction with students can help to determine the sorts of information they are interested in knowing about. That helps provide motivation for them as they work on projects.

Thursday, November 12, 2015

Imagine Cup Earth–Online Competition

Back in my Microsoft days I was actively promoting the Imagine Cup competitions. Realistically, while a couple of high school teams did well, its really hard for high school students to compete with college.university students. This year there is an Imagine Cup competition just for younger students – specifically events for students 6 to 18 years of age. Imagine Cup Earth which is run with help from NASA. This one I am passing along to my own students.

Here is some of the information from the Imagine Cup Earth home page:

ic Eaarth

Imagine Cup Earth is a new contest for students ages 6-18 in which you’ll use computer programming to create a game, simulation, or story inspired by the kinds of earth science that NASA and other researchers do every day. 18 winning students will win prizes totaling $36,000! You can read the official rules here.

 

Do I need to know coding?

We have two skill level brackets so you can compete in the one that’s right for you:

Beginner: No coding experience necessary! You can learn to code with free online coding kits from Microsoft Imagine and make your first game, app, or science project in about half an hour using our free learn-to-code tools Kodu Game Lab, Microsoft Touch Develop, or Project Spark. After doing a couple of those coding kits, you should be ready to start thinking about your project for Imagine Cup Earth.

Intermediate: For this bracket, you’ll create a web app in the language of your choice such as HTML5/CSS/Javascript, or Python, or anything else. The only requirement is that it run in a web browser. You can either host your project on your own website or use our free-for-students Microsoft Azure cloud hosting service. Your web app will use real earth-science data provided by NASA to explore the role of chlorophyll and algae in our world’s oceans.