Wednesday, July 30, 2014

The Troubles with Tutorials

The first thing I ran into with regards to programming tutorials last week was this tweet and accompanying image.

That is of course one extreme but it does seem like some tutorials are like that. Start simple and jump through some complex steps very quickly with little explanation.

Other tutorials take the other extreme. They give one every single step spelled out in great detail. The often try to explain things but the implementation details are such that you can create the program without learning a single thing. A number of online tutorials are like that. They seem great in theory and if someone actually read the explanations they would probably learn a lot. But alas many students will not read any more than what they need to create the project/program.

These are all reasons why I am not a fan of online or overly detailed (or not detailed enough) tutorials in textbooks. I prefer to live tutorials. Students can stop and understand things in a text or an online tutorial of course. I do that myself when trying to learn new things. But far too many students don’t. When doing a tutorial life it is easier to keep an eye on students and see where they are struggling. Plus one can ask questions “why did we use a variable here?” to force students to think about what is actually happening during the tutorial.

At some point though students have to write a program from scratch without tutorial like instructions. This transition can be difficult if tutorials have been too foolproof. If the tutorials have had too large of a jump from beginning to end students may never have success and develop the confidence to attempt a program from scratch. I just don’t think tutorials are enough. I think real teaching with explanations of concepts rather than just steps is necessary for most students. While some may be able to learn just from good tutorials many will need a bit more than that.

What do you think? Are there great tutorials online or in textbooks? What sort of help do students need (if any) beyond tutorials?

Monday, July 28, 2014

Interesting Links 28 July 2014

The highlight of last week was a two-hour workshop on TouchDevelop which I presented to teachers who are part of the New York City Department of Education Software Engineering Pilot program.  That’s me presenting below.Embedded image permalink

There was a great bunch of really smart and enthusiastic teachers there. I hope they enjoyed it as much as I did. It brought me back to Brooklyn where I grew up which was an added bonus. It was great to walk those streets again.

I added a blog by John Olsen to my computer science education blog roll.  Let me know if I am missing anyone who should be there.

Chris Leach @chrisleach78 is working on a list of female ICT icons. That is women in the field of computing who have been recognized for their accomplishments in the field and not icons/images of women. Just to be clear.

An HTTP error 404 is when a web server can not find the page you have asked for. One can specify a specific page to show for this error and one group has really done a 404 page in a special way.

I had to share this list of 10 things classroom teachers need to know about modern school librarians via @LibraryAllegra because its just so true.

My students are always surprised when I tell them that their smart phone has more computing power than the computers that helped men land on the moon. This posts by Dan Bowen explains that that really means - How coding has changed in 45 years

 Building a SHIP – Outreach is the latest post  by Mike @Zamansky talking about the summer program for students to learn computer science that he has been running this summer. Seems like a great program.

There is so much great stuff happening in New York City with regards to computer science education. Mike Zamansky’s SHIP program. The SEP program putting CS in more schools. And the many efforts supported by the NYC Foundation for Computer Science Education (CSNYC). It will be interesting to see how this plays out over time. Will it start making “Silicon Ally” a force to be taken seriously by the people in Silicon Valley? We’ll have to wait and see.

sep_hd11Print

Friday, July 25, 2014

Geeks Pick Nits Even On Jokes

I posted this following image on my Facebook page.

running

Comments came immediately. First one was something like “only one step?” Another said the method should be called inside a loop. Another suggested a more involved loop.

while (stamina > 0) 
{
step++;
stamina--;
}

We could probably go on and on. I just find it amusing that coders just can’t look at the joke and see it at face value. They do, I think, see it funny at face value but they also want to make it better for some definition of better.


Thursday, July 24, 2014

Whack A Mole Project

I’ve done variations in Whack A Mole over the years. I did a Whack Something Game for Windows Phone 7 some years ago for example. But somehow I put it aside and didn’t think about it when I was teaching the last year and a half. This week as the National CS Principles Summit this project came up in one of the presentations. This struck me as a particularly good idea for me to bring back into my own practice. So obviously I started coding. I came up with this.
image
What I have decided I want to do is use this for is to teach objects and classes. I created a MoleHole class. I may have to revisit that name before I go to students though. Suggestions are welcome. The reason for creating a class is that I could allow the class itself to handle showing and hiding the moles. My hope is that students will understand that having the object take care of itself will make things much easier.
The first think I did was to create  (using Paint) a couple of images – one to show a “mole” and the other an empty “hole.”
NoMole MoleNothing fancy and I may ask students to create their own. So many of them are much more artistic than I am. Doubtless one of them will use a picture of me if history is any indication.
Then I created a new User Control. I’m using Visual Studio and C# for this sample by the way. Once created I added the images to the project as resources and loaded the empty hole image as the initial image for the object background.
I have very little code in  the class. The constructor just sets the initial value of the Tag property which I could have avoided by putting that in the properties when I added the initial background image. The one method I wrote changes the background image and Tag value.
        public void Swap()
        {
            if ((string)Tag == "Empty")
            {
                BackgroundImage = global::WhackAMole.Properties.Resources.Mole;
                Tag = "Full";
            }
            else
            {
                BackgroundImage = global::WhackAMole.Properties.Resources.NoMole;
                Tag = "Empty";
            }
        }

Very simple. I add the objects to the form dynamically and included in that is setting the event handler for the click event. The code for the event handler checks to see if there is a mole showing and if there is it increments the score and swaps out the image by asking the object to do it.

        private void Whack(object sender, EventArgs e)
        {
            MoleHole hit = (MoleHole)sender;
            if ((string)hit.Tag == "Full")
            {
                hit.Swap();
                score++;
                ScoreLabel.Text = score.ToString();
            }
        }

The mole appears or disappears based on a timer firing. It randomly picks a mole hole object and switches its image and tag, again, by asking the object to do it.


        private void timer1_Tick(object sender, EventArgs e)
        {
            MH[r.Next(MH.Length)].Swap();
        }

Overall, including dynamically creating and loading the mole holes there are something around 30 lines of code. I think I can get students to manage this. And then I’ll want them to make it better, fancier, more interesting. We’ll see how it goes.

Wednesday, July 23, 2014

Scalable Programming Projects

One of the things I look for in a project is that it is extensible. That means that a reasonable and simple version can be done but that students who want to do more or who want to challenge themselves can make a very special version that is really them. One such project that I have used in a small way is a slot machine program. One of my co-workers came up with a fairly simple assignment of this type.

1. Slot Machine – Create a slot machine with 3 “slots” (containing pictures or colors). For each round, clear the slots until the user clicks on it (or a button below the picture), and then assign a random color/picture. Allow the user to place a bet and keep track of money won or lost depending on the outcome of the spin.

Beginning students create some fairly simple applications to solve this project. Many of them look something like the following.

image

I have seen student projects that involve a number of simple variables  and a long series of if statements. I am too lazy to do it that way myself and incorporated some arrays and loops in my sample program. By adding arrays and loops the door is opened to a wife range of more complicated features. The sample below incorporates 9 different “rows” with a total of 27 different possible winning values. 

image

It also includes scatter prizes and a bonus game for some conditions. Obviously it has more visual elements as well. Conceptually though is it just an extension and enhancement of the first program.

One of the ideas I am working on it helping students from the simple to the more complicated. By showing them how the addition of arrays and looks I hope to show them how to plan for enhancement, extension and addition of more features to an initially simple program. We’ll see how it works.

Tuesday, July 22, 2014

One semi colon away from disaster

At a recent workshop Alexander Repenning said that sometimes teaching programming is “one semi colon away from disaster.” How true that is. Minor syntax issues, especially when dealing with beginners, can make a program look like a complete disaster.

Last school year I had more than a few students come close to panic when a compiler reported dozes, scores or even hundreds of errors. Typically adding a semi colon or a curly brace in the right place made most of the errors “go away.” The words “in the right place” are bold for a reason. At times is seems as though beginners start putting in semi colons or curly braces closely to random locations in hopes of making the errors go away. Sometimes the syntax errors go away but create interesting logic errors. Since too often students associate compiling and running with success the results are not happy for grading purposes.

I’ve been thinking about decorations THINKfor my computer lab. I’m starting to think that a couple of signs might be useful. One would say “Don’t panic” and another one just say “Think” like the old IBM signs used to say. And maybe “slow down to make faster progress.”

Panic is bad as it prevents sound thinking. And speed without thought seldom seems to get people where they want to know.

Returning to semi colons, yes we have to, they are one of the reasons so many people like to use block programming languages. Or other forms of drag and drop programming. They do help with talking about concepts and helping students to achieve some success with programming. But do they help when it is time to move on to “real” or traditional programming languages. It seems like a big jump and research seems to be light on the subject.

I had a conversation at the CSTA Annual Conference and found that there are others who are skeptical of the transference from block languages to traditional ones. We could use some more research on this. Does it work? How can we make it work better? What is the best way to help students with the progression? A lot of questions but in the mean time there are days when we still walk one semi colon from disaster.

Late edit but it belongs here:

comma

Monday, July 21, 2014

Interesting Links 21 July 2014

What a week I had last week. The CSTA Annual Conference, the National CS Principles Summit and then the CSTA Board meeting. I need a rest. I tweeted a lot from the first two events. Not from the board meeting though because that information properly comes through the Board Chair and Executive Director. It took me a while to scan though things but I believe I have some good links to share. I hope you find some value here.
I find it interesting that this is happening. Business schools are realizing that even if you are not a programmer it is valuable to be able to share some common vocabulary and experience with programmers. B-Schools Finally Acknowledge: Companies Want MBAs Who Can Code via Business Week @BW
Delphi for fun - looks like some interesting projects thanks to Peter Beens @pbeens for the link.
One of the events of last week was the National Computer Science Principles Summit. I tweeted about it a lot but you can get a lot of the resources and videos at the CS Principles Summit web site.
Embedded image permalink
Link to Rich Kick's resources for Computer Science Principles
An Office Mix presentation on using Code Hunt A good way to get a quick introduction to what Code Hunt is all about.
Interested in learning more about App Inventor? Follow the link for an online course. http://bit.ly/1jJgUA6
HTML5 Canvas Basics handouts http://www.missblomeyer.com/csta2014 from the CSTA Conference.
Teachers new to programming, nice resource for getting started especially with CS Principles.
Resources from computational thinking through game design workshop at the CSTA annual conference.
510px-Scalable_game_design_logo

Wednesday, July 16, 2014

Save The Date for the 2015 CSTA Annual Conference

Yes, we just finished the Computer Science Teachers Association conference. And it was a great one. You can get copies of many of the presentation decks at http://csta.acm.org/ProfessionalDevelopment/sub/CSTA14/Presentations.html and video of many of them will be available soon. But it is not too soon to save the date for net year’s conference.

The 2015 CSTA Annual Conference will be held July 13th and July 14th at the Hilton DFW Lakes Executive Conference Center in Grapevine Texas. Yes! CSTA is coming to Texas. More information will be coming out in the coming months but you can put the date in your calendar.

WP_20140716_001

Tuesday, July 15, 2014

CSTA 2014 Day Two

CSTA like so many great conferences is as much about learning from face to face informal conversations as it is about formal sessions. CSTA pic 1I’ve been able to talk with a bunch of CS teachers about a bunch of topics. The picture on the right is me, Mike Smith (who I met for the first time) and Laura Blankenship who is one of my favorite CS bloggers.

My first session of the day was about the CS Principles course. Several teachers who were part of the official pilot talked a out how they implemented in their schools. Since it was a pilot course there was a lot of mid course corrections as things that worked well in theory turned out not to work so well in practice. These pilot teachers have done a lot of work that will contribute to a good course as things are finalized before it becomes an actual APCS course.

My third session of the day was also about CS Principles (sense a thread?) during which the team from CODE.ORG talked about the CS Principles curriculum that they are developing.

My second session of the day? Peli de Halleux from Microsoft Research talking about Code Hunt. He showed us how to create our own puzzles and how to integrate Code Hunt into interactive presentations using Office Mix. This combination shows a huge amount of potential. I hope to use it to help students get more coding practice as well and honing their problem solving skills.

The fourth session for me was about just in time programming. It focused around the question “why can’t you write this program?” And dealing with the most common answers?why

The end of the day was a keynote by Michael Kölling which was awesome.  He showed a brief demo of some work they are doing with Greenfoot that is a mix of keyboard and graphical programming. I believe it was recorded and when the video is available I will link to it because I don’t think I can do his talk justice.

Overall a great conference and I am really glad I was here. I’m already looking forward to next year’s conference.

My Big Learning at CSTA 2014 Day 1–Not From A Session

Usually I’m good about writing up the events of a conference at the end of the day and putting up a blog post. Not this time. I blame it on Peli de Halleux from Microsoft Research. Peli is running a Code Hunt Contest for CSTA 2014 Attendees and I have been hard at work on it. Unfortunately I have already lost out on the top prize. I also lost some sleep as I stayed up too late working on Code Hunt puzzles when I probably should have been blogging or sleeping.

The experience has been teaching me a bit about myself. I assumed I would whip though the puzzles and quickly win the contest. Not the case at all. I’m running into two types of problems. One is that I apparently don’t code enough. I keep running into stupid syntax problems. C# is case sensitive and I am a bit more comfortable in Visual Basic which is not. The other language available in Code Hunt is Java which is also case sensitive. Peli tells me that Java is there specifically because so many teachers use it. He is REALLY interested in making the tool educationally useful. So I forget syntax or language features that mean I have to think a bit about that.

The other problem I have is trouble figuring out the right algorithm. In a brief conversation with Peli I found out that there are puzzles with a wife variation in the number of attempts people make. One question for example is solved with a simple division. Many people solve it in a small number of tries. Other people take many many tries and get frustrated. I think there is a research study there for people interested in how people solve problems. Some of the puzzles seem to fit nicely into the way my mind works while others just don’t.

Code Hunt is very “sticky” according to Peli. What that means is that people who start working on it tend to stay working on it for a while. And they return. I suspect that some will get frustrated and stay away but that for people who find it a good way to play and learn it will indeed be sticky.

I’m going to be learning more about how to use Code Hunt features today. Apparently one can use it with Office Mix for example. (I blogged about Office Mix and Binary Numbers with a sample Mix linked.)

And teachers can create their own Code Hunt puzzles for their students. Combining Office Mix and Code Hunt will give me some analytics which I think will help me improve my teaching and student’s learning. Pretty exciting stuff.

Monday, July 14, 2014

Interesting Links 14 July 2014

Another week another trip. Last one of the summer though. I am at the CSTA Annual Conference today and tomorrow. If you are as well look me up. I’ve wearing my hat. Also take a look at the Code Hunt Contest for CSTA 2014 Attendees from Microsoft and maybe win a Surface Pro 2.

Here or not you can participate virtually in the National CS Principles Summit on Wednesday.

(Must Read) Kids can't use computers I’m working on a blog post about this one. I’m trying think about how to teach kids what they need to know.

21st Century Literacy: New Initiative Makes the Case that Learning to Code is for Everyone 

I’m really enjoying reading about the summer CS program that Mike Zamansky @zamansky is running with some others in NYC. Read his latest at Building a SHIP - the Stewards 

An interesting look at what we may be doing wrong trying to get more women in Computer Science How not to attract women to coding: Make tech pink -  via @SFGate

I found a new CS Teacher blog Coding 2 Learn by Marc Scott @Coding2Learn and added it to my Computer Science Education blog roll

Congrats Ohio! You're the 23rd US state to allow computer science to count toward high school graduation.

Embedded image permalink

Let’s end up with a little fun. Think about it.

Embedded image permalink

Sunday, July 13, 2014

Code Hunt Contest for CSTA 2014 Attendees

Looks like you have to be registered for the CSTA 2014 conference for this one. I am and I’d like a Surface Pro 2 which is the big prize. Code Hunt is a very cool project from Microsoft Research (I’ve written about it before and tried it a little with students last year.) The idea is to make coding (and problem solving) a game. The UI is pretty good as it lets one enter and test code with the system showing you results. You have two programming language options BTW – C# (my preference) and Java (like one uses with AP CS students.)

If you are going to be at the CSTA Conference visit the Code Hunt CSTA 2014 web page for more information. For more on Code Hunt itself check out the main Code Hunt page. To be honest I like playing with the puzzles myself. I find it interesting and even challenging.

image

Friday, July 11, 2014

CS Principles Virtual Summit

Are you interested in the new CS Principals course that will be the new (additional) Advanced Placement Computer Science course? CSTA is helping to host a CS Principles Summit next week. While most of us can’t be there in person (though I wish we could) there will be a virtual summit this year. customLogo

Proceedings of the National CS Principles Summit will broadcast LIVE on the web this year using a new experimental format similar to online conferences launched through Google+ Hangouts on Air.

More information is at the CS Principles Virtual Summit web site.  For more information on how to access CSTA's broadcasts, sessions & social networks follow this link.

Wednesday, July 09, 2014

As The Top Universities Go So Goes Who Actually?

Philip Guo had an interesting post on the Blog @ CACM titled Python is now the most popular introductory teaching language at top U.S. universities which summarizes his survey of the 39 top US PhD granting university CS departments. It’s interesting that Python now has a slight edge over Java in those universities. But what does that mean for high school CS? After all that is where I teach and where my current main interest resides.

Does it mean anything at all? There is a big difference between high school students and university students. Sure I have some students who could (and will) get into those top schools but a) most of my students will not and b) even those students are not up to college level work as freshmen or sophomores when I teach them their first programming course. What works at MIT may very well not work at the average high school.

The article doesn’t go into why universities chose Python (or what ever language they did teach) so it is hard to evaluate a need or even a reason to change at the high school level from that article. On the other hand I know that a lot of schools at all levels (middle school though university) are moving to Python. There are a lot of popular options in K-12 that do not show up at the university level.

Scratch is the only visual, blocks-based language that made this list. It's one of the most popular languages of this genre, which include related projects such as Alice, App Inventor, Etoys, Kodu, StarLogo, and TouchDevelop. The creators of these sorts of languages focus mostly on K-12 education, which might explain why they haven't gotten as much adoption at the university level.

So even though they are not used by universities they are used at the earlier years. That makes sense because of the age, maturity and experience level of younger students. Just because universities jump to a new first programming language doesn’t mean that high schools should jump the same way.

Now I know that the AP CS A course tends to follow universities. The exam followed from PASCAL to C++ to Java in its history. Will it follow to Python? Quite possibly if the justification is there. Honestly though I think that if AP CS A is a high school students first experience with programming that is not a good thing.  The article mentions the importance of a first impression of computer science.

Because the choice of what language to teach first reflects the pedagogical philosophy of each department and influences many students' first impressions of computer science. The languages chosen by top U.S. departments could indicate broader trends in computer science education, since those are often trendsetters for the rest of the educational community.

I believe that we have to be a bit gentler at the high school level than the university can be. That is why I don’t automatically follow the lead of the “top universities.” Still I think II ‘d like to see my students have some exposure to Python before they leave high school. Maybe as the first language, maybe as a second or third. I have to learn more about the language and teaching with it first. More learning for my summer I guess.

What do you think about Python? Are you using it to teach in high school and if so what advantages do you see with it?

Monday, July 07, 2014

Interesting Links 7 July 2014

Did you notice that there wasn’t an interesting links post last week? I’ve been on a real vacation with five days of Walt Disney World after ISTE. I spent a lot less time on the Internet than usual. Last week’s posts after ISTE were pre scheduled. Hopefully you found something useful if you were spending more time on the Internet than I was. I have a few links to share today.  BTW a week from now is the annual CSTA Conference. I hope to see some of my readers there.

10 Reasons Why America Needs 10,000 More Girls in Computer Science by Ruthe Farmer of NCWIT @ruthef Probably the best list of reasons I’ve seen yet.

Instead of an AUP, how about an EUP (Empowered Use Policy)? an interesting proposal from Scott Mcleod @mcleod

Last week my favorite Library/Media Specialist (she’s also my wife) posted her first blog post writing about Book Tastings – a method to introduce students to more books.  Please encourage her.

I picked up this fun bumper sticker at ISTE. It’s going on my wall at school.

Embedded image permalink

Friday, July 04, 2014

How Many Languages Can You Find

A little Friday fun from Microsoft. How many programming languages can you find in this puzzle? The first one I found is COBOL FWIW.

programming language word finder

Thursday, July 03, 2014

Computer Science History

Computer science tends to be a very forward looking field. We are constantly looking at the newest things including the future of computers, of programming languages and paradigms, the future of applications and of careers. This is natural with the rapid pace of computing but we should also take care not to neglect the study of computing's past. The old saying that those who do not study the past are doomed to repeat it holds as true in computing as it does in other fields.
We can learn a lot about the future (and the present) by understanding how we got to where we are today and how technology has transformed how we did things in the past. For example, today cloud computing is the trend for the future but it also has parallels with several technologies in the past.
Cloud computing is in many ways similar to the earlier move to client/server architectures. In the past the clients and servers may have been local to each other or even different software on the same computer. Today, the user side is a web browser and the "client" is somewhere out there in a location you may not even know. The client server also has parallels to the early days of mainframe computing. In those days, data entered on block mode terminals or card punch machines was sent to remote systems in climate controlled rooms with limited physical access. Seems a lot like the huge data centers of today doesn't it?
There were also all kinds of issues, both technical and cultural, involved in all of these paradigms. many of them are relevant to today's technologies. But are our students aware of them? Often they are not. The generation that has been involved in computing for many years is reaching retirement and the institutional memory it holds is at risk if we do not pass it on to students today. The problem is that it is difficult to make time to fit computing history into existing curricula or courses. There is little room in an AP CS A course for it, for example. There probably is room for it in the CS Principles course and the Exploring Computer Science course, but we have to do integrate it carefully. A dry memorization of dates, names, and events is dull. It doesn't communicate the richness of the history and it bores students to no end.
There are many resources on the Internet for studying computing history. The Computer History Museum has numerous resources online. The ACM has also made all of the great Turing Award lectures available (in some cases as video) enabling computing pioneers to share what they know with future generations. And speaking of voices of the pioneers, the Computer History Museum has an Oral History collection with interviews and talks by some of the greats.
How can we use these resources in interesting ways? I think it may work best in the context of discussions of the future. Students are very imaginative in their thinking about the future. It would be worthwhile to challenge them to look into previous technologies and developments for parallel changes. Or to ask them to look at the work of pioneers and ask them to project those developments forward to today and beyond. Challenge them to think about the progression of technologies from the past into the future.
We add value to teaching when we go beyond the technology and into the consequences of technology. Students are interested in that. History can help them make sense of the present and the future. And that is something we need to do.
Note: This post is cross posted from the CSTA blog where I post something about every other month as part of my responsibilities as a member of the CSTA Board of Directors. I am cross posting these posts in advance as part of my attempt to take a vacation from the Internet for a few days.

Wednesday, July 02, 2014

Overcoming the Isolation of the Computer Science Teacher

This morning I had a conversation with the other computer science teacher at my school. I told him I wasn't sure what to use for an exercise for my students in Explorations in Computer Science class. This is a brand new course for our school and we are still figuring it all out. I teach 2 sections of it and Tom, the other teacher, teaches three sections of this one semester course. Tom showed me a project he gave to one of his sections yesterday and it looked great so I asked for a copy. He agreed and asked for a copy of the quiz I had given my sections in return.
Like many CS teachers, I teach multiple courses and brand new courses (all three of my preps are new to me this year) can be especially challenging. Fortunately I have someone in the building to help me. Tom and I discuss projects, quizzes, tests, and everything else about our courses. It is a huge help. I know that I have it better than many though.
In most subjects in high school there are several, sometimes many, teachers who are teaching in the same department. Often there are several teachers teaching different sections of the same course. This is more often not the case in computer science. For every teacher I talk to who has other CS teachers in his/her school, there are many more who are the only CS teacher in the building. Sometimes the only CS teacher in a district. It is hard to explain just how difficult that can make things.
Local CSTA chapters can help with some of this isolation. CSTA is working with teachers and university faculty across the US to help establish and support chapters. Increasingly CSTA chapters are able to support teachers in many ways. For many, just being part of a community is a big help. A chance to bounce ideas off of other teachers teaching the same subject can be an emotional as well as informational lift. More and more CSTA chapters are providing professional development opportunities as well.
The annual CSTA Conference is another huge community event for Computer Science Educators. Ironically in many cases teachers are able to connect with other teachers who are geographically local to them while away at this conference. This can lead to the growth of new local communities and CSTA chapters.
Community is an important part of overcoming the feeling of isolation many teachers feel. It can require some effort on that part of teachers though. It may mean some travel. It often means some planning and setting community building as a priority. But it is worth the effort. I hope to see you at the annual conference or a CSTA chapter meeting sometime soon. [Note: The CSTA annual conference is coming up real soon. Hope to see you there.]
Note: This post is cross posted from the CSTA blog where I post something about every other month as part of my responsibilities as a member of the CSTA Board of Directors. I am cross posting these posts in advance as part of my attempt to take a vacation from the Internet for a few days.

Tuesday, July 01, 2014

Don't Panic

I originally wrote this (for the CSTA blog)  near the start of the last school year. I have to say though that as this year ends and I am fired up about preparing for the next year is seems relevant to me now.
The cover of the famous fictional "Hitchhiker's Guide to the Galaxy" reads, in big letters, "Don't panic." There isn't a definitive "teacher's guide to teaching computer science" but if there were I suspect it would have the same message on the cover. Students are back to school in some of the US as I write this and most will be back in the next week or so. As teachers we start the year with all sorts of emotions. Excitement, anticipation, and to some extent a wonder of how it will all come together.
One never knows what will happen once school begins. Oh sure we start off with carefully thought out plans for the whole semester or years. Or at least we tell everyone we do. But plans change as they meet the reality of the classroom. Some years we get start students who force us to move faster than we'd planed. Other times students need a bit more attention and the plans have to be slowed down a bit. Seldom do they go completely as planned. While this happens in many subjects it is a bit different for many computer science teachers as we often have no one else in our building to go to to bounce ideas off of. We can be isolated and alone. I am here to say "don't panic" because there are resources available. You are not alone!
CSTA local chapters have been growing in recent years and they can serve as a great support system. Chapters can be great sources of professional development, networking and opportunities for personal and professional growth. If you are not involved in a local chapter, it is time to get involved. If there is no local chapter, perhaps you can find some help to get one started.
There are resources online as well. Are you signed up for the CSTA listserv? This is a great place to ask (and answer) questions with CSTA members.
The CollegeBoard also runs an online discussion forum for AP CS teachers that is useful for more than just AP issues. You'll need to create a free professional account at the site if you don't already have one. If you're teaching AP CS the account you used for your curriculum audit works just fine.
You can also find information and discussions on the CSTA Facebook page. Yes, Facebook does have educational value.
This year is alive with potential. This can be as intimidating as it is invigorating but "don't panic" the best is yet to come!
Note: This post is cross posted from the CSTA blog where I post something about every other month as part of my responsibilities as a member of the CSTA Board of Directors. I am cross posting these posts in advance as part of my attempt to take a vacation from the Internet for a few days.