Thursday, July 18, 2013

Thoughts On Mobile Phone Development

For the second year the annual CSTA Conference has had a mobile phone development “throwdown.” In this session each participant has 15 minutes to create a mobile phone app. We had someone developing in Objective C for iOS (iPhone), App Inventor for Android, and Visual Studio for Windows Phone. I recorded a version of my Windows Phone demo at Windows Phone Random Dialer Demo. I believe the whole session was taped and I’ll update this post with a link to that when it is available. But this post is about what I have learned and some opinions I have developed from watching the “other guys.”

Update: A video of the live session from the CSTA conference including the iOS and App Inventor for Android development is available at http://youtu.be/AD7PRDmYfaQ


Ralph Morelli(Android), Adam Howitt (iOS), Alfred Thompson (Windows)Picture by Peter Beens
The first thing I have learned is that I have no real interest in using iOS development in my classroom. If I were in the app development business I would probably go though the pain to learn it but since I’m not I will not. Objective C seems a little on the weird side to me. And I am probably spoiled by Visual Studio but attaching code to events and objects seems a lot easier in Visual Studio (and App Inventor for that matter) than in iOS development. I want something easier and smoother for teaching.
App Inventor is cool. No two ways about it. It’s fast, easy, graphical and there is a lot of good access to phone features. It’s not “real code” though to me. I have mixed feelings about that. I would love to see how the professionals develop for Android. In the demo at CSTA the presenter did have to go into Java tools to get access so random contacts in the contact list because App Inventor didn’t have a native way to do it. That was done hurriedly with a bit of “I prepared this earlier” so it wasn’t clear to me how it all fit together. Some of that was of course because of the severe time constraint.
I can see using App Inventor in some ways in a first course. In a more advanced course I was more traditional code.
Visual Studio is, in my admittedly somewhat biased view, just right in the middle between the drag and drop of App Inventor and the complicated Objective C of iOS development. It also has the advantage that the same languages (C# as I used in  this demo or Visual Basic) that are used in more traditional programming as also used for phone development. I like that.
An addition to the mix for me is TouchDevelop. It is somewhat similar to App Inventor in that syntax is largely taken out of the mix. It doesn’t have quite the same drag and drop user interface ability that either App Inventor, Visual Studio or even the iOS tools have though. On the other hand it allows the user to export to Windows Phone, Windows 8 or web apps. That’s cool!
It is also very easy to get access to phone specific functions. Take a look at this code that displays information about all the contacts on my phone.
image
And that is with some error handling to watch out for contacts without phone or email addresses. As TouchDevelop continues to improve that may be the way I do things if we do another ThrowDown in the future.
Something else I learned is that different platforms allow (or not) different things to coders. For example it is easy to get information (meta data) about phone messages or texts in Android. Not so easy at all in Windows Phone. On the other hand in Windows Phone development one is able to easily access random contacts while on Android (especially with App Inventor) some hoops have to be jumped though. There was also a lot of “set up” required in iOS development that neither App Inventor nor Visual Studio or TouchDevelop had to go though. So you have to do some homework to make sure your app is even possible on a platform.

An Hour of Code–Something for CS Ed Week 2013

CS Ed Week 2013At the CSTA Conference earlier this week Hadi Partovi from Code.Org announced some plans for this year’s Computer Science Education Week. Specifically providing an hour of code for every student in the US.

What is an Hour of Code?

It's a 1 hour intro to computer science and programming, to give beginners a taste and to demystify "code". For existing CS teachers, it can be anything you want - get creative. For everybody else, we'll provide self-guided tutorials anybody can do, with just a web-browser or a smartphone, no experience needed. Note:  HTML does not count as an Hour of Code.

This seems like a great idea to me. This idea is something that a lot of people can take advantage of. Special assemblies, guest speakers, and many other things are still great ideas and I hope many schools will still do them. But this suggestion could bring a lot of attention to CS education if enough local schools take part.

There are about 18 weeks until this year’s CS Ed Week but it’s not too soon to start planning your events. And to think about how you might get involved in an Hour of Code in your school.

Wednesday, July 17, 2013

CS Educator Interview: Tom Indelicato

I didn’t go far from home for this one. tom Tom Indelicato and I teach together at Bishop Guertin High School. Some years ago I hired him to be the fill a need for a computer science teacher. One of the best moves I’ve made. This past January he hired me to come back to BG as a teacher after I left Microsoft. Besides teaching computer science, Tom is also the faculty mentor for the school’s FIRST Robotics Team 811. He’s seen at a FIRST event in this picture.

Where do you teach? What sort of school is it?

Private Catholic middle class high school. (I’d say “urban”, but that’s giving Nashua a better rep than it deserves.) [ED: BG is a college prep school and on an average year 97% of graduates go on to attend a four year college/university. Yeah, I’m kind of proud to teach there. And my son is a graduate as are all three of Tom’s children.]

How did you get started teaching computer science?

After 17 years of programming in industry, I decided to answer what I considered a call from above and make change. Haven’t looked back.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

“Explorations in Computer Science”, a freshman class (which is a new replacement of a Microsoft Office class) that introduces CS concepts with a little programming; “Honors Programming”, the follow-on to ECS and preparation for APCS; “APCS” (self-explanatory); “MultiMedia”, a course focusing on the artistic aspects of Mac computers; and “Graphic Design”, a Mac-based Photoshop class. (“Yearbook” is an Art class.)

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”

My goal is to “infect” as many students as possible with the same love that I have for programming. I use project-based lessons, and my lessons a rife with stories from my professional career.

What is the biggest challenge in teaching CS at your school?

As only one semester is required for graduation, my biggest challenge is getting kids to consider a second CS class. This was the inspiration for the new ECS class.

What is administration’s support (or lack of support) like at your school?

Generally, I’d say the administration is supportive of the CS program; there’s almost never been a time when resources were denied, and they’re open to suggestions for improving the program.

How do you measure success for your program? For your students?

I see success in the long list of students who’ve gone on to study CS or engineering, but my hope with ECS is to see this list grow faster.
For a full list of interviews in this series please see CS Educator Interviews: The Index

Tuesday, July 16, 2013

Windows Phone Random Dialer Demo

This is posted on day two of the annual CSTA Conference. This afternoon I am taking part in a mobile developer throw down. Three of us are writing the same program on different platforms: iOS, Android and Windows Phone. Guess which one I am doing? Yep, Windows Phone. The challenge is simple. Write an app that picks a  random contact from your phone’s list of contacts and then gives you the option to dial it.
Obviously I have been practicing. In fact I recorded some of my practices. Since time is short for the throw down and I will have to talk fast I decided I should make both the code and the demo available via this blog. The first, less than 3 minutes video, is of using Visual Studio 2012 to create the very simple user interface.
Creating a simple UI for a phone dialer app
No code in that part. Just drag and draw a button and two textblocks. Do a little setting of parameters but not much more. Obviously in a “real” app there would be a lot more. Next though is writing the code behind the app. Here is that video (about 10 minutes 30 seconds).
Writing the code
First we make sure we include some useful libraries. Specifically the ones for accessing user data and phone tasks.
using Microsoft.Phone.UserData;
using Microsoft.Phone.Tasks;


Next we create some code to respond to a click on the button. Not the ideal Windows phone way to do it but hey this is just a demo.


private void btnFind_Click(object sender, RoutedEventArgs e)
{
    Contacts cons = new Contacts();

   cons.SearchCompleted += new EventHandler<ContactsSearchEventArgs>(Contacts_SearchCompleted);

  cons.SearchAsync(String.Empty, FilterKind.None, "Contacts test #1");
}



The Contacts type is a collection of contacts. We’re setting up Contacts_SearchCompleted to be an event handler to execute when our asynchronous search completes. Obviously Contacts.SearchAsync starts our search. We want the search to run asynchronously so as to prevent the phone from getting stuck. We want other apps in the background to be able to do their thing. So what does the event handler do?


 void Contacts_SearchCompleted(object sender, ContactsSearchEventArgs e)
        {
            Contact c;
            int count = e.Results.Count();
            int tryMe;
            Random r = new Random();

            do
            {
                tryMe = r.Next(0, count);
                c = e.Results.ElementAt(tryMe);
            } while (c.PhoneNumbers.Count() < 1);

            txtName.Text = c.DisplayName;
            txtPhone.Text = c.PhoneNumbers.ElementAt(0).ToString();

            PhoneCallTask tsk = new PhoneCallTask();
            tsk.PhoneNumber = txtPhone.Text;
            tsk.Show();


        }


We’ve got some variables there. Since I have some contacts on my phone that don’t have phone numbers I wanted to make sure I only tried to call people with phone numbers. So after randomly selecting a contact I check to make sure the count of phone numbers is at least one. As long as I eventually find a phone number the code displays the name and number in textblocks. Lastly the code creates a phone call task, assigns the task a number and executes the call. The call task does ask if you want to call or cancel the call.

So there you have it. Not beautiful but just enough code to show you how to create a very simple app using the available phone libraries.

A video of the live session including the iOS and App Inventor for Android development is available at http://youtu.be/AD7PRDmYfaQ

Monday, July 15, 2013

Interesting Links 15 July 2013

Today is the first day of the CSTA Annual conference. Ten workshops today and later a tour of Microsoft’s New England Research and Development Center (Yeah I’ve been to NERD before but still …) I’ll be helping out with some demos at NERD – showing off TouchDevelop. I’ll have more on the CSTA conference later but for now it is Monday morning share some cool links time.
No US College In Top 10 For ACM International Programming Contest 2013 First time that has happened but no US team has won since 1997. What’s going on?
Have you been following my series of interviews with computer science teachers? Check out CS Educator Interviews: The Index  Now with seven interviews and see if you have missed any. Oh and yes more are coming.
Gail Carmichael@gailcarmichael on how Improving Computer Science and Programming Education for Women Improves It for Everyone!
Think that Lego is just for kids? Think again - Naval Academy to use Lego kits for robotics education
What's the Best Language for a Beginning Programmer? Popular Mechanics takes on this religious topic. Not sure I agree with all the conclusions but makes and interesting read.
Debugging TouchDevelop scripts : great new functionality in the latest online beta version of TouchDevelop.
Interactive chart on how programming languages have influenced each other Not perfict (I’m pretty sure that Visual Basic influenced C#  and that isn’t shown.) but very interesting. A lot of influence goes two ways with langauges influincing other language that influenced them. Very little is 100% origional.
8 iPad apps to Teach Coding and Programming I’m not sure how much of these apps is really teaching programming and how much problem solving. Not that problem solving is not a great thing but there is more to programming than that.

Sunday, July 14, 2013

What Is It With US Students and Programming Contests?

I saw this recently on SlashDot - No US College In Top 10 For ACM International Programming Contest 2013 Now the ACM International Programming Contest is sort of a big deal. In the first fifteen or so years US teams won first place every year. Since 1997 though a US team has not taken first place. In Microsoft’s IC LogoImagine Cup competitions there is no US winner in any of the 15 or so categories this year. In fact US results in programming and software development competitions have been pretty poor (one might say embarrassing) for a while. One has to ask why?

I don’t think it is because they US doesn’t have students who can compete. I think we do. I think many of the best and brightest choose not to compete. Why? Well I don’t think they see enough value in the competitions to take time from other things that they value more. If you are a top student in a top US university you probably already think your value is obvious. And realistically it is. Top companies (Google, Facebook, Microsoft, etc.) are recruiting on your campus. You are already doing enough to get their attention.  On the other hand if you are in a university in a small eastern European or Asian country that no one has heard of outside the area an an international contest victory may be just the edge you need to get noticed.

You may also already be working on your startup. You’re in the US, probably in a hub of startups, and money and resources are there if you can convince people they should invest. You don’t necessarily need a contest victory to prove that. If you are in a country, even and advanced country, where starting a business is difficult and raising start up capital is rare  for students you may again want the attention (and prize money) from a competition to help you get your start.

I think it is a shame though that more US students don’t compete. Call it nationalistic pride if you will but I’d really like to see more US students get this sort of recognition. It just makes us look bad when we don’t have winners in these events. Are they important in the great scheme of things? Maybe not. On the other hand perception is a huge influence on reality. If American students start to think that they can’t compete they may not ever try. And by try I don’t just mean trying programming competitions.

What do you think? Is this a problem? Are there no top 10 US teams in the ACM event because our best are not involved or is it because our best are not good enough by some definition of good enough? If it is a problem how do we fix it?

Friday, July 12, 2013

CS Educator Interview: Laura Blankenship

Laura Blankenship teaches at the all-girls Baldwin School.and is also one of my favorite CS education bloggers. In this interview she talks about some of the issues her students bring up about the role of women in computer science. I hope you enjoy reading her story as much as I did.

Where do you teach? What sort of school is it?

I teach at The Baldwin School, an all-girls pre-K - 12 independent school in the suburbs of Philadelphia.

How did you get started teaching computer science?

I have been a teacher since grad school, but I taught English for years.  I had been using tech in my classes since the beginning, making my students learn how to navigate newsgroups and email lists, build web sites and Flash animations, blog and create multimedia essays.  So, I've been on the edge of CS for years.  I worked in campus IT in the Ed Tech field where I did some web development and system administration in addition to the usual ed tech stuff.  I taught a summer program in multimedia development, mostly using Flash, HTML, CSS, and PHP. 
I made the leap to teaching straight-up Computer Science in 2010 when I moved across the street to Baldwin.  I had already been learning some programming besides PHP, so I learned Python and that's what I teach in--mostly--now.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

We CS from 6-12th grade, though students dabble in 1-5.  6-8 grade I teach a "technology" course that's required.  It meets once or twice a week (depending on grade and week) for 10 weeks.  I start with Scratch, then Jigsaw (a Python-based visual language), then straight Python.  We do games, graphics, art, and other fun activities.
9-12, I offer and Intro Class, then CS II, and now two Advanced classes: Physical Computing and Mobile Computing.

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”

I'm a project-based person.  I also use flipped learning, especially in the 6-8 classes, where I only have 10 weeks.  Basically, I teach a few fundamentals in class, have students practice them in a lab (similar to what you would do in a science class), and then they do a project (with lots of class time to complete) that covers the concepts in more depth.  We work with robots, graphics, games, music, etc. I try to let the students follow what they're interested in.

What is the biggest challenge in teaching CS at your school?

The schedule.  Most students have a packed schedule, taking all their required courses.  Plus there's my schedule.  Teaching in both the middle and high school means there are certain times I can't teach HS courses.  So I have a hard time finding a time slot that meets student needs.

What is administration’s support (or lack of support) like at your school?

I have great support.  My administrators have given me complete control over the curriculum and provide great financial support as well.  They're also really flexible about scheduling courses both for me and my students, so I've been able to accommodate students when necessary.  Next year, for example, I'm offering CS II as a semester course instead of a year because there were 4 students who wanted to take it plus the Physical Computing course and couldn't fit both in if CS II were a year.  It'd be nice to not have to juggle like this, but I'm glad my administration is willing to be flexible.

How do you measure success for your program? For your students?

I would measure success by having all my courses have at least 10 students.  I'm going to have about 9 in my advanced class and around the same in intro.
For my students, if they enjoy the class and learn something, I'm happy.  However, I've had students recognized by NCWIT as well as winning a grant from Google. I also have a senior headed to Purdue to study Computer Science.  Those are all good signs of success as well.  I don't think I've had a huge amount to do with all that. Basically, I'm a cheerleader for them and give them an environment in which to learn and thrive.  Next year, I'll have 5 seniors.  I can't wait to see what they end up doing!

What is the one thing you like to talk about regarding your program that I haven’t already asked?

I love that I only have girls in my classes!  I think they feel safe being around just girls and learning something that they believe is sort of hard and "for guys."  We actually talk a lot about gender issues in my class.  They usually bring it up.  They have questions about why there aren't more women, why the guys they know that like programming are so intense, or why they automatically think girls can't program.  We have lots of interesting conversations. My students are all very different, but they share CS in common and that really bonds them.  I think that's cool.

More about Laura on the Internet

For a full list of interviews in this series please see CS Educator Interviews: The Index

Wednesday, July 10, 2013

CS Educator Interview: Doug Bergman

Today’s interview is with Doug Bergman from Charleston SC. I first met Doug through the Microsoft Partners in Learning program. Listening to him has been influential in how I have changed some of my views about teaching computer science in the last few years. Doug has a lot to say here and I hope you’ll read it all.

Where do you teach? What sort of school is it?

I teach Computer Science in a private school (K-12) in sunny Charleston, SC. Total school population is just under 1000 students, with each grade level having approximately 90 students or so.  We have iPads for all students 3rd-7th grades, plus a variety of carts of Chromebooks, laptops, netbooks, iPads, and IPods.   Our school is a college-prep school that strives to help our students find their ways to colleges all across the United States.
Starting in the 7th grade, we begin introducing Computer Science to our students through programs such as Scratch, Lego Mindstorm, Sketchup, Small Basic, and Python.
Computer Science is required in the 9th grade for all students, then students can sign up voluntarily for Computer 2,3, and 4 in addition to their other classes. We are excited that our program is attracting 30+ students from each grade level. Since dropping the AP Cmp Sci from our curriculum and replacing it with a series of project based classes and curriculum, we’ve quadrupled the size of our program, and also have increased the percent of females in our program to about 30%

How did you get started teaching computer science?

I majored in Computer Information Systems at Clemson (go Tigers) and jumped into corporate America as a Systems Analyst.  I loved working, but I found myself pulled to more the people side of business, which eventually led to me heading over to Japan for 3 years to teach ESL to students from the age of 3 all the way up to 93. That introduced the world of teaching to me, so when I returned, the natural step was to get into teaching ….so I brought together my two passions and the next thing I knew I found myself teaching Computer Science at a small private school in Columbia SC.
I tried to work in public education, but S.C. did not have any type of certification for Computer Science (even though my PE teacher taught it to us when I was in school. Apparently she was more qualified to teach than I was according to their policy). I tried and tried, but could not make any headway. So, I called a private school with a position open, and within 48 hours I interviewed and had the job offer.  I was there for about 5 years, but felt the lure of industry and $$$, so I jumped back into business as a network-system admin down on Kiawah Island, SC and learned more in that year and half than I could ever imagine.  I was dealing with everything from running cable to email servers to touch screen POS restaurant systems to kitchen printers to website to training to video cards drivers to golf shop cash registers to database administration …..and then about 100 other jobs. Very fun.  What I loved was that each day I went in, I had no idea what I would be doing or who I would interact with; it might be the CEO or I might be a part time secretary.
But, the classroom has the uncanny ability to call back its teachers when it wants to…….and I found myself back in school at my current school, Porter-Gaud School, where I’ve been for the last 12 years…and loving every minute of it.
While I am a graduate of the public school system, as a teacher I had found a good spot in private education.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

Computer Science as a core subject is fundamental to the success of our program.  With the demand for Computer Scientists increasing tremendously over the next decades, We designed an innovative 4-year Computer Science program whose goal is to attract a new kind of student: students who can design, be creative and create, solve problems, work together but who also can take their ideas, implement them, present them, and turn them into real products to solve problems or sell in the marketplace. 
Through a project-based curriculum which incorporates a complete immersion multi-media, hands-on,  multi-tasking approach to class, we incorporate live speakers, field trips, movies, books, games, puzzles, discussions, video clips, short stories, presentations, and of course hard-core programming.  One of the main goals for the program is to engage students and develop a strong interest and passion for Computer Science. What we’ve noticed is that many people do not really know what Computer Science is, so this experience is a learning experience for both our parents and our students.
In the first year, we “hook” students through a variety of engaging experiences designed focusing not on solely mastery of skills, but exploration of skills and introduction of Computer Science. We do this through contexts such as robotics through programming  sensors and motors. In the spirit of “serious games”, students also choose a worldly issue and design an actual video game around that idea; we are always amazed at the excitement this section generates as well as the quality of games and  the level of  programming required(and acquired) to code them.
In contrast to the programming side of Computer Science, we dive deep into 3D modeling in order to give students professional grade tools which allow them to take their imagination and recreate it on the screen in 3D.   Additionally, we go in-depth into the insides of the computer.  Students take apart and build computers, troubleshoot, buy replacement parts, and learn all the speeds, sizes, and other numbers associated with the hardware of the computer. Students even send a message to the Mars rover in binary.
Year 2 we explore mobile-based Computer Science through browser and mobile apps.  Students consider something that they are very passionate about in their own life and then dream up a school that teaches about that. Students design and maintain a fully functional interactive site for that school, including the backend database and savvy navigation, by using HTML, PHP, and MySQL. In the mobile app section, students learn to control and access accelerometer, touch screen, GPS, and voice recognition as they develop apps for the Android phone system.
Year 3 focuses on user interfaces, software development through XNA for Xbox game design, and entrepreneurism. Students study advanced computing concepts as they learn to program games and simulations for the Xbox game console. Students can choose to use a handheld controller  OR a dance pad for foot control interface, OR a Kinect camera for full body interface. Then they’ll spend the entire semester working on a single project.
Throughout the semester, they are also learn business concepts such as demographics of the target audience, missions statements, 360 marketing & promotion, copyright, and economics of pricing.   Students have a chance to demo and present their project in front of a group of venture capitalists, who will decide who to invest their money in.
The final year is a college level Object Oriented Programming class that is a dual credit class offered through the College of Charleston. It is split into two halves: One is studying OOP through JAVA and Alice 3.0. We use animation in Alice to explore (visually) concepts such as polymorphism, inheritance, and lists. Then we dive into actual code through JAVA to implement a series of robotics exercises and business simulations, such as the Verizon Phone network. The other half of class is an exploration of xCode for the iPad. It uses Objective C and is a combination of visual building and coding to produce interactive apps for iPhone and the iPad.

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”

I was honored to have been interviewed for Anthony Salcito’s Daily Edventures about this very topic: http://dailyedventures.com/index.php/2013/02/15/doug/
I am a believer in the discovery style of learning. Teacher as a guide, more than sage on the stage. That is hard for some people to comprehend because it involves the teacher giving up control of the learning. We’d all been through a system where we were told what to know, how to know it, when to know it, and for how long we would need to know it, and in what ways we would need to know it. And while it is possible to design a class like that, the natural way to learn Computer Science just seems to lend itself to hands-on projects.
If you look at the kinds of class and homework assignments I give, you’ll quickly see that I see my job more so as a teacher of motivation as compared to a teacher of skills. In the long run, I think my subject area is better served if my students develop a love for the area by learning about it through many lenses.  For example, in the robotics section, the goal is not simply to have students program sensors or motors. Sure they’ll get that , but that Is not what I want them to remember.  That’s why we talk about the 3 Laws of Robotics and discuss the need for a 4th.
And what exactly is a robot anyway? We watch clips from movies where those laws were applied. We discuss them as they relate to the characters in the Asimov story “Runaround”.  Students spend one evening in a chat room discussing robotics with fellow classmates. Students research and find leading edge uses of real robots in the world around them.  We discuss the ramifications of humans being part robotics and vice versa (Bi-centennial Man). So we study “robots” as  a context, and we learn to program them while exploring them.
Even our coding projects (we do about 10) are real world based. One has the students simulate a mode of deep sky searching in telescopes used by Meade and Celestron called Spiral Searching. Students program their robot to simulate that action and when it locates the target, it stops and makes a series of beep to notify the humans. Another has the students program their robot to find its way across the Mars surface, even though they do not know what that surface will be like. The robot has to be able to find its way around any large objects it encounters. 
Yet another has a robot that spends an entire night “casing” an area of the forest with a night vision camera attached to it. It records how many animal crossed it’s field of view(infrared sensors), and reports it to the user when the sun comes up. (i.e. when it senses light) What I love about the robotics section is that students are out of their seats most of the time in order to test their code on an actual robot. I love the fail-to-succeed cycle: Code. Try it out . Figure out what did and did not work. Modify code. Repeat. And they will do that for weeks.  By the end they will have learned to interact with over 7 sensors , 3 motors, speakers, and lights---but more than that they will have considered robots as part of society, which is crucial because over the next 20 years, these kids will be the leaders.

What is the biggest challenge in teaching CS at your school?  

Not so much at my school, but more so in the educational system of the United States. For some reason, even though we are right in the center of a digital age where technology is central to almost every industry in our world, Computer Science is still seen as an elective, if even recognized at all. 
Additionally, we’ve(Computer Science) got a huge identity crisis and image problem.  While we are seeing many college and universities starting to offer more Computer Science programs, some of those programs are still taught in the ways that we did 25 years ago. I recently looked at the curriculum for some colleges our students were going to and it was not too terribly different than it was when I was in school.  That might be ok in some area like Math where the material is more unchanging, but in our technology world, it is changing year to year in huge leaps and bounds. We need the education of our subject area to reflect that dynamic spirit—with technology that is so dynamic and engaging, it’s a shame that our classroom are the exact opposite of that. 
Our students are used to interactive experiences with technology, but some programs are still teacher centered, where learning happens passively. That is not going work in today’s world if the United States wants to continue to be a leader in the world economy. One a good note, we are seeing  some colleges recognize Computer Science as legitimate for consideration(or possibly even a requirement) in admissions.  Currently, most high schools are still using terribly outdated models of graduation requirements, and Computer Science has just not found a home in those schools, which means many of the best and brightest students are not getting a taste of it until they get to college.
At our school, we start to explore Computer Science as early as 4th and 5th grade, hoping that by the time they get to high school, they will already be seeing the value of it in their education plan.
We also have to help the world understand some basic vocabulary. Many politicians, districts, teachers, parents, students, and even technology teachers, still confuse Computer Science with keyboarding and applications. A class that teaches students how to use Microsoft Word is NOT a Computer Science course. A class which has keyboarding listed as a skill is not Computer Science. Those are all excellent tools , but should be done naturally throughout the entire education experience.
It makes sense that a math department uses spreadsheets as part of their tool sets.  When students enter the world, students are much more likely to apply math through a spreadsheet than they are a proprietary calculator or software package. Can an English or History department teach good presentation skills using a variety of tools such a PowerPoint or Prezzi? Those are incredible instruments of communication and presentation in the art of persuasion. Art programs must embrace video and image editing and manipulation. Foreign language programs can see the value of learning to use movie and audio recording with their students to practice language. You see how I am thinking.  Most of what many “accidentally” call Computer Science are simply tools that can be used to enable other subject areas to do what they do better.
Despite what you may know or believe, there is not really even a good definition of Computer Science. Sure, we’ve got some that were written 25 years ago when computing devices were the size of gymnasiums. I’d like to challenge all of us to re-create a new definition of Computer Science that makes sense in 2013.
Actually, I’d like to challenge us to change the name “Computer Science” It’s an outdated and misunderstood—as well as full of baggage from years of change and stereotype.
Here is a first rough draft stab, just to get the conversation started: Computer Science is the art and science of using technology, both hardware and software, as part of a solution to a real world problem. It is a tool that allows a person to take abstract ideas from their imagination and turn them into something real on a digital device. It forces you to think algorithmically, which is a fancy word for taking a larger problem and breaking it down into bite sizes chunks which can be handled step by step. And due to the way in which we design programs and work with hardware devices, the ability to fail and learn from those failures are what help us work our way through our project until we get to a working solution which suites our needs.

What is administration’s support (or lack of support) like at your school?

The administration at my school has always been extremely supportive of the efforts in our program. While at times it has been a real struggle to fit our entre curriculum into an already very rigid and defined hard-core college prep curriculum, we have made it work. I remember the advice of our head of school (Chris Proctor) who was instrumental in helping us get our program off the ground. He said, “You are going to get “no” everywhere you turn, keep moving forward anyway!” And there were times where it took that. So many people believed in what we were trying to do (Thanks Beverly ,Sarah, Karen, Phil, Dubose); it truly took a village!
And for me as a  teacher, it was an incredible amount of work to experiment with what fits and what works. Because we were designing a program whose specialty was leading edge (even bleeding edge), there was not a bunch of teaching resources available to design a curriculum. So, quickly I developed an international “learning network” of educators and leaders who saw education like I did….and with their help, I’ve been able to put together a dynamic, yet very organic, curriculum that seems to have found its place at our school.

How do you measure success for your program? For your students?

Unfortunately, no teacher ever really knows the true value of what they do because we don’t really see the effect for years after. And like any teacher striving for excellence, I am continuously tweaking, modifying, removing, and adding parts to my classes. I truly value student feedback and will gladly replace something I thought up with something they thought up…if it makes sense in the bigger picture.
So, the experience that one group of students may be different than another group depending on when they go through class; I welcome and embrace those differences. So, one way I gauge how we are doing is by reading and listening to the type of feedback I get. When I get students who put a great deal of thought and energy into their observation and suggestions and reflections…I can see that they care about the program that they are in…and they want to help me make it better.
One of the more gutsy things I do is submit my teaching style and curriculum, or parts of it, for consideration to present at national and international conferences. I love the challenge of that because while I may think we are doing some great stuff…you never really know ……..when I put it out there to be reviewed by educational leaders from all over the world, it can be very humbling, but it makes you learn how to sell it and actually prove that you are doing what you say you are; that the successes that you say you are seeing are in fact real and of value.
And I have certainly received my fair share of “thank you, but no thank you…”, I have also been honored to have received some awards and asked to present at conference across the US and also a couple internationally.  But what I value about those experiences is not what you might expect…I am rather selfish about why I do it: I simply want to meet other educators who see education and teaching like I do.  I want to connect with people who the same style of energy and passion that I do.

What is the one thing you like to talk about regarding your program that I haven’t already asked?

We all get those students that we don’t have to work for. You know the ones I am talking about…the ones who come early and stay late because they absolutely love the subject area that you are in and they respond to your style of classroom experience.   You could be absent for 2 weeks, and they would excel without you. While we love those because they are the ones who will help you push the envelope, those are the easy ones. It’s that next group down that we’ve got to work for. The ones who may not yet know your passion or even why you are so passionate; the ones who have yet seen the value of what you teach and why it is important to their own life; the ones who are sitting back saying, “Ok Mr. Bergman, you got me here for a semester….let’s see what you do with that time….I am a good student, but I have not  yet drank the Kool-Aid, so you are gonna have to work your butt off  to sell me on your program.
That is the type of student, good kids who are looking to find their own motivation and passion. And if you let them take an active part in their own learning and really dive into your content and do things with it….create something of their own using the skills and concepts you‘ve helped them acquire….then they will be your best cheerleaders. I may get pummeled by the Computer Science teachers out there by saying this, but our curriculum, and my own focus, is not on recruiting students who are going to major in Computer Science…because I do not believe that is what the world needs. WHAT? DID HE JUST SAY THAT? ALFRED, WHY IS HE PART OF YOUR BLOG?
Let me explain:  We have no idea what technology will be dominant 10 years, even 5 years down the road. So, most likely by the time students graduate college, things they learned in high school, and even at their own college, may be outdated or irrelevant.  How can we know what problems will be in that world. So, what is the best way to prepare students for that world? Encourage them to follow their dreams. If he want to be a veterinarian, go for it. If she wants to be a biologist, awesome. If she wants to be a doctor, fantastic. If he wants to be a politician or journalist or office manager or accountant or real estate agent…all wonderful. We need students who have the courage to follow what they love. 
My goal is that I want those students to be great at what they do, but also have a Computer Science edge to them that distinguishes them from their peers. I want Carter, who might be a cancer research scientist , to be able to write her own app or analytic software for her data---because she can’t go to Wal-Mart to buy Cancer Data Research Assistant 2.0. I want McLean, who is going to be a nonprofit leader saving the world in one way or another, to be able to research,  purchase, and then setup the technology to outfit her entire office network…thus saving her organization thousands of dollars. I want James, who might be a field engineer studying wind and rain patterns in forests, to be able to reprogram his tablet so that it incorporates the new sensors they just received. 
So, you see….what the world needs is people who think like Computer Scientists, but do so in the fields they have passion for. And when technology seems to be a tool that can be used to address and perhaps solve their problems, they will be the ones who not only lead, but commandingly understand, that charge.
More about Doug on the Internet

For a full list of interviews in this series please see CS Educator Interviews: The Index

Tuesday, July 09, 2013

How Important Is The First CS Course?

I’ve been reading a lot from CS educators lately. Regular readers know I am running a series of interviews with teachers from all over. As I write this I have five of them posted with an other half dozen or so in the queue to post over the next couple of weeks. Patterns are starting to emerge. One of them is that many successful programs start with a very good first course. Not the AP CS course. And not an applications based course. rather they start with a first course that is more of less a gentle introduction to computer science.

These courses include programming as you would expect (or hope) but they do it in a way that encourages students to want to do more. Make Zamansky (who I hope to have an interview with soon) talks a bit about his schools first course on his blog at Gender Stats. While the main thrust of that is his school’s success with attracting and retaining young women in the program he talks about the first course that is important to those efforts.

A well designed required intro course where young ladies can see that this stuff is cool and women are just as good at it as men.

The word required is Mike’s emphasis but I’d highlight it myself. Would that we could get more schools to require a first computer science course. It is long since past time when students should get the basics of word process and spreadsheets long before they get to high school. Having an applications course in high school is a systemic failure. But we do need students to have some early exposure to computer science. If not in middle school than no later than early secondary school.

When I bring this up I often get the response that another required course will just turn students away. My answer is plain – if your required courses, in any subject, do more to turn students away from the discipline than towards it you are doing it wrong.

In the case of computer science there are lots of fun and interesting things to teach and ways to teach them. You can use block languages like Scratch, Kodu and Alice (see lots more at block programming languages) for example. You can use turtle graphics in tools like different versions of LOGO or TouchDevelop or Small Basic and many more. You can use languages like Visual Basic that are more friendly than the semi colon and curly brace languages.

But most of all you can teach things that students care about.Let them get creative. A project they can and want to show their friends is worth five they have no interest in. You can talk about applications that change the world. Or even just their world. But by golly computer science is fun and interesting and a first course should show that. Get them interested. We are not yet at a point where courses that weed out the kids who are not already hooked on software are necessary or desirable.

Monday, July 08, 2013

Reflections on EdTech Conferences

This was the second year in a row that I didn’t attend ISTE. I really miss it but events conspired against me. But I’ve been reading a lot from people who did go and it has gotten me thinking quite a bit. Over the last 15 to 18 years I have attended ISTE (starting back when it was NECC), TCEA (Texas’ wonderful and huge ed tech conference), FETC (also huge but in Florida), the Christa McAuliffe Conference (New Hampshire's much smaller more intimate ed tech conference), SIGCSE (the big conference for computer science educators at the post secondary school level) and of course the CSTA Annual Conference (Hope to see a lot of my readers there next week.) I’ve attended them both as a full-time teacher and as a full-time Microsoft employee. Two different perspectives.

Audrey Watters (Possibly the best independent journalist covering education technology) was the first person I saw who pointed out that there were one  industry person at ISTE to every 3 or 4 teachers. (On (Not) Missing ISTE 2013) Is that a bad thing? I think some think so. This forces me to look at my involvement in ISTE (and other conferences) over the years I worked for Microsoft.

What was my reason for being at these conferences? Was it positive or negative? I like to think it was positive. I like to think that my purpose at those conferences was to learn as much if not more than to sell. I sure have learned a lot at these conferences. Microsoft paid my way to promote the use of Microsoft technology in the classroom. That was my job. I liked to say that I was mainly in the “make friends and influence people” business rather than sales. I gave away a lot of software over the years. I didn’t sell in the sense of looking to exchange money for goods and services. That’s a lot different from most industry attendees at ISTE of course. Even most Microsoft people manning booths at ISTE are hoping to sell products. Although they too give away a lot of software. And this year thousands of Surface devices.

So what does industry contribute to these conferences? Money for one thing. Many of these conferences could not take place at affordable rates for attendees without the income from the exhibit hall. The CSTA conference does not have an exhibit hall but the generosity of several industry sponsors is critical to funding the conference. We’ll talk more about CSTA in a moment. I noticed that the exhibitor badges at most conferences are distinguished by a black band. A warning of sorts. I once joked that they should be green because exhibitor money was so important. Either way it sometimes feels like an use v. them situation. Predatory exhibitors paying to prey on unsuspecting educators. I don’t think that is the reality though.

Speaking for myself at least I never pushed/promoted anything I didn’t honestly feel had real educational value. I suspect that some people working in industry don’t know if what they are selling is great for themselves but they have been told it is. I doubt many people sell things they don’t think are helpful and productive. While many products have their critics most also have their own staunch defenders among educators. Are these companies trying to kill education? I doubt it. They may or may not be wrong about the value of their products but I think most of them think they are doing good.

ISTE and TCEA, FETC and similar ed tech conferences are the most dependent of exhibitors and have more of a separation of sides than the SIGCSE conference. Yes there is an exhibit hall and yes there is some selling going on. But it always feels more collaborative. Microsoft typically sends a bunch of people from Microsoft Research who show off tools that are a) mostly free and b) leading edge looking for research and teaching partnerships. The products shown are generally also available to educators for free or very inexpensive. It is more collaborative (at least to me).

I always enjoyed showing off new things that I thought were useful for teaching at SIGCSE. I also spent a lot of time listening. I sure did learn a lot about what was being taught, how it was being taught and even why it was being taught. SIGCSE was always a conversation to me. I wish ISTE could be more like that. Maybe ISTE is too big and SIGCSE is small enough that we can all just be friends?

CSTA’s annual conference has no exhibit hall. It does have industry sponsorship though and that has generally meant that there were some industry speakers. There was not a specific quid pro quo though. Sponsors presented proposals and the committee generally picked the suggestions that had the most perceived educational value to attendees. So we have had some Google talks on App Inventor and Google Scripting. And we’ve seen some Microsoft talks on XNA and similar technology. But all good stuff that teachers have found value in. (I hope)

By and large though CSTA is all about teachers showing and talking about what works for them. Industry speakers have come and gone (except for that Thompson guy with the hat who seemed to be butting in everywhere). It’s a conference by and for educators. Industry in there mainly via their logos in exchange for money. Perhaps because it is small (roughly 200 attendees) this works. There isn’t the value for most companies to pay to send someone for that size audience without even an exhibit section. Google and Microsoft (and previously Intel and IBM) have been willing to support it out of concern for computer science education rather than real commercial gain.

This is not a model that scales though. The more money a company pays the more they have to get out of it to justify the spending to higher management and stockholders. Right now industry needs to help support computer science education. More companies in the computer field should support CSTA (and probably SIGCSE) as an investment in the community or environment that they live in and need. But it is always a fine line between helping the community and helping oneself. We need to find the win win in these conferences.

Interesting Links 8 July 2013

I don’t know about you but I am enjoying my summer. Keeping very busy though. Really spending some quality time with TouchDevelop. Also working on my presentations for the CSTA Annual Conference which is only a week away! Plus working on curriculum stuff for the fall. To say nothing of all the household tasks I promised my wife “I’ll do it in the summer.” That doesn’t mean I don’t have links to share though so here they are.

I posted a list of my Computer Science educator interviews over the weekend. I’ll keep it updated as more appear. Let me know if you want to take part BTW.

5 Programming Mistakes You Should Stop Making it’s a good list and one worth talking about with students. I plan to.

Small Basic July Challenges! Lots of great project ideas on the Small Basic blog. How did I not know about this excellent resource before now? Following the blog now though.

 Want to Change a High School Kid’s Life? Show Them This via @TopCoder

Zero Robotics is a coding challenge and tournament where high school team’s across America write code to operate and fly zero-gravity miniature satellites

Zero Robotics is a game. So as kids are learning to actually program these real world objects, they are playing an extensive game that incorporates strategy, mathematics, computer science, and much more

The on-site finals are hosted at the MIT campus

The finalists have their code sent to the International Space Station where an astronaut will run the programs in a live, finals broadcast from outer space

The entire program is absolutely free

Amplify is creating a massive online open Advanced Placement Computer science course (the first AP Computer Science MOOC). Rebecca Dovi, an experienced APCS teacher, CSTA chapter president, and blogger at Super Computer Science, is teaching the course and spending the summer developing materials. Not everyone is excited about it and you can read about that at  AP Computer Science MOOC and make up your own mind.

Learn to develop for Windows Phone 8 in one weekend with Channel 9. I am doing a demo of Windows Phone development at CSTA next week. Looking into doing more of it with my students in the fall as well.

Announcing the $10,000 Poster Design Contest to help girls into STEM! more   from @TopCoder

10 free ebooks for python  anyone have a recommendation from this (or other) list? I really need to make some time to learn Python.

New safety online Facebook site from Microsoft.

Computer Science #2 on official teacher shortage list for Texas. No surprise there. Well except that for there to be a shortage people have to be actually looking to hire people for the job. So I think this is a mix of good and bad news.

Kodable Teaches Kids To Code Before They Learn To Read by @laureninspace Not quite sure about this one.

Saturday, July 06, 2013

CS Educator Interviews: The Index

In June of 2013 I started collecting interviews with computer science educators. The plan was to highlight people doing interesting things at a wide range of schools. It’s been an educational experience for me. And a lot of fun as well. This post will serve as a regularly updated index to the interviews as they are posted.
I didn't do this interview with James Allen who teaches at an all-girls school but I thought it was well worth including here. It was conducted by a student. It is called How computer science teachers can better reach their students .


[NOTE: If you got here looking for questions to ask computer science teachers during hiring interviews you may want to read Interview Questions for Computer Science Teachers.]

Friday, July 05, 2013

CS Educator Interview: Ian McTavish

For today's computer science educator interview we head north of the (US) border to Huntsville High School in Huntsville, Ontario, Canada and talk with Ian McTavish. The Province of Ontario has some good curriculum support for Computer Science education (more than most US states for example) but that doesn’t mean there isn’t lots of room for creativity and innovation!  

Where do you teach? What sort of school is it?

I teach in Huntsville High School located in Huntsville Ontario (north of Toronto).  Huntsville is a small town of around 18,000 and HHS contains under 1,000 students.  The student population is fairly homogenous. 

How did you get started teaching computer science?

I was teaching at the elementary level when there was a posting for the library position at HHS.  After applying I was offered the position but there was a twist.  The computer science teacher had suddenly resigned and they knew I had experience with computer science and had worked as a computer consultant for the board so they asked if I would take on computer science as well.  That first year there was only one course running with only eight students in it.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

This past year we've offered a combined ICS3C/4C course (Computer Programming grade 11 and 12 college bound) and ICS3U/4U (Computer Science grade 11 and 12 computer science).  We also offered a Dual Credit course in web authoring (Dual Credit courses allow students to achieve a high school credit and a college credit).
ICS3C/4C used Visual Studio C#.  The focus is primarily on programming skills where students develop specific skills (i.e. in the grade 12 creating a program to read an xml file) that they then incorporate into larger projects.  Students negotiate there culminating projects where they have to demonstrate certain skills.  This year we had video games (KFC Falling chicken was very fun to mark), music players for a student who works as a DJ and a program that was a web crawler.
ICS3U/4U used Visual Studio C++.  These are much more intensive courses. By the end of grade 12 students are using Object Oriented Programming techniques.  In addition to programming skills they are required to create and analysis different algorithms (i.e. sorting, searching), research emerging technologies etc.
Web authoring used Web Matrix and students learned HTML5 (CSS and JavaScript).  By the end they create a web site.
I also run the First Robotics Team in our school.  Students programmed the robot (as well as helped to build it). [ED: Ian is the one in the lower right of this picture of his schools FIRST Robotics Team.]

What is your overall teaching philosophy? Project based learning? Flipped  classroom? In short, what makes your CS program “your CS program?”

  1. Learn how to learn - one of my favourite projects I've used in the past is called Programming Primer - students pick a different programming language from what we are being taught in class and have to create a primer that someone could use to learn how to program.  The programming language I used when I was a student at HHS (Watcom Basic) is simply not used anymore.  This project shows them the similarities between languages and develops the independent skills to learn on their own.
  2. Fix it.  I sometimes drive my students nuts - when they tell me their program has a problem I respond "then fix it".  I partner students up with another student who has dealt with a similar problem and get them to help each other.  I will only help when they have spent time working with another student first.
  3. Follow your passion.  Students have the option to negotiate final projects.  They are given a list of skills that they have to demonstrate (some students choose to do two projects since their project may not use all the skills).  Doing a project for an actual client or based on their own interests really seems to connect.  We had graduation the other day and I've already been in touch with students who want to take their projects to the next level since they can see they could actually sell it if they add certain features.
I make my resources available online for students.  This year I used D2L (Desire 2 Learn) so students could work through all the tutorials at home and spend the time on school programming.  D2L shows login information and there is appears to be a pretty solid relationship between the amount of time outside of school students spend on the course and their final grade (no surprise to me but having the hard data to show the first day of school is handy).

What is the biggest challenge in teaching CS at your school?

Even though our school is facing declining enrollment (we had 1200 students six years ago and are now under 900) our cs courses have steadily increased enrollment each year (next year we will have three full courses compared to the 1 class of 8 students!)  Unfortunately our ratio of female students is still very low.  This past year one of my female students ran a great workshop for grade 8 girls using Alice.  I have some plans for the upcoming year to continue to address this issue.
The other issue is that I'm the only teacher in our school and it is the only high school in town.  Staying on top of best practices isn't easy.

What is administration’s support (or lack of support) like at your school?

I had the benefit of spending a year as an acting vice-principal for my school.  Having worked so closely with the admin team they have been very supportive. 

How do you measure success for your program? For your students?

Former grads are the best measure of success.  The students who have gone on to study computer science have mentioned that their marks in computer science courses tend to be much higher than their other marks and they find it very easy.  Enrollment numbers also indicate interest.  I have a fairly large number of students who take all four of the ICS course and almost every student in the dual credit course have been in one of my other courses. 

What is the one thing you like to talk about regarding your program that  I haven’t already asked?

I'm looking forward to adding the University of Waterloo Canadian Computing Competition to my course!

More About Ian on the Internet

For a full list of interviews in this series please see CS Educator Interviews: The Index

Thursday, July 04, 2013

TouchDevelop–Acceleration and GameLoop

Happy Fourth of July! If you are on the Internet today it should be for fun. For that reason I recorded a little video of using TouchDevelop to demo the GameLoop event and the Acceleration sensor on a Windows Phone 8.

TouchDevelop Demo using GameLoop and Acceleration sensor

I have no idea if this is the best way to do things but it was fun and it seems to work. Basically the GameLoop is an event that happens in an infinitely repeating loop as long as the app is running. After adding that event I added some simple code to check on the acceleration, have the Turtle turn based on that acceleration and then move forward a bit. Easy as it gets.

image

I figure this is just a start for experimentations. Let me know if you do anything cool with it yourself.

Wednesday, July 03, 2013

CS Educator Interview: Myra Deister

Today’s computer science teacher interview is with Myra Deister from Sunny Hills High School  in sunny California! As you will read Myra faces some challenges in her school. Some are more easy to overcome than others but she works pretty hard at it all. Quite active beyond her school, Myra is an At-Large member of the CSTA Board of Directors.

Where do you teach? What sort of school is it?

urban high school in southern CA with a diverse student population

How did you get started teaching computer science?

After teaching math in a junior high school I transferred to a high school in the same district.  I had planned on returning to college to earn my masters degree in math but had issues with the faculty at the local state college.  I looked into a computer science masters instead.  I took some courses at the community college as a prerequisite and was very successful. 
There were no computer courses at the high school where I was teaching but a neighboring district was advertising for math teachers so I applied.  I was offered a position teaching math and computer applications.  I accepted the position.  From teaching computer applications I progressed to teaching BASIC, FORTRAN, Pascal, Visual Basic, and then Java.

Describe the computer science curriculum at your school. What courses do you have and what are the focuses of each?

I currently teach:
Introduction to Programming  I am always trying something new with this class.  I have used Alice, Karel J Robot, Scratch, BYOB, Some of Dan Garcia's Beauty and Joy of Computing.  I am always looking for something new to try with these students.  My current issue I have is that they are scheduled in the same period as AP Computer Science A. This class is taught as a hybrid class and I do try to do flipped teaching with readings and videos. This is a one semester course.
Visual Basic  I currently use an outdated textbook that I have to supplement for this class.  I also teach this class as a hybrid class and I use videos and reading to do some flipping.  I have Finch robots I want to incorporate this year.  This is a one semester course.
AP Computer Science  I also use a hybrid approach to this class.  I use Alice and Media Comp as the curriculum as well as some of Stacy Armstrong's A+ curriculum.  I also hope to incorporate some of the Oracle curriculum this year.  I  incorporate some projects in this class but would like to include more. 
Computer Science AB  This class covers Java Data Structures and is a dual credit course where the student can earn 3 units of credit from the local state college.  The students in this class because it is scheduled the same time as AP Computer Science are expected to do much of the work on their own.  I use a combination of the Litvins' textbooks, ICT Curriculum and Stacy Armstrong's curriculum. 

What is your overall teaching philosophy? Project based learning? Flipped classroom? In short, what makes your CS program “your CS program?”

Last school year I received a certificate in Online Teaching because I had been using an LMS to deliver most of the curriculum.  I am moving more toward a flipped classroom as I incorporate more videos into my LMS.  I do lecture and expect the students to use Cornell Notes. 

What is the biggest challenge in teaching CS at your school?

My biggest challenge is recruiting students and retaining them.  The push to include diverse students is great but I have found that I need new ways to reach these students.

What is administration’s support (or lack of support) like at your school?

I have books that are 10+ years old.  After I attended Grace Hopper in Portland, one suggestion I received was to mail home letters rather than have students deliver them.  At my own expense I sent home over 100 letters.  I received several calls from parents inquiring about computer science classes and stating that they had no idea that cs was offered on my campus. 
When I shared this with my principal the reaction I received was that my program is old and she is only promoting the new programs.  Also, when planning the new engineering program, computer science was never considered.  I spoke to the chairperson of the engineering program and he always says he will get back with me.  I hope to speak to the chairperson of the Art Department to see if I can have some of the Media Comp projects included in his Art Show.  We will see...
Last summer, however, I did ask the school board to recognize Computer Science Week and they agreed.  At the first board meeting in December, computer science students from each of the high school were recognized.  I was thanked by parents and teachers at that board meeting for making that request. 

How do you measure success for your program? For your students?

I measure success with my enrollment.  If I can maintain 2 computer classes, I am thrilled.  I would like to grow my program but haven't figured out how to do that. 
I feel I am successful when I hear from former students and they have graduated with a degree in CS with a job in CS. 
Success for my students is having an appreciation for computer science.
For a full list of interviews in this series please see CS Educator Interviews: The Index

Tuesday, July 02, 2013

CS Education Interview: Pat Yongpradit–Code.org

PatYongpraditPat Yongpradit has been an award winning computer science teacher at Springbrook High School for a number of years. He has taken high school teams to the national finals of Microsoft’s Imagine Cup competition where they have outshone university students. He was named a 2010 Microsoft Worldwide Innovative Educator by Microsoft’s Partners in Learning program. He’s also been a frequent speaker at conferences, a valuable curriculum developer and education advisor to schools, industry and elected officials. Recently he made a new move and is now Director of Education at Code.org. I asked Pat if I could interview him about his new role.

Let’s start with Code.org. How would you describe the goals and mission of code.org?

codeorglogoOur mission is that every student in every school should have the opportunity to learn computer science. It’s about more than just coding, we’re just called Code.org because it sounds snappy.
We aim to do this in three ways: Educate. Advocate. Celebrate.
Educate: We aim to bring CS into schools that don’t already have it. First, we are crafting an online programming environment. Second, we are creating a blended-learning curriculum based on many of our community’s ideas of what should go into an introductory computer science experience. Third, we plan to continue making a series of videos featuring celebrities, industry professionals, and CS educators teaching CS concepts. Lastly, we are backing our offerings with professional development.
Advocate: We will continue to do the good work started in the Computing in the Core movement by advocating for CS to be recognized as a graduation credit.
Celebrate: We aim to inspire students, parents, and schools through high level marketing via videos, events, and celebrities.
We are collaborating with the CS education community to reflect the latest and greatest in CS education thought.
[ED: as of this posting Code.Org is in the running for a $50,000 grant. You can vote for them at http://www.azuredevs.com/Programs ]

What is your role in this new organization? How will you be spending your time and energy?

I am the Director of Education. I originally asked if I could be the Secretary of State or the Minister of Defense, but they weren’t having it. All the stuff under “Educate” is what I am charged with.
How will I be spending my time and energy? Emails and conference calls. No, just kidding… though I do see that outside of the classroom, much of the adult professional world is composed of meetings and communication. Fortunately, I get to meet and talk with people I enjoy and about a topic we all care about. I will make the time to hop into classrooms, including my previous one.

You were pretty happy as a classroom teacher. What was it that lured you from the traditional classroom to this new role?

What first comes to mind is the chance to make a difference on a larger scale. But I also started to grow weary of the pace of work when trying to do too many things at once in the cause of CS education. In addition to teaching CS to my students, I was building the CS community in my district, writing curriculum, and advocating for CS education nationally. Now I can focus more and have greater impact. Once I started teaching computer science, I thought I’d retire doing so. Luckily, I still get the chance to do so, but now my classroom is composed of our nation’s CS teachers and students.

Code.org has some ambitious goals for an online learning program. What does the implementation time line look like? Or is that still too early to tell?

Too early to tell. I want to do things right and learn from our community’s successes. I have always been grateful that our community has some great minds leading it and any organization would make a big mistake to not fully consult with the oracles before going into battle. A proverb comes to mind, “Plans fail for lack of counsel, but with many advisers they succeed.”

Who is the audience for the code.org learning platform?

Students engaging in an introductory computer science experience and their teachers.

Many teachers are already showing the videos that code.org has produced. What do you see as the future relationship between code.org and classroom teachers?

To all of my fellow CS teachers, novices to experts: Code.org has your back. We are creating tools and curriculum that will offload some of your work to allow you to focus on what you do best. We are going to have celebrities inspire kids to take your classes and continue their CS studies. We are open to any suggestions you have. Email me at pat@code.org

How did you get to where you are now?

Friends, mentors, and hard work. Friends looking out for me and my students. Mentors who didn’t even know they were modeling to me what it means to be a quality computer science teacher. The hard work to make a vision a reality.
More about Pat Yongpradit on the Internet
For a full list of interviews in this series please see CS Educator Interviews: The Index

Monday, July 01, 2013

Interesting Links 1 July 2013

I started a new series I am calling CS Educator Interviews last week. The first two interviews posted are with Kathleen Weaver and Garth Flint. Check them out when you have a minute. I hope to post about two of these a week over the summer months. If I forgot  to ask you to take part please drop me a note in the comments or via email to act2@acthompson.net.

Microsoft demos Project Spark at the //Build conference. Sort of like Kodu on steroids. Awesome graphics. I can see this appealing to older students.

Check out the latest CSTA Voice! Volume 9, issue 3: Gearing Up for Fall http://csta.acm.org/Communications/sub/CSTAVoice.html …

"CS Principles: Computation in Action" curriculum is ready for download!

Did you miss the ISTE conference? So did I. I did find this summary of ISTE's Top Ten Conversations to be pretty interesting. A lot of chatter about the Surface RTs that Microsoft gave out. Will be looking at how that plays out in the long run.

Thank you Microsoft is a post from @PaulRWood talking about that Surface RT from Microsoft.

A take of a different sort is On (Not) Missing ISTE 2013 by Audrey Watters via @hackeducation

New Blog@CACM post from Mark Guzdial: Why more/better CS education in schools is likely to reduce computing labor shortage.

Computer Science Teachers Association reports on a new http://Code.org Video Released.

CS2013 and K-12 is a preview post of a talk I am giving with two other people are this month’s CSTA Annual Conference. Hope to see you there!

MS Partners in Learning offers Common Core Kit Also the 2014 Partners in Learning Global Forum will take place in...Barcelona, Spain! Read more here:

President Clinton on computer science education Nice (and short) video. I wonder if things like this make a difference though. What do you think?

More women will pick computer science if media nix outdated ‘nerd’ stereotype is an interesting report of some research into how stereotypes are driving women away from computer science.

Why AP CS:Principles is a good thing: Responding to Gas Station without Pumps is a well thought out and reasoned response to some concerns about the new AP CS P course written by Mark @guzdial

On the road with TouchDevelop a teacher talks about his experiences showing off TouchDevelop at several events in the UK. Helpful links to his curriculum as well

Which one is for you? Weak, Strong, Static And Dynamic — An Introduction To Programming Type Systems One of the better explanations I have seen on this important topic.

Stuy CS Software Development Demo Night by Neal Zupancic A visitor to a demo night for high school projects. Held at Google’s NYC offices BTW. Mike @zamansky – the teacher – has his take here at Demo Night.