About high school computer science teachers

I’m giving a talk at PyCon next Saturday about teachers. The title is “What teachers really need from us“.

The first thing I should admit is that when I started thinking about this talk, I was sure that the list of what teachers needed from us was really long.

Then, I started actually talking with teachers.

So, here’s what some of them have said:

  • Reading comprehension is the biggest barrier to completion of AP Computer Science (Page 8 of this AP CS course description)
  • Fighting for continued existence is the biggest battle for a computer science teacher every year. “The number of secondary schools offering introductory computer science courses dropped 17 percent from 2005 to 2009 and the number offering Advanced Placement (AP) computer science courses dropped 35 percent in that time period.” December 2010 report
  • Writing personal letters from a teacher to students and parents increased the number of girls in one teacher’s class (in Virginia) from nearly zero to 50%. Research into increasing the number of women and minorities in CS classrooms is available in Stuck in the Shallow End.
  • Students at a high school learned three languages in three years. (C++, Java and Python) This busted so many notions I had about how long learning to program takes or what languages are most appropriate for beginners.
  • Kids don’t need algebra to learn to program. Algebra is a weeder course, often a prerequisite to CS and one that strongly indicates whether or not a student will graduate high school. What if kids could take an “algebra on computers” course instead of failing out of school? Please note, learning to program is not the same thing as being a professional programmer.
  • School counselors who help kids choose classes still send students to CS class believing that they’re going there to learn to type. Find out more about the wildly varying understanding state-by-state of what a computer science class really is in the Running on Empty report.
  • What teachers wanted from me was for me to come to their classes and give a short talk to their kids about myself and my work.
  • Teachers were super excited to hear about PyLadies. They struggle to get girls into their classes and are all looking for ways to increase the diversity of their classes.
  • The CS teachers I’ve met want to share their lessons – with me and with other teachers.
  • The CS teachers I’ve met don’t know other CS teachers.
  • Teachers were only mentioned once in the 84 initial statements of support for code.org

I think we’re all really missing out when we don’t talk to teachers.

I’ve talked directly with nine computer science teachers. Most of them are in Oregon, but I also was introduced to a couple teachers who came to Python-related conferences, or were married to Python programmers. I’m hoping to meet more. If you know someone, please put them in touch with me. I’m happy to chat over the phone or email, and love to meet folks in person.

12 thoughts on About high school computer science teachers

  1. Thanks, Selena — this is really interesting.

    Students at a high school learned three languages in three years. (C++, Java and Python) This busted so many notions I had about how long learning to program takes or what languages are most appropriate for beginners.

    Can you elaborate on this? I’m curious what notions you had and how they changed after talking to teachers.

    I imagine that high schools are under pressure to teach to the AP CS exam, if they have the opportunity to teach CS at all, and that the exam would dictate the choice of languages, regardless of what’s actually appropriate for beginners. Did any teachers you spoke with have comments about that?

    • I thought of introductory programming class like something that would take multiple years, and that students who came to class with nothing would have a terrible time catching up with the kids who had computers at home. I couldn’t explain really why I thought this stuff. My experience wasn’t like that, for example. I just had a lot of baseless notions. :)

      The AP CS exam definitely dictates what language is taught for AP CS. I’m less convinced that the language matters all that much. The more important thing to consider is what the kids get to do with whatever language they learn.

  2. The “learning to type” thing bugs me not just because it shows a vast misunderstanding of the point of a CS course, but also because it implies that a student in high school should still need a typing course. Seriously, middle school seems a bit late for that, and late elementary would be even better.

    • Sure. :) My point about that is that we have a big problem with definitions and explaining what computer science is. This is our problem, and we need to take some time to figure out how to fix the world’s impression of what it is that CS and programming mean.

  3. Here, at (public) Stuyvesant High School in New York City, we teach a semester of Scheme and Netlogo (a superb language), and a semester of Python to all of our 800 sophomores (required courses). Then, for their junior year electives, students can take A.P. Comp Sci (a year of Java), and in their senior year, if they’re interested in comp. sci.: a semester of computer systems theory and networking software, and a semester of computer graphics in C, or, instead, a year of software development. Of course, given the competition with other science and math electives, only 100 seniors end up taking the senior comp. sci courses.

    We have 7 full-time comp. sci. teachers, all of whom, I can say without hesitation, love what they do.

    • > We have 7 full-time comp. sci. teachers, all of whom, I can say without hesitation, love what they do.

      I love it! Do you have any links to share to the high school, the lessons or anything about the teachers?

      EDIT: Duh – here’s the link — http://www.stuycs.org/

    • This is great, but when readers ask themselves why more schools aren’t like this, it would be helpful to know what kind of school Stuyvesant is. Stuyvesant is a public high school, but it is one of NYC’s Specialized High Schools.

      Students who want to attend Stuyvesant must take the Specialized High Schools Admission test. This is a strict placement test; the only way into Stuyvesant is to take the test, and score higher than just about anyone else in NYC. Among the specialized high schools, Stuyvesant has the highest cutoff score on the admissions test.

      Most schools should do a better job of teaching computer science. Please be aware of Stuyvesant’s model when comparing it to other high schools.

  4. Pingback: Blue Note Tech Blog » Teachers Are the Key to Everyone Learning to Code

  5. I teach at Bellaire High School in Houston, TX where we have two courses: a ore-ap course and the AP course. I would love to be a part of a conversation about cs education. I just started fiddling with Arduino stuff and I think I’ll use the stuff in ap comp sci and ap physics. Perhaps encouraging the maker mentality can spur some cross-curricular work.

  6. Pingback: Dez anos » Four short links: 11 March 2013

  7. For anyone interested in K-12 computing education, I highly recommend getting connected with a local Computer Science Teachers Association chapter! Contacts for different regional chapters can be found on the CSTA website.

    Since you’re in Oregon, I imagine you’ve probably connected with TechStart, but just in case, they have a very well-regarded professional development series that brings together lots of fantastic computing instructors.

Leave a Reply

Your email address will not be published. Required fields are marked *

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>