Tuesday, April 30, 2013

New Toy–Raspberry Pi

It is hard to resist a new technology toy. I’ve been hearing about the Raspberry Pi computer for some time now. A couple of weeks ago I talked to a teacher friend  who was using some to help teach computing and computer science concepts. It is an attractive idea. A very small computer yet still reasonably powerful. It doesn’t appear to run Windows (though I haven’t done an serious research on that) but does a lot with Linux. So I bought one.


I still have to get some software for it but it is pretty cool to have a computer that fits in my pocket. I’m not sure what all I’ll do with it. In the long run it depends in part on what I am doing for work after this semester. For starters though I’m going to be playing with Linux and some open source software. I need to see where Linux has come in recent years. Plus there may be some applications for this as part of some hardware projects. Smart robots anyone?

I’m also starting to look around at what others are doing with these devices in education. I’m trying to be as open minded about these sorts of things as possible. So let me know if you are or know someone doing cool things with these devices.

Monday, April 29, 2013

Interesting Links 29 April 2013

Last week was school vacation week and I was away with less than ideal Internet. I’m still not sure if that is better or worse than no Internet at all. Smile In any case I spent a lot less time on the Internet than usual. That doesn’t mean I didn’t come up with a few interesting links to share. Hope you had a good week and that you  find something of interest in this list.

Eugene Wallingford @wallingf had an interesting post Towards a course in reading code in which he gives some thoughts about what such a course might look like. It makes interesting reading on a subject that I have been interested in for a while.

As a favor for a friend I wrote a guest blog post about Changing Computer Science Teaching on Planet Promethean. It is about how new tools and other emphasis are changing how we teach computer science to get and keep student’s interest.

Latest edition of CS Bits & Bytes is here! Published by @NSF_CISE w/ Einstein Fellows. This is about how computers are helping save whales.

Young Kodu designer showcases at 2013 White House Science Fair on the  Microsoft Citizenship Blog - via @msftcitizenship The president has been having an annual science fair to help provide the sort of attention to students doing cool things that normally goes to athletes.

The legislature in Washington state passed a bill to count computer science for math, science credit. About time we had another state give graduation credit for computer science. I sure hope this spreads.

KinectChooserEx - Making Kinect Interactions even easier (Channel 9)  via @ch9

Announcing: A Platformer Game Starter Kit for Windows 8 games! Includes free game art. This is a JavaScript based game.

What we talk about when we talk about CS Great post by Laura Blankenship @lblanken

Ken Royal @kenroyal talks to Patrick Larkin and asks  Are Tablets Solutions or Problems?

Wednesday, April 24, 2013

An Embarrassment of Riches

It seems like hardly a week goes by without hearing of some new development tool, web site or online training course for the teaching of computer science to beginners. Last week there were two – Tynker and Hopscotch. Yesterday I received an email about a site from a new startup called LearnStreet that has online learning resources including a course available in JavaScript, Python or Ruby. Sometimes it seems like everyone who knows how to program has their own idea of how to teach programming “the right way.”

Many of these people have no previous experience teaching anything let alone programming and computer science. That doesn’t mean the tools are not good. It don’t mean they are great either. How do we know if a new tool is good, bad or indifferent? Generally we don’t unless we try it ourselves in our own classrooms with our own students. Risky at best. Or we can look to the early adopters who like to try out new things and listen to their stories. The CSTA Conference usually has a number of workshops or sessions on new teaching tools presented by people who use and like them. So does the SIGCSE conference.

Many of these tools have no serious research to back them up. A few teachers who use them and get good results if fine as far as it goes. But it is hard to tell how much of the success is to to the tool and how much to some combination of the teacher’s ability and the type of students they work with. Some of the academic developed tools (GreenFoot and Alice come to mind) do have some research attached to them. The results, including for many people’s favorite Alice, show mixed results though.

What’s a teacher, especially a new teacher, to do? Even an experienced teacher has to wonder “am I doing it right?” Am I using the best tool, the most effective teaching tool, available to me? Should I stop teaching the way I have been teaching which for many of us is the same as the way we learned? Probably but if so what do we take on?

There is no independent body doing the research and making impartial recommendations. Given how much computer scientists like controversy there is probably never going to be such an organization. And maybe there shouldn't be. Those sorts of organizations have the effect of stifling creativity and innovation once they become institutionalized. We could really benefit from some independent research comparing methods and tools though. REALLY!

Tuesday, April 23, 2013

Interesting Links 23 April 2013

Yes I’m a day late with this post. It’s school vacation week in New Hampshire and I’ve had other things on my mind. These things happen. I have limited Internet access this week so there may or may not be a list next week. We’ll have to see. But I do have stuff to share now so here goes.

Passed on by @intelswblog: Future Developers: Why Kids Should Learn the Basics of Code

Mike Zamansky@zamansky writes about using using real data in his computer science education classrooms:

Top Ten Ways to recruit HS girls into computing classes. New from @ncwit 

Should kids be taught to program? Join the debate!

Are you ready for the 2013 CSTA Annual Conference on July 15-16, 2013! CSTA Annual Conference Keynote Speakers Announced. This looks to be a great event.

Fun look at how the internet of things/big data comes to life on the Microsoft campus. If you’ve ever wondered about smart buildings and how information can help keep costs down this is the read for you.

What Makes Code Readable: Not What You Think via @jsonmez was an interesting read. he notes that what is good for beginners is not always as good for more experienced people. And the other way around.

Thinking outside the Xbox: Fourth-grade teacher using online avatars to facilitate learning That looks like fun!

Last week I heard about Tynker http://tynker.com which is Scratch-like but with more features. Or so I am told. I just got access to it and haven’t had a chance to try it out for myself. The Tynker team is on Twitter at  @gotynker

Friday, April 19, 2013

Hopscotch–Visual Programming for iPads

logo-large is a new programming environment for the iPad. It is heavily influenced by Scratch from MIT but has nothing like the features of Scratch. It’s only in beta and the developers are talking about making it “Turing Complete” which will make it a lot more useful than it is now. Little kids may play with it for some time but I ran out of ideas in about 5 minutes. Of course having many much more capable tools available and usable by me may be a factor there.

The main advantages of Hopscotch are that it is available on the popular iPad and that it is really optimized for touch. The only other touch enabled development I know that is optimized for mobile programming is TouchDevelop and that is a bit much for very young children. It’s not as cute and colorful as Hopscotch either.


At the present stage of development Hopscotch is a less than full featured turtle graphics program. It can be fun I’m not convinced that it is ready for prime time - school and/or after school programs to introduce programming. The potential is there and I’ll be looking to see how development does.

By the way I have a collection of other tools for Teaching Programming with block programming elsewhere.

Thursday, April 18, 2013

Google Fellowship Opportunity for Up to 20 CS Teachers

For the past 3-4 months, Google has been working on a program that focuses on diversity and CS pipeline. They will be starting up a program to increase opportunities for middle and high school students in NC, SC & GA (where they have data centers), particularly girls and underrepresented minorities, to learn programming and computer science. Google will be hiring a number of newly-credentialed STEM teachers to become Google CS Fellows for a 2-year program that will be run in one of the data centers.
Google's plan is to hire 15-20 excellent new teachers to learn the latest in CS tools and pedagogy and spread it via after-school and CS clubs throughout the south. These teachers will work through the barriers and policy issues in the local region, with the goal of scaling up over the 2 years and getting CS into the classrooms in the south. Google's hope is that these teachers become leaders in CS education through this experience, after they finish their fellowship.
You can apply for the Google CS Fellowship at:

Wednesday, April 17, 2013

Fear of Being Boring

I recently came across Shawn Cornally‘s blog titled ThinkThankThunk and noticed that the subtitle is “Dealing with the fear of being a boring teacher.” That is a fear I can relate to. To me being boring in front of students is the kiss of death. A boring teacher is usually perceived as teaching a boring subject. Why would anyone want to learn something that is boring from someone who is boring?

Passion is the first step in not being boring. If you are excited about what you are talking about or teaching it is harder (though not impossible) to be boring. That is the low bar though. You also have to know your audience and present the material in ways that is interesting to them. In computer science that means picking projects that students can relate to; that they will find interesting and not boring. that can be a struggle sometimes for someone as far away from the students ages as I am. It occurred to me that I am as much as four times the age of some of my students. Old enough to be their grandfather. Ouch!

I do try to keep in tune with students and plan projects accordingly. In fact many of them are designed with the help of the students themselves. I want them to be motivated to do the work because of interest and not just for the grade.

One can present in a boring fashion as well. I was fortunate enough to take a number of public speaking courses while I was working in industry and I try to bring what I learned there into the classroom. Boring is bad! BTW I don’t understand why teachers do not get regular public speaking courses as part of their professional development. If anything people who speak as often as teachers do need it more than people who speak infrequently because it is very easy to become stale or lazy from repetition.

It has been said that those who think education doesn’t involve entertainment don’t understand either. I think there is real truth there. It is something I worry about regularly. So to my fellow teachers I say “Let’s have fun out there and leave boring to others!”

BIG Projects

I’ve been trying some different things this year. One experiment was to assign my C# students (this is a second programming course for most of them) to modify a large project. OK maybe not large by professional standards but definitely a lot larger than students are likely to create on their own. I gave them some starter kit projects (from Microsoft) and let them find some significant open source games on their own to start with. As an example one starter kit had something around 20 code files, four projects and a whole lot of image and other resource files. I asked the students to propose and then execute real modifications to the programs.

I had a couple of goals with this. One was to get them to demonstrate what we had covered in class so far. But I also wanted them to experience reading other people’s code, figure out how to navigate though complex code bases, and find out through experimentation how to use other concepts we had not yet covered. My hope was that this would make discussing those concepts more real and perhaps more important.

One unexpected side benefit for me was that though their questions I gained some understanding of what sort of things I should be covering in more depth. This was partly in terms of programming syntax but more importantly in design considerations. Having been programming for a long time (on average ore than twice as long as any of my students have been alive {gasp} it is easy to forget what is and is not obvious to beginners.

Over all I am really pleased with how this went. Students were able to work their way through the code. Most of them spent a lot more time reading code then I think they expected. I see that as good. They all managed to make improvements on their projects. They learned how objects can make their lives much easier. Sometimes I think they don’t get that from using standard GUI objects. Since they had to use user written classes whose only documentation (available to them anyway) was the code itself they were forced to figure it out. They also had a first hand view of design considerations for large OOP programs. This makes it more obvious why OOP is a good thing than a simple (more typical student created program) that might as well be written in old style code practices.

The next step is helping really understand creating and using classes they write themselves. We’re doing our second class/object related project now and they seem to be doing well with the concepts. And I’m thinking about the bigger projects we will be working on for the next month.

Tuesday, April 16, 2013

2013 CSTA Annual Conference Keynote Speakers Announced

The Computer Science Teachers Association is proud to announce the keynotes for the 2013 CSTA Annual Conference (formerly known as the Computer Science & Information Technology (CS&IT) Conference).

Hadi Patrovi
As the co-founder of Code.org, Hadi Patrovi’s vision is to fill the world with computer programmers. Code.org is an education non-profit dedicated to growing computer programming education. Hadi grew up in Iran under the Khomeini regime, including through the Iran-Iraq war, and went on to study Computer Science at Harvard, paying his own way through by working as a section leader teaching CS to underclassmen. After working at Microsoft (twice!), he went on to co-found Tellme and iLike. As an angel investor/advisor, Hadi has been involved in the early stages of many giants like Facebook, Dropbox, and Zappos.

Selena Deckelmann
Selena Deckelmann is a woman who knows what it is like to be a woman in high tech. She is a major contributor to (PostgreSQL)[http://postgresql.org] and a data architect at (Mozilla)[http://mozilla.org], makers of the Firefox web browser. Selena has been involved with free and open source software since 1995 and began running conferences for PostgreSQL in 2007. In 2012, she founded PyLadiesPDX, a Portland chapter of (PyLadies)[http://pyladies.org]. She speaks internationally about open source, databases and community. She is an advisor to the Ada Initiative, an organization dedicated to increasing the participation of women in open source and technology communities.

The 2013 CSTA Annual Conference will be held at the Boston Marriott Quincy on July 15 & 16. For more information on sessions, workshops, and to register, visit www.cstaconference.org.

Dave Reed

CSTA Annual Conference Chair

P.S. Workshops are filling up fast. Don’t delay! www.cstaconference.org

Monday, April 15, 2013

Interesting Links 15 April 2013

Income taxes are due the end of the day today in the US. Thanks to computer software mine are done and in with a minimum of pain. It is amazing how much easier good software can make ones life. Of course software mistakes can do the opposite. That’s one reason I think we need more people knowledgeable about how to write good software. And with that thought, here now are this week’s links.
Excellent compilation of learn-to-code sites from @shamblesguru
Writing Apps to Empower Girls and Help the World from  Patrice Gans @reesegans on the CSTA blog
Calling all educators - apply for the Microsoft Expert Educator Program A great program not least of all because it opens the doors for sharing with many other great educators.
What Programming Language Should I Teach With? via @twistedsq Is a thought provoking discussion of various pros and cons.
 Windows 8 Game Development Links Updated with a link to a new post by @Tara Walker called Windows 8 Game Development using C#, XNA and MonoGame 3.0: Building a Shooter Game Walkthrough – Part 5:
Techie Camp 1-week programs for elementary & middle school kids. http://techiecamp.org enroll now!
Techie Camp is a full day, week long program designed to engage elementary and middle school students in hands-on, interactive STEM-related activities. Students take a deep dive into subject matter focused on Robotics, Programming, Android App or Web Development and emerge with skills that are useful in today’s' classroom and tomorrow's workplace.
UC San Diego Computer Scientists Develop First-person Player Video Game that Teaches How to Program in Java that looks pretty interesting. Casting spells using Java.
I have moved and updated my post on Resources For Teaching Binary Numbers  since I found this new video called Understanding Binary: a 60 Second Mindmeld
Computer Science is a No…um…Full-Brainer a new post by educational consultant Will Richardson finishes with this money quote “Start everyone early, and offer those who are passionate about the subject limitless room to grow.”
Irina Frumkin, Game Changer: Celebrating the Women of Xbox is an interesting video with one of the women on the Xbox team at Microsoft. Shows that even gaming is not totally male dominated.
Computer Science as a Teaching Strategy ianother good post on the CSTA Blog. This one by  written by Myra Deister @shhsMath
ENGoCode_pageHelp spread the word for Go Code Girl, a learn-to-code event for high school girls on April 20 at the University of Ottawa in Ontario Canada (I try to keep a look out for things up north.)

And for south of where I live, in my favorite state south of the Mason-Dixon, STEM Innovation Camps in Austin, TX ages 6-14 Register by 4/30 and get 15% off
Requiring Computing Education: An Impractical Path to Computing Literacy is a great post by Mark Guzdial that has had me thinking all weekend. Check it out and read the discussion in the comments as well.
Teaching Computer Science Honors: Continuing Turtle Graphics! shows how someone else is using Turtle Graphics in teaching computer science. Good stuff.

Friday, April 12, 2013

The Book Reimagined by Video Game Makers

VIDYA BOOKS: the book, as reimagined by video game makers is a Kickstarter project that is being spearheaded by someone I met while I was at Microsoft. Joe Booth and I have had several conversations about the intersection of games and education. The problem with a lot of educational games is that they are not fun. The problem with a lot of fun games is that they are not really educational. Joe’s vision for some time has been to create games that are both fun and educational. He’s put together a team and this is a step in that direction. This project starts with reading.

A lot of reluctant readers are also avid gamers. The hope here is that this sort of book will attract some of these readers and get them hooked on the idea of reading. At least it may get them reading something and we know that reading is a gateway drug to learning. Smile

There is only a short time left for the kickstarter part of this project. They are hoping to reach a stretch goal to allow them to make their book at different reading levels. If it means anything I have contributed some of my own money to this project. I’m hoping to help find more supporters as well. Take a look at their kickstarter site for more information - http://kck.st/15Q4Mlz

Vidya Books is an interactive book experience delivered as an iPad/iPhone app. It’s a novel you play with – it’s a book that is a game.

Vidya Books leverages the best elements of Choose Your Own Adventure storytelling, classic adventure games, traditional novels, and modern action games to create something fresh and magical.

Upon opening the app and selecting a book, you’ll watch as the story materializes on screen, one word at a time. You interact with the words as they appear -- your interaction directs the main character.  You swipe the screen, touch words, and manipulate the device -- and that moves the story forward!

In a Vidya Book, you matter! The story unfolds in front of you and around you and you control the pace. In a traditional novel the story has one path - it doesn't matter if you're paying attention or not. Here, your attention is integral and your choices matter.

Thursday, April 11, 2013

Resources For Teaching Binary Numbers

Several years ago I wrote a post on my old blog with resources for teaching Binary. Since I no longer have access to that site I can’t update it with more links. So I decided it was time to take a copy, update it and repost it here were I can update it as new links come in. BTW all of these links were good as of this posting. I removed some from the old post that were no longer available.

Penjee Binary Blitz – a binary number game/puzzle

Penjeee Binary Blitz – a binary number game/puzzle

Binary Puzzle Generator – encode messages in binary

Binary to Decimal worksheets

Binary #MicDropMath (#MicDropCS) Lessons This series of lessons is designed to take students’ understanding of the binary number system way beyond the well known fact that it uses zeroes and ones.

Several classics from CS Unplugged

How exactly does binary code work? - José Américo N L F Freitas ‎ via @TED_ED Judy Hromcik posted this link to Facebook and it is a really good video that explains a lot in less than 5 minutes.

Binary Flippy Do - How To Rebecca Dovi explains how she teaches Binary numbers with a sort of flip chart.

Understanding Binary: a 60 Second Mindmeld This 60 second video moves fast but makes for a great introduction.

MathmaniaCS Lesson Plan

A lesson plan/activity for teaching Binary numbers from the MathamaniaCS web site. Includes a graphic on counting in Binary on ones fingers.
How to Count to 1,023 on Your Fingers
This site talks about base ten, base six, Binary, Binary Coded Decimal and Hexadecimal and includes a cute applet that demonstrates counting in those bases on your fingers. As always beware the Binary value for four.
Binary Counting Cartoon - http://www.instructables.com/id/Binary-Counting/
This cartoon (available as a downloadable PDF file) demonstrates how to count to over a thousand by using binary numbers and your fingers.
The Binary System
A guide to a quite confusing concept by Christine R. Wright with some help from Samuel A. Rebelsky. Written for college students and fairly comprehensive.
Cisco’s binary teaching game - http://forums.cisco.com/CertCom/game/binary_game_page.htm
This game challenges students to set and reset bits to display a binary representation of specific decimal numbers. It is an interactive way for students to practice what they know about binary numbers.
Exploring Binary blog - http://www.exploringbinary.com/
This blog is completely focused on binary numbering and data representation. It is written by Rick Regan who has a B.S., M.S., and Ph.D. in computer science.
Some outstanding sample posts are:
The Binary Marble Adding Machine - http://woodgears.ca/marbleadd/index.html
This site shows a wooden binary adder that uses marbles to set and reset “bits.” There is a demo video and a link to plans for making a device yourself. Building one is recommended only for people who have experience with wood working but students will enjoy and learn from the video demo.
Converting from Binary to Decimalhttp://www.mathwarehouse.com/non-decimal-bases/convert-binary-to-decimal.php
A very math centric set of examples of converting to and from decimal and binary numbers.
Some online quizzes on binary number conversions

An online number converter from binary to hex and decimal and back.

Building a Computer Out of Dominoes building gates and doing Binary math with lines of Dominoes. About 18 minutes long.

I wrote about a Binary clock program I created for teaching at Can You Explain the Binary Clock?

Wednesday, April 10, 2013

SIGCT Recommendations for ISTE 2013

The annual ISTE conference is not known as a hot bed of opportunities for computer science teachers. Things look some what better this year though with 13 activities listed in the Computer Science strand  (up from only 4 last year) and 7 activities noted in the Computer Skills/ICT/CTE strand. The board of SIGCT has gone through the whole ISTE program and made some recommendations which are available on the SIGCT Wiki.

Suggested Activities at ISTE 2013 of potential interest to SIGCT members

  • PDF version (on 3 pages; this is what was sent out to all members)
  • XLS version (on 6 pages with a little more information on each)
  • There are over 90 activities listed here including the original 20 SIGCT Picks

Also there is an updated planning page for the SIGCT Forum and Playground for ISTE 2013. Links to the most recent SIGCT newsletters may also be found near the top of the SIGCT wiki main page.

I’m disappointed not to be going to ISTE this year. San Antonio is one of my favorite cities and ISTE there in the past has been great. Also there are a number of sessions I would love to attend. If you are going, have a great time and check out the suggestions from SIGCT – they’re good ones!

Tuesday, April 09, 2013

Lecture, Demo, Project

Or perhaps hear, see, do? I was asked about my teaching last week. What would my ideal class period look like. It was as they say a thinker. What I have been trying to do this semester was to mix things up a bit. Straight lecture tends not to work that well. At least not by itself. As one student told me “It all makes sense when you explain it but when I try to do it I get confused.” At the same time one has to explain the concepts. Right? I think so anyway. So I often start with a lecture. I try to include pictures (or at least PowerPoint slides that are more than just bare text). I take questions (love to take questions) and look at faces to see if students are getting it (or falling asleep).

Next I try to demo the code (or what ever else I am teaching). I try to make the demos interesting and interactive. I ask questions. Answer question. And generally try to make the demo more than just a different way to lecture. Seeing seems to help usually. I also take advantage of tools like the debugger to make things obvious that are usually more opaque.

Thirdly, and probably most importantly, I ask the students to do it themselves from scratch (at least the new concepts part from scratch.) I am finding that in programming the students grasp the syntax more easily than how to put the syntax to work to solve a problem. I’m trying to help there but that has been the big problem for as long as I can remember.

It’s the same way in most subjects though. Students can know all of the parts of a sentence and be able to break them down in a sentence they are given without being able to write a great sentence themselves. At least with writing they get more practice and they don’t have to start from scratch in high school.

Getting students more problem solving practice is a goal for me for the rest of the semester. I think they will soon have enough of the concepts and syntax to do interesting things with code. It is best that they learn how to thing computationally before being overwhelmed with too many “tools.” Figuring out what is enough for now is important. From a good but not exhaustive base students can start to solve problems. Later, as they finish with simple problems, they can ask about and digest more tools for the problems that are not easily solved with the tools they already have.

That’s my theory. What do you think of it?

Monday, April 08, 2013

Interesting Links 8 April 2013

According to the daffodils in the front of the house it really is spring. A small pile of snow in my backyard is fighting but I think it is doomed to failure. I just finished a quarter at school and getting my grades finishes and in the system is the priority right now. But I am taking a work break to assemble this list of links from the previous week. I hope you find something useful here.

First off. The CSTA Board of Directors election is on now. If you are a member you should have gotten information about voting. The candidate statements are on the CSTA web site and I encourage you to read them and vote for the people you think will do the best job. Of course I hope you’ll vote for me. Thanks to those of you who have or will.

10 Things Every Teacher Needs To Survive via @teachthought A good list.

My friend Sam Stokes asks  Is C++ Dead? and replies “Nope. It is alive!” XAML/C++ and Direct2D is AWESOME! I’m not so sure this isn’t a step backwards but Sam links to some resources if you agree with him

Mark Guzdial references and responds to a post called Six Reasons Why Computer Science Education is Failing Students via @guzdial

Great video of what computer science looks like in the elementary grades! http://dl.ebmcdn.net/fcps/mp4/schoolscene/2013/ss08_stem.mp4 (Video file)

Google Glass: Exploring Education Possibilities  Ken Royal is one of several people I know planning on looking closely at Google Glass in Education. (via @kenroyal)

One Month Left to Enter The National STEM Video Game Challenge.

Microsoft Holds Panel on Extending Computer Science Ed to U.S. Students

Super Computer Science: Coding Online - Rebecca Dovi has a long list of resources for writing and learning code online. So if you are looking for web based coding tools bookmark her lists.

The Teacher Collection Applications for Windows 8 quite the collection by a teacher for teachers. 

Know any visually impaired student who have an interest in computer science? There is a  two-week Computing camp for visually impaired students at RIT in New York State.

Friday, April 05, 2013

Thoughts on Bring Your Own Device to School

I seldom pay attention to the cars that students drive to school. I’m not that interested. Their technology on the other hand does interest me. I see all manner of smart phones for example. iPhones are not uncommon for example. I’m seeing more and more computing devices as well. I see any number of iPads for example. Today I noticed an impressive setup connecting an audio device and an external hard drive to a laptop being used by a student in the study hall I monitor.
Seems like a lot to carry around but this student is apparently pretty serious about their music. As a general rule I’m fine with students listening to music as long as they are doing work and not disturbing others around them. In any case this got me thinking a bit more about students bringing their own devices to school.
I see a lot of positive about this. Creativity is a good thing and students are more likely to get creative with their own devices. In fact with the way many school owned systems are locked down I worry that school owned systems discourage creativity. Well with the exception of students finding creative ways to break through the locks of course. I know that a lot of students will be spending time on these creative efforts at home if they are not allowed at school. So one might say that forbidding BYOD will not stop students. There is truth to that of course. On the other hand it leads students towards separating school from creative efforts and that is a bad thing.
A lack of freedom in school is one reason why students see school as a punishment and as a limiting place. For adults we want to see school as a place where students horizons are expanded and their futures become less limited. The question of what to allow becomes a tight balancing act. We want students to be quiet, to pay attention, to do what they are told and to follow the rules. At the same time we want them to be inquisitive, creative, and imaginative. Confusing enough for adults let alone students.
Students today are using their devices in many ways. Communication being one thing. Games being another. With communication (in schools) we worry (rightly so too often) and cheating. With games we worry about students not paying attention. We forget how easy it was for some of us to stop paying attention in school without games when we were students. Personally I used to read books when I was supposed to be paying attention on more occasions than I should probably admit. And books are “good.” Smile
I also see students using their devices for learning though. One student in my programming class regularly uses the school computer for the programming project but has his notes or the documentation open on his personal laptop. Bonus! Of course it makes me wish I had dual monitors on the lab computers so that all the students could do that sort of thing.
Other students will be using their personal laptops to do school work in the cafeteria during lunch or homeroom or after school. Still others will use them to create documents or images or what not with tools that they were able to acquire for their personal systems that the school could not afford site licenses for easily.
Student owned devices can make learning more personal. There is always the issue that not everyone can afford these devices though. The digital divide between the more well off and the less well off is never going to go away. I’m not sure the answer is to prohibit the more well off from using their devices in school though. In fact many students are more than happy to share some use of their devices with others. Having the device at school makes that easier not harder. Also I suspect we can learn a lot about how to use these devices for education by watching the students who do have them and how they use them to learn.
Still we should make sure that all students have access to computing devices while they are at school. How to make that happen is going to depend a lot on the school and budgets of course. It’s not an easy question in the current financial climate. But unless all parts of society get access to technology things can only get worse.

Wednesday, April 03, 2013

The Problem With Projects

When teaching beginners how to program there are a whole cast of variables to deal with. One of them is finding learning projects or exercises that are complicated enough to be interesting but simple enough that students can work them out in a reasonable time frame without being burdened by trying to understand and use too many new concepts at once. Exercises that are too artificial bore students and demotivate them. Exercises that are to complex frustrate students. It can be a fine line. I ran into this teaching class creation and use in my C# course this week.red-dice-icon

I used a Dice class to demonstrate how to build a class. I love the Dice class because it meets all my requirements. Students tend to be interested in dice and random numbers in general. Of course they also understand dice so discussion around what the features and functions of a Dice class are comfortable for most everyone. The class lends itself to covering all the basics:

  • Two constructors – a default and one that lets the number of sides be specified.
  • A method that just changes a value – roll to set the value of the die
  • A property, Value, that can be returned but not directly modified from outside the class
  • A reasonable and pretty obvious ToString method to make to return a text value of the dice for display purposes.

The code is quick and easy to write as well. I’ve used this as a demo for years. But what is the follow on? What do I have the students write on their own? This week I have decided on a magic 8 Ball class. It’s a little more complicated than the dice class in that it uses an array to hold the various messages but I think that is a good thing.

They’ll still have two constructors. One that uses a pre-populated array of messages and one that accepts a user supplied array of messages. Let’s me remind them about passing arrays which is also useful. There will be a Shake method to change the current message and a ToString to return the current message. We’ll see if they come up with other methods on their own.

We’ve talked some about how you could incorporate this sort of code in a main program but why it might be better to do it as a class. My plan is to work up to some more complicated classes where the value of a separate class is even more obvious. This should help with design discussions and with reinforcing the value of breaking big problems into multiple smaller, simpler problems. It should also help when we move back into some of the larger case study style projects I’ve been having them work with.

I’ve having fun with this. I hope the students are as well. Learning should be fun.

Tuesday, April 02, 2013

Computer Science Education and New York City

I’ve been following CS education events in my old home of New York City from a distance with great interest. As the song says if you can make it in New York you can make it anywhere. True or not a success or two in NYC would be a good thing for computer science education. A year or so ago the city was getting attention with the creation of the Academy for Software Engineering. (Bloomberg Announces New Software Engineering High School, Opening in the Fall) This year the news is about a new initiative to open a second school and to expand computer science in some 20 middle and high schools.  (Bloomberg announces 20 NYC schools for Software Engineering Pilot program)

My alma mater (Brooklyn Technical High School) is one of the 20 pilot schools and honestly that makes me happy. On the other hands there are questions about both the Academy for Software Engineering and the new Software Engineering Pilot (SEP). Valarie Barr asks some questions on the CSTA blog (What's Not to Love About NYC Pilot Program). Leigh Ann Sudol-DeLyser responds to some of those questions in the comments there. Leigh Ann is very involved in AFSE and we’ve talked about it a lot.

And AFSE is not much like the man who is given credit for inspiring it (Mike Zamansky) had in mind. (Teacher’s Vision, but Done New York City’s Way) I’ve talk to Mike about this and exchanged some email over it as well. He has a real vision for transforming computer science education in the city. It just doesn’t happen to be the same one as the mayor and his advisors.

As for me I see two different but valid approaches. Yes I’m trying to have it both ways but I don’t see a problem with that. I see the problem of computer science education, especially in a place as large as New York City, as too complicated for a single solution.

As I understand it the goals of the AFSE and the SEP include a real drive to expand diversity in computer science in the city. AFSE is not an entrance exam high school (Stuyvesant HS where Mike Zamansky teaches is an entrance exam HS) and accepts students from a wide range of academic backgrounds and strengths. This should give an opportunity to a lot of students from non-traditional backgrounds (for CS) to enter a program that will increase their options for the future both educationally and professionally. Sounds great if it works.

The SEP is going to be in a mix of schools. Some are middle schools for example. I love this idea because I am a firm believer that we need to get more computer science to students at a younger age. If we get middle school students hooked on CS earlier maybe they will be more motivated to do better in school and be better prepared for high school and beyond. I don’t know much about all of the high schools on the list (NYC has over 400 high schools) but some are charter schools, engineering/STEM focused or in the case of at least Brooklyn Tech entrance exam schools. It will be interesting to see how this program develops in different environments.

The concern there is where will the teachers come from and who will train them. I am told that there are plans (and money) for this and that things should come together for training this summer. If the training works out well and the SEP program is successful that would be very encouraging. It could lead to a program that is reproducible in other parts of the country. To say nothing of at more schools in the City.

The other vision, or set of visions, is a more elite computer science focused school with rigorous entrance requirements. Schools like that are not popular with everyone. There is a touch of all schools should be equal with equal entrance requirements among many people. As the product of an entrance exam school I am a big fan of entrance exam schools though. I think the track record of schools like Stuyvesant, Bronx School of Science and many more around the country shows that these schools can take good students are take them to a much higher level than some other schools can. Now I am not saying they are for everyone or even every advanced student. But for the right students these schools can be huge wins.

The training piece I have heard about is something along the lines of an apprenticeship program. This would have teachers spending a year teaching at Stuyvesant with current teachers there and teaching the very impressive Stuyvesant CS curriculum. After that these teachers would return (or move) to other schools where they would reproduce the curriculum along the Stuyvesant lines. Most teacher training programs are classroom based where the teacher is a student. This would be pretty different. I can see it being a bit expensive and there are the obvious questions about scale. On the other hand it has the potential to provide some very in-depth training not only in the material but how to present it.

I believe that both teaching in general and learning computer science as a subject do best using an apprenticeship model. I’d like to see this given a good try with a successful computer science program somewhere.

The best part about all the this activity though is that besides having high level political support from the mayor and education department is that the tech community in New York is also supporting it. Startups, big companies, venture capitalists and individual employees of some of the most familiar names in high tech are supporting AFSE and other efforts with money, hosting and participating in school events, and promoting the idea to others. This is huge.

Even things like the SWAG decorating the computer labs at Stuyvesant may seem small but they are symbols of greater support and they help make students feel part of the tech community. Likewise the events hosted at Google, Twitter and other companies help students to see themselves in the field. I hope that sort of thing also spreads to other parts of the country that want to expand (or maintain) there place in the tech field.

Monday, April 01, 2013

Interesting Links 1 April 2013

It’s April First which means both the real and virtual worlds will be filled with jokes and tricks and attempts to fool people. No jokes here though. I find most of them more annoying than funny. The links I have to share today are real and valid and I hope helpful. So read on with confidence.

Anyone Who Thinks Apple Will Rule The World Forever Should Look At This Picture  via @businessinsider is an interesting read about the past and future of the computer industry. For me the interesting part was that the computer they show on the picture is of a computer model I used in college that was built by a company I used to work for. Predicting the Future of Computing is hard and as teachers that reinforces why we need to concentrate on concepts and principles over specific tools.

Interesting things continue to happen with regards to computer science education in New York City. With two articles popping up of interest.

"IT'S A GOOD COURSE, BUT..."  some thoughts on AP courses from Eugene Wallingford (@wallingf) I agree with a lot of what he says here. I’m not a huge fan of the current AP CS exam. Trying to keep an open mind about AP CS Principles which is still in development 

How to Close the Tech Industry's Gender Gap Closing it starts in the classroom but I think most of us in education know that. Industry should do more to help though.

New on Blog@CACM: Nerdy Strutting: How to Put Women Off the Tech Industry Attitudes and behaviors do not help with retention of women in the field of computing.

Turning Elementary Computer labs into STEM labs: A welcome change? via Vicki Davis (@coolcatteacher)

@ImagineCup announces the Kodu challenge for students ages 9-18 worldwide!

CS2N is proud to announce a new tutorial series for Alice 2! If you are using Alice 2 this may be worth while looking at.

Developer training company Pluralsight released a pair of online coding courses for kids. I know the people who have developed both of these courses and they do good work. I’ve used a lot of Joe Hummel’s resources especially. So I’m sure these courses are both well worth exploring.

Everyone Should Learn To Program, But Not Everyone Should Be A Programmer Seems obvious to me but apparently not to everyone.

Math Nerds vs. Code Monkeys: Should Computer Science Classes Be More Practical?