An extra reason for you to head south this July!

July is probably the most important month in the CSTA agenda: it is the time of year when computer science teachers from all over the world join to exchange ideas and practices while attending the premier professional development event tailored specifically to their needs.

This year, the CSTA Annual Conference will take place from July 12th to 14th in Grapevine, Texas; the lineup of workshops and presentations is so stimulating that many of us will have a hard time choosing which concurrent session to attend! But this year there’s an extra reason to head south, that many attendees may not be aware of: it so happens that this year the Annual Conference of Wikimedia* enthusiasts from all over the world will be held from July 15th to 19th in Mexico City, Mexico.

The conference is aptly named “Wikimania”: ask any long-time Wikimedia editor why and she’ll talk passionately about the values of the largest crowd-sourcing community in the world. I, for one, have been a Wikimedia editor since 2007 and most of my edits have been made in the context of school projects involving students of all ages in Grades 7-12. Over the course of nine school years to date, my classes have gained skills, knowledge, appreciation for teamwork and pride in contributing to five of the total fifteen Wikimedia projects in two different languages; it’s been an absolutely priceless experience, and every year it just gets better.

The Wikimania conference is annually held in a different place in the world since 2005.The conference program encompasses a number of tracks, which means there is always something fascinating going on no matter what your interests are: this year the first two days (15th-16th) will host a Hackathon (or DevCamp), followed by three days of workshops, presentations, quick meetings and much, much more. The tracks that educators will  be most interested in are, no doubt, Education and GLAM (that’s Galleries, Libraries, Archives and Museums)… and of course, computer science teachers and enthusiasts will be sure to enjoy the hackathon.

Each year the Wikimedia Foundation awards around 100 Wikimania scholarships to active members of the worldwide Wikimedia community to cover travel and accommodation expenses; I am proud to be one of the two Greek Wikimedians who earned a scholarship this year. So, why not join me as I head further South after Texas this July?

All in all, an exciting week of professional development, hacking, learning and sharing (not to mention, tequila parties!) lies ahead this summer… hope to see you in Texas and Mexico:)

More information about registration here (link should be active in a matter of days)… or just drop me a line and I’ll be glad to assist.

Read this post for more about how integrating Wikimedia projects into your classroom can enrich your students’ learning experience.

*Wikimedia is the “umbrella” Foundation for Wikipedia and it’s 15 sister projects.

Mina Theofilatou
CSTA International Representative
Kefalonia, Greece

Welcome to our treehouse

This is a guest blog post by Kim Douglas, a student at UMass Lowell. Kim has a BA degree from Emerson College in Animation & Motion Media.

When people ask me what I’m studying, and I tell them that I’m pursuing a degree in computer science, they usually say one of two things.

  1. “Oh, I totally should’ve done that. Tons of great-paying jobs in that field!”
    or,
  2. “Oh, I totally should’ve done that. But I’m not smart enough.”

I usually just smile politely and deflect, because these conversations tend to happen with adults who are well on their way, doing whatever they’re doing with their lives. But the truth is, responses like this frustrate me.

I wonder if the people with this first response are being earnest; whether their interest is for the right reasons. After all, everybody hates it when their favorite song becomes popular—especially if that song came from a collection of painstakingly curated mixtapes. I’ve only been programming for a few years, and still I feel this way.

Here I am, just halfway up the ladder to the neighborhood treehouse, and I already want to put up a “KEEP OUT!” sign for the kid behind me!

tree-house3

Then I think about how computer science makes me happy, and how it makes other people happy. Now, the second response—“Oh, I totally would’ve done that, but I’m not smart enough”—is even more frustrating. Because chances are, it’s just not true!

These people probably are smart enough, but got intimidated by the steep learning curve nonetheless. Yes, we should blame the media for that, but we should also blame ourselves. People start to see the KEEP OUT signs at a pretty young age.

Wait, come back! We need your hammer to fix our treehouse!

I am a researcher in the Middle School Pathways in Computer Science project, which is designed to make it so that Johnny who lives next door (and, in particular, Sally, Jane, DeShawn, Rudjit, Liliana, Esteban, and Amira) never see the KEEP OUT sign in the first place.

In my first week in project classrooms, an eighth grader—let’s call him Jake—asked me if I went to MIT. Understandable, since App Inventor has MIT literally written all over it.

“No, I go to UMass Lowell.”

“Can you make apps?”

“We make all kinds of cool stuff! So can you.”

“Nah. I’m not smart.”

Inside, I hang my head. I show him a demo app I had made in the fall, as part of the teachers’ professional development. It has pictures of some planets whose buttons play audio files and change colors when you press them. It’s no Candy Crush, but Jake is visibly more interested in it than the text-to-speech button he’d just made.

planetsApp

“Of course you’re smart. You can totally make something like this.”

“I can’t. I told you—I’m not smart, I’m an athlete.”

“Athletes can’t be smart too?”

“Well, they don’t have to. I’m gonna play basketball in college, and all you really need to get in on an athletic scholarship is a C.”

Then I show him an app that another teacher had made—this one is similar in its functionality, but has pictures, text, and audio clips of different people talking about the Ferguson protests. His eyes widen. He takes the tablet from me and starts playing with the buttons.

“I know about this!”

I think at this point in his life, Jake is more excited about making a basketball game app designed to rack up mad points than a Ferguson app designed to provide social commentary. He’s thirteen, after all.

But that’s okay. When he played with the app, he saw people that looked like him. He didn’t see a KEEP OUT sign.

The next week, Jake was a little more engaged in the lesson. He got further than some other kids on that day’s tutorial, and even gave them pointers on fitting the blocks together. They went back and forth between their workstations, laughing at the sounds they could make the tablets produce, playfully chiding each other’s screwups, and peering at how the next kid fit her blocks together.

I think, overall, it’s going pretty well.

For more, see Kim’s blog at http://kmbrlynn.github.io/weblog.

End of year thoughts

Its that time of year for end-of-year projects, crazy state testing schedules (in Ohio at least) and other random activities. As an end-of-year project, many of us assign open ended projects so our students can demonstrate their knowledge, do something that interests them, and to stretch their minds. This year I have a very eclectic group of programming students and have been surprised many times by their interests and abilities. This end-of- year project is no exception.

What I have learned is that they are stretching my brain in the process of stretching theirs.  I have spent more time sitting next to students analyzing a problem, discussing possible solutions, teaching them a particular construct that they need that maybe we haven’t covered, and loving every minute of it. I have been busier than normal with questions and they are not slowing down.

This project had a component in it that previously failed with another class. However, I think it is what has pushed this group to envision possibilities. In the students project plan I had them give me four different variations of the program they could do – “something that works”, “average program”, “extras included”, and “the sky is the limit program”.  This group really thought about what they would do to have something working and then many different possibilities of the other versions. Most of the students are shooting for the sky and I am thrilled to watch them. Unfortunately, with time constraints, many will end up in the “extra” version of their program but even that will far exceed my expectations.

This class of students has reminded me of the old saying about if you have high expectations the students will rise to the occasion; however, in this case the students have the high expectations and are working hard to not let themselves down. These past couple of weeks have reminded me of why I am a computer science teacher and just how exciting CS can be when “the sky is the limit”.

Extending a conference invitation to your administrator

By: Pat Phillips

As you are well aware, the Annual CSTA Conference is only a couple months away. Registration and housing are open, the agenda nearly set, and anticipation is soaring for another extraordinary program of workshops, sessions, and events. This is a wonderful event for CS and IT educators to learn about new tools, teaching resources, pedagogy, and all things CS education professional development.

But what about your administrators? Is your district rich in CS education or just at the beginning stages of building a strong program? Are there administrators, principals, curriculum directors, or IT professionals that you just wish could know what you’ve learned about why CS education is vital to a 21st Century K—12 program and a vibrant community? Why not invite them??

There are dozens of reasons for them to attend! You know how contagious the excitement about CS gets at the conference…what better way than to share that excitement with the people who can make a difference in your program.

Go ahead. Send this link to all of your administrators with a note about how excited you are about attending, why it’s the best CS education conference, and why you hope they might come along. cstaconference.org.

Did you hear?

CSV, Resume, Glasses

Photo courtesy of Ben-Avraham

At this time of year, you may be hearing this phrase just before some news about a colleague retiring, taking a new position, or deciding to stay home with the children. Spring is the season of applications and resumes for educators all around the country.

If you haven’t checked out the CSTA Job Board yet, now is the time! So often we are the only Computer Science teacher in a school and having to find a new position can seem daunting. As a job seeker, the Job Board allows you to upload your resume and even set up search alerts to let you know when a position is posted that meets your criteria!

What if you are in the envious situation of having done such an excellent job of recruiting that your school needs to hire another Computer Science teacher? Tell your Human Resources department about the CSTA Job Board. Your school wants to have a highly qualified applicant pool for such an important position. They can get that from the CSTA Job Board, where they can look at many resumes and post a detailed job description.

CSTA Career and Job Center

Tammy Pirmann
District Representative, CSTA Board of Directors

How to prepare educators to teach coding/CS

As part of my role as the CSTA Board member for K-8, I have been working with an amazing team of computer science (CS) educators – the CSTA K-8 Task force to host Twitter chats every other Wednesday using the hashtag #CSK8. The last chat was on the topic  – ‘How to prepare educators to teach coding/CS’. This chat generated an interesting discussion among educators and made me think more on how much CS content knowledge is necessary at the K-8 level. Can we reduce or eliminate professional development (PD) completely to quickly address the shortage of teachers?

Several CS advocates believe that with two powerful strategies – online self-guided tutorials and peer instruction, teachers need little or no PD to teach CS. Coding clubs run by volunteers who have limited experience in CS, but hand out solutions, point to videos and peers are coming up everywhere. While this approach may work in after school situations, can this work in schools trying to reach ‘all’ students? The emphasis is on the “all,” reaching every student and not only those already interested or confident of learning CS. We expect K-8 Math teachers to know some math, should we expect teachers who teach CS to know at least some CS?  If CS is to include more than coding (which it should!), does the answer change?

Based on my last six years of experience teaching CS to 6th graders across a public district in California, I want to share my concerns about relying on online courses and peer instruction to reach all students.

Online tutorials have many advantages and work well in so many cases, that it is very tempting to focus on that success alone. It is tempting to ignore all those who do not learn well by passively watching videos and those who need the concept explained again in a different way. It is also easy to celebrate the cool structured projects made by students following an online recipe and declare that they have learned to code. Some of my students who have completed an entire online course of structured exercises on their own, are unable to solve simple debug challenges or make a completely different kind of project. That certificate or badge from their online learning site does not mean they have actually learned the why and how behind the coding concepts. It does not mean they are expert problem solvers, or understand basic algorithms.

Peer instruction is a powerful teaching strategy and I use it extensively. The advanced student who has finished the exercise is challenged to help someone else. Students love teaching others, and learning from others. However, I often find that peer instructors quickly fix the problem without being able to show the thinking behind the solution. Even though I strongly encourage my peer instructors to explain and not actually touch the keyboard, it does not always work. These peer instructors are more advanced  coders, but are not necessarily natural teachers. In later projects, struggling students then start relying on this group of student experts, further reinforcing the belief that they can never do this on their own.

Adult teachers are more likely to guide / encourage/ give hints/re-explain and help the student discover and learn the concept rather than just give them the solution. Teaching is messy after all, and takes work. Instead of quickly pointing to a video or giving the solved solution/recipe, teachers who know the content can focus on explaining the fundamental concept. In addition, as the twitter chat pointed out, if PD  comes from actual teachers in the classroom, educators can learn beyond the CS content. They can also learn strategies from experienced teachers on what specifically works well in the CS classroom. This can further increase the chance of success with all students.

So going back to the the question  – should educators have some CS experience, my answer is yes. Of course, depending on the age group they are teaching, the ‘some’ varies. Teachers do not need advanced degrees in computer science, and can always be learning more along with their students. However they must have some CS content and pedagogy knowledge so they can inspire, engage, and guide every student. It is especially important if we are to reach students who are struggling or believe they do not fit the CS stereotype. These students are not excitedly watching videos online, they need help from a human teacher. Preparing our educators to teach CS is the only way to reach ‘all’ our students, and address the equity issue in computing.

(See more on this topic by reading responses from a variety of educators on the #CSK8 chat archive at https://storify.com/xanekka/csk8-csta. For archives of other CSTA K-8 Twitter chats and other topics of interest to K-8, check out the CSTA K-8  g+ Community at http://goo.gl/Zx3Dh2 

Sheena Vaidyanathan

6th Grade Computer Science Teacher
Los Altos School District, California
CSTA Board Rep for K-8

Nifty Assignments from SIGCSE

I got back last week from another great SIGCSE Conference. If you don’t know about it, SIGCSE is the annual conference for the ACM Special Interest Group on Computer Science Education. While the conference has traditionally focused on higher-ed CS, it has been putting greater emphasis on K-12 topics in recent years, including a special two-day registration rate for K-12 teachers.

For many attendees, myself included, the highlight of the conference is the Nifty Assignments panel, which is run each year by Nick Parlante and Julie Zelenski. This panel presents creative, classroom-tested assignments, along with resources to help teachers adapt the assignments to their courses. These assignments can range from the simple and creative, to the complex and mind-boggling. Personally, I have been inspired by a number of the nifty assignments over the years, and have integrated variants of nifty assignments in my courses. This year, two of the nifty assignments particularly appealled to me, due to their “niftiness” and relative simplicity. Peter-Michael Osera presented the Speed Reader assignment, which had students write a program (in Python) for displaying words in succession and measuring a person’s reading rate. Stuart Reges presented the GeoLocator assignment, which had students write a program (in Java) that utilized the Google Map API to locate and calculate the distances between landmarks. Both assignments were farily simple to understand, could be easily ported to different languages, and would be motivational to many students.

All of the Nifty Assignments from past years can be found online at http://nifty.stanford.edu. Check them out if you are looking for inspiration on creating or adapting your own “nifty” assignments.

Dave Reed
College Faculty Representative, Chair-elect

Doing computing means embracing failure

We always tell ourselves and our students to take risks. But taking risks means that we will fail at things. And generally, none of us like to fail.

Think about what it’s like to write code. Most of the time, the code is broken, and you’re failing.

This semester, I’m watching my students struggle with assignments in our sophomore-level object-orientation in C++ programming class.

We’re working through a series of two-week projects. The projects are pretty fun:

(There are more—this material is from Princeton’s COS 126 course.)

From the students’ point of view, there are a lot of steps to get to a working system:

First, to understand the basic problem. What data structures will we use? How does the algorithm we’ll use work? How will it all be organized into objects?

Next, starting to write code. What goes in the header file? What goes in the source file? Why is there this separation anyway?

OK, I have some code. Let’s try compiling it. Oh great, tons of compile errors. Of course.

OK now it compiles. Does it work? Not a chance.

Well, time to debug… where do I start? Probably printing some stuff out… how about seeing that I can read the command line arguments properly?

And so on.

Probably the most challenging part is at the very beginning—making sense of the task itself, and how it’s to be accomplished.

I encourage my students to do their work in baby steps. Just write a few lines of code, compile it, and make sure it works.

Only add more code after you have a little bit of code working.

Compile and test before moving on. Make sure you are going from a working thing to the next working thing.

But even with this strategy, as soon as a bit of code is working, the next step is to add more code, which means breaking it again!

Most of the time, things are broken.

It takes a high tolerance for failure like this.

I do believe that we learn best when we encounter challenges.

And the beauty of our practice is that we’re so readily able to get feedback on the quality of our ideas. Since our ideas are expressed in machine-executable form, we can debug them.

But it is hard, emotionally demanding work, and it’s important that we recognize how much effort our students put in to accomplish their successes.

Terry Dash, a CS educator in Massachusetts, just described to me a teaching experience she had teaching Scratch to middle school students. Midway through the school year, her student Erica cried out during class, “Now I get it! The more it breaks, the more fun it is!”

That’s the spirit!

yours respectfully,
Fred Martin
CSTA University Representative

CSTA Funding Committee

Another of CSTA’s standing committees is the Funding Committee. Our charter is to support the initiatives of the CSTA, and help ensure the sustainability of our organization.

We keep an eye out for federal and other grant opportunities, and then we bring together groups of CSTA people and others to hash out the ideas and ultimately submit proposals.

A lot of the practical fund-raising work is also carried out in a continuous process by Lissa Clayborn, our acting executive director.

The Funding Committee is led by Fred Martin (chair) and Dave Reed (co-chair).

If you know of a grant opportunity that’s a fit for the CSTA, please let us know!

Yours,
Fred Martin
University Representative

Barriers to Pair Programming (and solutions!)

A hot topic at the New Mexico Computer Science for All (NM-CSforAll) wrap-up meeting held on January 3rd, 2015 at the Santa Fe Institute was barriers to pair programming. NM-CSforAll has been actively promoting and preparing teachers to use of pair programming and peer instruction with our diverse student population that includes a high percentage of Hispanic and Native American students. Over the past two years we have repeatedly heard from participating teachers that these methods are not easy to implement so we set aside time to discuss the barriers teachers encountered and solutions suggested by fellow CS teachers. Here is what we learned:

  • In general, new CS teachers experienced difficulty supporting the wide range of skill levels among students in their CS class(es). Some students had prior experience in computing while others were totally new to computing. When using the pair programming methodology, sometimes the more experienced student did not want to switch out of the “driver” role. Suggestions to deal with this situation included:
    1. Carefully constructing pairs taking into account the needs and dispositions of each student.
    2. Avoid tracking students based on ability.
    3. Monitoring to make sure students switch roles.
    4. Reiterating benefits of pair programming often.
    5. Practice occasional individual programming and reflect on the difficulties of working entirely alone.
  • Communication with fellow students can be difficult for students from different cultures. Suggested interventions included:
    1. Providing students with pair programming prompts such as “what do you think we should do next?”
    2. Showing videos that demonstrate how to “pair program” such as the one from Code.org. (See http://youtu.be/vgkahOzFH2Q)
    3. Practicing and modeling pair programming frequently.
  • Students who come into the class already knowing other students are often unwilling to work with a student they do not know. Suggested solutions included:
    1. Frequently switching the pairings.
    2. Reiterating that pairs will be reassigned often, “it’s not forever.”
    3. Providing students with opportunities for feedback on the pairing and the work produced by the pair.
    4. Using a Gallery walk as an occasion for students to discuss their project with fellow students and find common interests and working styles. Sometimes this leads to new successful partnerships and pairings.

Thanks to the CS teachers who contributed to this discussion: Amanda Dunlap,

Alan Daugherty, Michael Steele, Julie Scott, Rowena Dolino, Melody Hagaman,

Joanna Stitt, Elvira Crockett, Barbara Teterycz, and AnnNet Delaney.

–Irene Lee

CSTA CT Task Force chair