« August 2011 | Main | October 2011 »

September 29, 2011

Advocating on the Advocate Blog

Recently I started a 10-week contract, filling in as a Math teacher at a local high school. Naturally one of my early questions was "So what senior computing classes do you have?" The answer, from the principal, was "None". A bit of further digging revealed that a similar school had been told a number of years ago by the local university that they didn't need high school students with any computer science of programming. "Just give us good students".

It is an argument I have heard more than once. What it belies is the fact that students at high school are strongly encouraged to have goals, determine where they are headed, what degree will the need at younger and younger ages.

So if students don't know what computer science, software engineering etc. is, why would they choose it at university? They've probably already settled on a course. And naturally the problem of numbers enrolling into such courses at university linger.

The fear that inexperienced, unknowledgeable teachers will somehow mess the students up has to be exposed for the fallacious nonsense it is. Within days, I discovered that the Math teacher who was most helpful to me starting the new job actually has a Computer Science degree. He was so energized by my talking about high school academic computing that he got a bunch of his bright year 10 students to come to a lunchtime programming club, which we teach together.

I believe that well qualified, expert teachers exist (as I have a number of similar stories) but our administrations need to notice, understand why its important to use them and use them appropriately.

So before I leave, I will seek out the school principal and let him know what a great resource he already has on board.

Margot Phillipps
CSTA International Director

Posted by cstephenson at 06:26 PM | Comments (1)

September 27, 2011

Games as a Great Starting Point

I'm always looking for new ways to start off my computer science and robotics classes. It used to be that every intro class started off with a "Hello World" program. It was the quickest way to have students see a result on the screen. Now, I have choices beyond the standard output line. There's Alice, Scratch and AppInventor to name a few.

In the summer program that I teach and the regular school year, we start off with Scratch. It's easy to work with, even the students who have never had any programming experience can get the sprites to move and make sounds. The tutorial is straight-forward and then they are off creating a game. Because students are familiar with computer and video games, they realize their limitations and often want to learn more, problem solve and research to figure out how to get the features they want to work. It is a tangible activity for them. They can see immediate results; sometimes seeing that what they thought they programmed isn't what the sprite actually did. There are no compile errors to worry about which is a huge plus. It is a great starting out point.

From there, I can tie in various computing concepts (objects, loops, methods, etc.) and get to the "real coding". With forty students in a classroom from no programming experience to "I've programmed in C++ before", it is a good way to start things off with something new to everyone and get everyone engaged.

When all of them play some sort of video or computer game at home and with friends, what better task to lay before them than "By the end of this, you'll be able to make your own computer game". Hooks them every time.

Shirley Miranda
CSTA Board of Directors

Posted by cstephenson at 02:59 PM | Comments (3)

September 20, 2011

Equity-Based Teaching Practices

As we embark on the school year, creating an equitable classroom environment is important for supporting girls and other underrepresented groups in a positive learning experience around computer science. There are several equity-based pedagogical practices that you can employ to ensure that your classroom culture is welcoming and inclusive for all students:

* Provide a welcoming classroom community/environment for all students (i.e. positive feedback, addressing students by name, greeting students at the door, etc.).

* Maintain high expectations for all learners by encouraging students to go beyond the basic level of the task.

* Value and make content relevant to student knowledge (i.e. language, home culture, personal interests, pop culture, etc.).

* Use multiple learning modalities to connect to different learning styles.

* Provide academic supports for English language learners.

What other pedagogical practices do you implement to provide a welcoming and inclusive classroom culture?

Joanna Goode
CSTA Equity Committee Chair

Posted by cstephenson at 12:21 AM | Comments (1)

September 14, 2011

I'll Have Some AppInventor with My Java, Please!

I jumped on the AppInventor bandwagon at a workshop at SIGCSE 2010 and believed that my students would really enjoy building apps for Android phones as much as I did. My experience is that students (of all ages) get excited when their program makes a physical object actually do something. So, later that school year, I introduced AppInventor to my students after the AP exam and tasked them to design an app of their choosing for their end-of-year project. I thought this would be a good way for them to put what they've learned all year to good use. My school finishes up the school year around the third week in May which is not too long after the AP exam. Unlike many AP teachers around the country who give extensive post exam projects, we just don't have that luxury in my school district. A short AppInventor project seemed to be a good fit for the limited amount of time we had.

This year is a different story. As my school wraps up just eight school days after the AP exam (and this includes four days of final exams), there will not be enough time for the introduction of this tool as well as time to do any significant application development. I was in the middle of a summer camp working with students and AppInventor when I realized that I could incorporate small AppInventor projects throughout the school year to complement the topics we are learning in Java. The students will then have the opportunity to design their own applications from the ground up for their end-of-semester project and experience a taste of what software engineers do:

* brainstorm an idea for a program based on a perceived need,
* determine what functionalities the program should have,
* design the user interface, test and debug the program, solicit feedback from users, and
* revise the program as necessary.

Contextualized approaches to learning programming are not new, but I haven't found anything that jazzes my students as much as AppInventor has.

In addition to complementing many of the topics in the AP curriculum, I am hopeful that designing real-world mobile applications will help students understand that computer science is more than just programming. I want them to see the creative side of the discipline. I want them to experience the software development life cycle. And, more importantly, I want them to have fun!

Ria Galanos
CSTA 9-12 Representative

Posted by cstephenson at 06:42 PM | Comments (0)

September 12, 2011

What Makes a Workshop Work?

This past summer marked the addition of a full day of workshops to the CS&IT Symposium. More than 120 individuals attended morning and afternoon sessions on a variety of topics, such as BYOB Scratch, Google AppInventor, Videogame Programming, and AP Teaching. I'm happy to report that the day was very successful, with 97% of attendees rating "Session effectiveness" as either Good or Excellent, and 98% of attendees rating "Met expectations" as either Good or Excellent. Thank you to all of the session presenters who made the first CS&IT Workshop Day go so well.

The experience of chairing the workshop sessions prompted me to reflect on workshops that I have attended over the years. Many have been instructive and inspiring, but others have been demoralizing wastes of time. To me, an effective workshop has to have a significant hands-on component, but it also has to provide enough conceptual content to allow me to build upon what I have done. If it doesn't enable me to continue learning on my own afterwards, it is really nothing more than a few hours of entertainment and/or confinement.

For example, I attended an outstanding workshop some years ago on Bioinformatics Education. The session integrated engaging hands-on exercises, but also provided conceptual background and resources for going beyond the exercises. It inspired me to dig deeper into the material once I got home, and I learned more after the workshop than I did in those few in-class hours. In contrast, a disappointing App Development workshop I attended led me through the development of some really cool applications, but no conceptual understanding of what I was doing. I left the workshop with some impressive apps, but absolutely no idea how I would do anything else.

I'm curious how other people view workshops.

What do you look for when you register for a workshop?

What features do you think are necessary for a workshop to be effective?

What are the biggest mistakes that you think workshop presenters make?

Please share your thought, and if you have a great workshop that you have attended and want to plug, have at it.

Dave Reed
CSTA Board of Directors
College Representative

Posted by cstephenson at 06:06 PM | Comments (1)

September 09, 2011

Knowing That Order Matters

The start of a new year puts me once again in front of a second semester class, using as text the pdf of my book that is about to appear (shameless advertising). And once again I am trying to teach students more about organization and structure than about programming per se.

At least half the battle in writing correct programs is just making sure not to make mistakes in the routine stuff. Yes, there's a lot of detail involved in writing correct programs. On the other hand, a lot of that detail is just knowing that it is just detail.

I have students who can't get Javadoc to generate the documentation, but who don't seem to understand that it's not just having the documentation in the program, it's having the documentation in the program in the right place in the program. Knowing that order matters is important. (As one of my university professors once said, "Life is not commutative. Try exchanging the order of having the traffic accident and buying car insurance, and you will understand that.")

It's all about information. What information does the Eclipse tool have and what does it need to have? What information does the Java compiler have, and what does it need to have? What information does the program have, and what does it need to have?

Duncan Buell
CSTA University Faculty Rep.

Posted by cstephenson at 04:20 PM | Comments (0)

September 06, 2011

What Did You Do This Summer?

Well, it's back to school time and most of us have done some professional development over the summer to rejuvenate and enhance what we are doing in the classroom.

I had the privilege of attending MIT's CS4HS offering in July, sponsored by Google. The focus of the three-day workshop was on using the Scratch programming language as a means to teach computational thinking skills using design based learning. Mitch Resnick and Karen Brennan of the Lifelong Kindergarten Group led the workshop and did an amazing job.

I must report, I drank the koolaid. The experience was exciting, motivating, and energizing. The forty-four educators, administrators, and researchers who participated were definitely buzzing with excitement. By the end of the workshop, there was a definite cult atmosphere in the room. The workshop was broken down into themes: art, stories, and games. Participants were given ideas and instruction on developing projects in all areas. Much time was spent on individual work related to a theme of interest.

It was a real treat for most of to have a solid chunk of time to play with Scratch, bounce ideas off of our colleagues, and to explore the possibilities. Most participants reported staying up until the wee hours of the night to work on their individual Scratch projects. It is an addictive tool, so easy to use, intuitive, and very engaging. I am excited to bring what I learned back to my school and to figure out the most effective way to implement Scratch with my high school students.

What about you?

What professional development did you do this summer that got you pumped for the school year?

Karen Lang
CSTA Board of Directors
9-12 Representative

Posted by cstephenson at 01:42 PM | Comments (0)

September 01, 2011

Creative Computing with Scratch

I recently had the good fortune to participate in this year's Creative Computing workshop at MIT. The program, which ran from July 27-30, was organized by the MIT Media Lab in collaboration with Google's CS4HS initiative. The four day workshop provided K-12 teachers with an opportunity to explore computational thinking and creativity in the classroom.

Over the course of four days, I met with teachers from around New England (and some even as far away as California) to experiment with new educational technologies and instructional strategies to engage students in creative design activities. The workshop focused on Scratch as the vehicle for cultivating creativity and problem solving. Scratch:


a programming language geared for children and teens, was developed at the Lifelong Kindergarten Group


at the MIT Media Lab and was created to provide children with the opportunity to learn how to design, create, and express themselves through technology. I saw the workshop as the ideal vehicle for me to develop lessons which will motivate my students to become creators, not just users, of the technology that permeates their world.

During the workshop, I experienced first hand the joy and wonder that Scratch brings to learning. We started the program by exploring three essential questions:

(1) What is Scratch?,
(2) What is Scratch good for?, and
(3) What is good Scratch?

My initial response to those questions was pretty straightforward. Obviously, I knew what Scratch was and I believed that I knew what Scratch is good for, and I definitely thought I knew what was good Scratch. But over the course of four days, as I built new computer programs with my colleagues, toured the Media Lab, and heard from a variety of experts, I came to realize that these three questions mean more than I had ever imagined.

I discovered that Scratch is much more than a computer programming environment. It is a community. Scratch is not only good for making computer games, animations, stories, and art. It is also good for making social connections. It is a place where today's technologically savvy students can come together to exchange sprites, remix programs, and collaborate on projects with other Scratchers. The same experience of sharing and collaborating can be found at the educator's website, ScratchEd


And good Scratch, well, that is what ever you want it to be. As a teacher, I feel that my students produce "good" projects when they are actively engaged in the learning process. For the most part, every time a student builds a Scratch program, engagement takes place. I can't wait for the school year to begin so my students can start "scratching."

Patrice Gans
CSTA K-8 Representative

Posted by cstephenson at 02:17 PM | Comments (0)