Reading Stories in Computer Science Class

Stories are an entertaining way to introduce or reinforce computer science concepts and help students to understand abstract concepts in a more concrete way. Do you read picture books, chapter books, or short stories to your students in computer science classes? I do. The easiest way to get started is with books that are specifically written to teach CS concepts.
For 5-8-year-olds, Hello Ruby: Adventures in Coding by Linda Liukas is a wonderful place to start. Written to introduce young children to computing, it is a picture book about a “small girl with a huge imagination.” As Ruby goes on adventures, students learn about planning, sequences, algorithms, collaboration, conditionals, loops, and more. The book includes activities that go along with the story, and the official website has resources for educators. Linda Liukas has also written a second book, Hello Ruby: Journey Inside the Computer, which includes activities about the internal parts of a computer.
A graphic novel for 8-12-year-olds that covers multiple CS concepts is Secret Coders by Gene Luen Yang and Mike Holmes. It is the first in a series of books that combine logic puzzles and coding (in Logo) wrapped up in a mystery storyline. The official website has downloadable activities and Logo instruction videos so your students can code along with the characters if desired. Check out the excerpt on the website for a fun introduction to binary. The concepts in the book can easily be applied to any programming language you are using with your students.

The comic book, The Cynja, by Chase Cunningham,‎ Heather C. Dahl, and Shirow Di Rosso was written for younger children, but I like it for introducing Networks and Cybersecurity for Middle School students. The Cynja is a story of a battle between the evil forces of cyberspace and the Cynsei and his apprentice, the Cynja. Code of the Cynja, the second comic in the series, has a female lead character. These are difficult to get in print, but digital versions are available on Amazon and in the Google Play Store.

Don’t limit yourself just to books written about computer science concepts. Working on decomposition skills? Read a “Choose Your Own Adventure” book. Then work with students to decompose it and build a decision tree. Talk about how conditionals allow it to work and have students create their own “Choose Your Own Adventure” program. The Fly on the Ceiling by Julie Glass is a fun book to introduce the coordinate plane. After reading it, students could create a Scratch project to draw their initials using glide commands with x and y coordinates. Read The Very Hungry Caterpillar by Eric Carle and have students retell the story with Bee-Bot or write a ScratchJr project about the life cycle of the butterfly. Look around and see what books are available at your school and find ways to use them in your computer science classes.

Are you reading stories to students in your computer science classroom? We would love to hear about it!

Vicky Sedgwick K-8 Teacher Representative

Use the SCRIPT to Develop Your District’s Own #CSforAll Plans

Individual teacher and school champions have enabled participation in K-12 computer science education to soar to new highs in recent years. However, true systemic change will occur when school districts across the nation create their own #CSforALL goals and implementation strategies. There is a need for districts across the nation to develop comprehensive and equity-minded plans to ensure that all students across all schools can access and achieve in computer science.

Creating these plans can be daunting, especially at early stages of implementation and when there are important competing priorities. It can be tempting to simply replicate plans that other districts have adopted, yet contexts may vary greatly from one district to another, making a single correct answer difficult. Districts should leverage local strengths and consider their unique contexts when developing their plans.

The CSforALL Consortium, a key partner of the CSTA, recently developed a tool to help with this challenge. The new tool is called the SCRIPT: School CSforALL Resource and Implementation Planning Tool. The SCRIPT engages school districts in reflection, review of examples, and goal setting related to six areas: (1) Leadership, (2) Technology Infrastructure, (3) Teacher Capacity, (4) Curriculum and Materials, Selection and Refinement, (5) Partners, and (6) Community.

The SCRIPT is still under development; however CSforALL has released rubrics for Leadership, Teacher Capacity, and Curriculum & Materials, Selection and Refinement. Recently, I helped facilitate a breakout session at a SCRIPT workshop held at the CSforALL Summit in St. Louis. Based on this experience, I believe the SCRIPT is useful for districts that are just getting started, as well as those that have already implemented their comprehensive plans, as there are many distinct elements and a wide continuum of success. The tools promote excellent reflection and conversation and help guide teams towards meaningful next steps.

Here is a suggestion for how to use the SCRIPT:

  1. Convene a leadership team from your local district to develop or update plans to support #CSforALL. Include teachers, principals, curriculum leaders, and district administration; where possible, include representatives from both early-adopting schools and schools that have yet to begin to implement.
  2. Together, focus on each of the six SCRIPT categories one at a time. Use the rubric to reflect on the current status, identify priority areas, and set goals. Consider setting three goals for each area of the rubric: one 3-month goal, one 6-month goal, and one long-term goal.
  3. Use the tools and examples in the SCRIPT, as well as other CSTA resources and CSforALL members, to help plan how you will meet these goals. Feel free to reach out to your local CSTA chapter to ask for advice and support.
  4. Reconvene periodically to monitor progress and update goals.

Creating meaningful and systemic change certainly does not come easily. Accordingly, you won’t find a list of answers within the SCRIPT. However, you will find many thought-provoking questions and topics for conversation. Use these to consider the big picture and develop plans for rigorous, inclusive, and sustainable K-12 computer science education in your local school district.

SCRIPT Cover

Bryan Twarek
School District Representative

Designing Computer Science Classrooms

Computer science is being taught in all kinds of classrooms across the country, not just in computer labs. As more schools increase their computer science offerings and look to dedicate space to those classes, teachers are faced with the question: What should a computer science classroom look like?

In CS teacher professional development, we discuss how to make sure that all students feel welcome in the classroom, including the physical environment itself. NCWIT has a great resource, How Does the Physical Environment Affect Women’s Entry and Persistence in Computing?, that identifies how underrepresented students are impacted by posters and other images that reinforce stereotypes about computing. For example, images that associate “geek” with CS (Star Trek, a lone coder in the dark, etc.) or that call attention to the need for more women, can have a negative impact. Instead, consider using imagery like the new set of posters from NCWIT and Careers With Code, which show a variety of role models using computer science to pursue a personal passion or change their world. The goal should be to select images that appeal to all students and showcase a variety of people.

Working with K-12 teachers, I’ve had the opportunity to see many different types of CS classrooms. Sometimes the computers line the perimeter of the room, facing the wall but making it difficult for some students to see the teacher and their computer at the same time. Some rooms have rows of computers where it’s easier to see the teacher but often difficult to walk around easily. And some are regular classrooms that rely on a laptop cart. All of them have their advantages and disadvantages; the goal is to have a physical space that supports effective teaching.

The college I teach at is also looking to redesign one of our computer labs dedicated to CS courses, with a focus on supporting student collaboration. As more and more of our teaching relies on collaborative and cooperative learning activities such as pair programming, POGIL, debate team carousels, etc. the traditional classroom with rows of computers does not work well. So, we are examining ways to implement flexible classroom arrangements with tables and chairs on wheels that can be easily switched into another configuration. With these types of activities we move from a “guide on the side” model of teaching to more of a “sage of the stage” model and have less need for a large, central area with whiteboards and projection screen.

These types of considerations for the physical design of CS classrooms also directly support practices described in the CSTA K-12 CS Standards, specifically the practices of Collaborating Around Computing and Fostering an Inclusive Computing Culture. So, what would your ideal classroom to teach computer science in look like? How will it support collaboration and make sure that all students feel like they belong?

Jennifer Rosato


Jennifer Rosato
Teacher Education Representative

CS for All Means All Y’All

Right about now you should be thinking how great it is to be a K-12 CS educator.  If not, let me give you a few reasons.  How terrific it was to hear that President Donald Trump had re-purposed $200 million dollars at the US Department of Education to support STEM Education, including K-12 computer science education programs.  Women, minorities, and students in rural communities will particularly benefit from this presidential memorandum.  That’s exactly what we are talking about when we champion “CSforAll.”  And to sweeten the pot, a coalition of tech businesses including Amazon, Facebook, Google, Microsoft, Lockheed Martin, and many others agreed to give $300 million spread over the next five years to boost K-12 computer science programs.  So, it really is a great time to be a CS educator!

If you need more proof that it is a great time to be a CS educator, on October 16 and 17, over 170 organizations made new commitments to support CSforAll students.  These pledges were celebrated by a stakeholder community of educators and other supporters at the 2017 CSforAll Summit in St. Louis, Missouri.   You can view those commitments in this pdf Fact Sheet to see how many of our long-time friends and supporters are in the list and how many, many more you might not have known about.  CSTA made a commitment to continue to promote the new CSTA K-12 CS Standards broadly so that all states and school systems have rigorous models for their own standards and to work with 3-5 CSTA chapters to help them establish their CS program while developing state standards and supporting CS teachers.  Did you make a new commitment to support CSforAll students?  If not, why not do one now?  After all, it’s a great time to be a K-12 CS educator!

And, speaking of commitments, have you made a pledge for 2017 CS Education WeekCS Ed Week is December 4 – 10, 2017.  What a great time to champion CS education, celebrate Grace Hopper’s birthday (December 9), and introduce students to computer science.  It’s a great week for elementary/middle school educators to partner with high school students and educators to show the younger students how great CS is and to allow the older students to share their enthusiasm.  This year, CSTA is partnering with Family Code Night to encourage parents to join their children in coding at their local school—another great way to interest younger students in CS education.  Plan to participate in Family Code Night (or even better to help organize Family Code Night events in your community).  After all, it’s a great time to be a K-12 CS educator.  And, as we say in the south, All means All Y’all!

We know you are all doing spectacular work in your own schools, school systems, and CSTA chapters.  We look forward to reading about what you are doing to promote and bring CS education to all students.

Deborah Seehorn , CSTA Interim Executive Director

Learning computing with metaphors

Don’t think of an elephant!

Now what are you thinking about? Of course, it’s an elephant.

This sentence is the title of a book by George Lakoff, a contemporary linguist who makes that case that we frame our thinking with the words and metaphors we use. By consciously recognizing this, we can understand our own thinking better and become more persuasive.

Inspired by Lakoff’s work, Alvaro Videla published an essay Metaphors We Compute By in the October 2017 Communications of the ACM. As a computer scientist and software engineer, Videla recognized the extent to which we make sense of concepts in computing via metaphors. He gives this example:

Say you could program a computer to command other computers to perform tasks, respecting their arrival order. This description is already difficult to understand. On the other hand, you could describe the solution by describing a queue server that assigns jobs to workers based on a first-come, first-served queue discipline.

Consider all the examples from daily life in the description of the solution: A “queue” is something with which all of us are familiar—that’s a “line” for those of us speaking American English! “First-come, first-served” is how most everyday lines operate, “workers” and “jobs” are people and roles from our daily lives.

With this metaphor, it makes sense. The everyday concepts translate into computational artifacts. A worker becomes an operating-systems process. A job becomes an algorithm carried out by that process on some particular data. The line becomes a FIFO queue.

This idea of using metaphors goes back far in our field. Some of the early CS education research focused on how the names of words chosen to be language commands helped (or hindered) students’ understanding. For example, in the 1987 article The Buggy Path to Development of Programming Expertise, Pea, Soloway and Spohrer reported on how students expected parallelism in BASIC code with “IF… THEN” statements. They thought the computer could evaluate any statement as needed, firing when a condition became true—as it might be in daily life.

I’ve used metaphors to explain function application—a concept in functional programming. It’s similar to how parameters or arguments are supplied to C or Java functions. I brought a rubber mallet to class, and described function application as the mallet “pounding the parameters on the head.” So if you have a function increment, which adds one to its parameter, then increment sees a 3, pounds it, and produces a 4. Then “functional mapping” is walking down a list, pounding each parameter in turn. In Scheme: (map increment (list 1 2 3 4)) produces the list (2 3 4 5).

Later during the semester, I could just pretend I was holding the mallet to bring back the idea of function application.

What metaphors have you introduced to your students to help them understand computing concepts? Did they work? Have you changed them over time? Please share with your colleagues!

head shot of Fred Martin, chair of board of directors

Fred Martin, chair of board of directors

We are rebooting The CSTA Advocate Blog!

Hello fellow educators of CS!

After a one year hiatus, we are relaunching The CSTA Advocate Blog.

With CSTA Advocate, we will bring people and ideas together.

For the next year, I will be editor. We will have a new post each Wednesday.

We’ll use The Advocate to get conversations started around ideas related to K-12 CS Education. It will involve interviews, opinion pieces, trend analysis, innovations, new technologies, surveys, invitations to get involved, success stories and even stories of failure. If you have ideas about topics you’d like to see, feel free to communicate! CSTA hopes to keep our members up to date on goings-on of our organization as well as provide interesting insights and incredible connections.

I am Doug Bergman, head of Computer Science at the Porter-Gaud School in sunny (and sometimes flooded) Charleston, SC. I am new board member and extremely passionate about Computer Science.

I’m a product of public education, and have worked in private education for the last 20 years. I’ve taught classes ranging from 1 student to over 300. I’ve taught students ranging in age from 3 to 99. I’ve taught and attended school in the United States as well as in France and Japan. I’ve worked in public, private, and professional schools. I’ve also taught online classes. I am currently completing my 100% online masters degree at Georgia Tech. My point is that I have experienced most types of education, and I bring this perspective to any conversation.

I can sum up my philosophy with a quote I heard at the CSTA conference this past summer: “I am not here for the answers, I am here for the questions.”

And I am looking forward to interacting with all of you—online and in person.

Doug Bergman Headshot

Doug Bergman – Gr. 9 to 12 teacher representative

Just released: Video interviews on computational thinking

What is computational thinking?

How is computational thinking distinct from other thinking skills?

How can teachers assess computational thinking skills?

Have you ever wanted to ask an expert these questions? The CSTA Computational Thinking Task Force is creating a series of video interviews in which we do just that!

Listen in on our conversation with Chris Stephenson, Director of Computer Science Education Programs at Google, as she answers our questions and describes cross curricular computational thinking applications in the task of preserving native languages (https://youtu.be/FuN6g8NmuHc).

Listen to our conversation with Eric Snow, Education Researcher in the Center for Technology in Learning at SRI International as he answers our questions and describes his research in assessing computational thinking (https://youtu.be/92pv8dPItjE).

We have several more interviews with experts in the field planned for later this fall.

All of the interviews are archived here: csteachers.org/page/CompThinkInterviews.

Growing Up Leadership

I sat in a small conference room in the summer of 2009 with several other CS teachers from around the US. CSTA brought us all there for advocacy leadership training and the beginning of what some called a grass roots movement for CS. I remember feeling excited that there were all of these other people just like me – passionate about CS Education and who were interested in helping it grow however they could. We learned about advocacy at local, regional, and state levels. We talked about our struggles, the situation of teacher certification, whether or not our state recognized CS, and formed friendships that last till this day.

Through that week and a subsequent training the following year the Leadership Cohort was born (now called CSALT). Through these passionate people districts were changed, courses were added, local government actions were taken, some states passed resolutions about CS ED Week, and there were even opportunities where one or two spoke to National leaders. All of these things were accomplished by volunteers and the support of CSTA.

We were also encouraged to start local chapters. Some were able to do this and are still apart of the chapter’s leadership today. Others of this group has gone on to write curriculum, provide professional development to other CS Teachers, developed and pilot the CS Principles course (and others), have become leaders for CS in their state, have presented at many different conferences including our own CSTA Annual Conference, and still some have been elected to serve on our CSTA Board.

This is not to say that all of our great volunteers and CS advocates started this way; however, there is a strong core group that I can point to that all got their start in those advocacy leadership trainings.

Growing leadership is important for organizations to thrive. Creating lasting friendships and networks of people and resources is also essential. I have “survived” my years of teaching and advocating because of so many of the people that I met that summer. So I say thank you to CSTA for the foresight to start CSALT (formerly Cohort Leadership) and for continuing to support all CSTA members through the conference, other professional development, and the great network of people and support. I urge any of you to attend the conference, a local chapter meeting, or anything you can to be a part of the larger CS Education team.

Most of all I say thank you to CSTA for giving me a chance seven years ago to be part of the CS movement. I have learned beyond my expectations, worked harder than I would have ever imagined, and I have some lifelong friends because of it.

AppInventor Goes Local: adult students build an app inviting islanders to test their knowledge on the local dialect

I haven’t been shy to expose the insane decisions of the Greek Ministry of Education when necessary; one such time was 3 years ago, when the government removed the elective “Application Development in a Programming Environment” from 12th Grade Curriculum and the Greek University Entry Exams, in the context of a law ironically titled “New High School”. My writings reached EU headquarters in Brussels to no avail, but an e-mail I sent to the CSTA caught the attention of Chris Stephenson and played a decisive role in my being nominated and elected as International Representative on the Board of Directors. In 2014 I had an article published in the online edition of UK newspaper “The Guardian”; soon after the Minister of Education stated in public “the decision [of the previous administration] to remove the programming class option from candidates intending to study computer science was not only unacceptable, it has absolutely no ground on an international scale”. The class was eventually reinstated.

That said, maintaining an open mind commands giving credit when deserved, even to people or agencies with whom you have previously clashed. In the beginning of school year 2014-15 Computer Science teachers in Greece were happy to see that the 10th Grade CS textbook had finally been replaced with a completely new and updated version. But what really surprised us was that there was an entire chapter dedicated to the AppInventor environment, complete with examples and detailed instructions guiding students through all the stages of developing their first app.

I taught the book for the first time in an adult-learner setting in 2015-16; in the computer lab we used the MIT App Inventor tutorials on YouTube to quickly get a feel for the kind of stuff we could build (language was hardly a barrier as most Greek students have good working knowledge of English, plus the video-capture tutorials make it easy to watch video and pause in one tab while working in the other). After brainstorming an idea for our app, we decided to take last year’s 10th Grade Project a step farther by using the local dialect words they had registered on Wiktionary to build a multiple-choice quiz in AppInventor. We explored different formats and decided to go with the simplest, as the evening school students have practically zero free time for homework and all the work had to get done in a semester of two 35-minute sessions per week. Christos carefully made sure each question was a challenge with his tricky choices; Kostas quickly learned how to set up the components in “Designer” view and move the command blocks from screen to screen in “Blocks Editor” view with the AI2 “backpack”; Meletis, Kimonas and Philippos connected their Android devices to test the app and offer ideas and feedback. The quiz now comprises 20 questions with four choices each… next year we plan to take it even farther by adding more questions, levels of difficulty and – why not? – voice and illustrations for a rich multimedia experience. Soon we expect to have it published and live on Google Store: keep up with us by watching our blog (generally in Greek but we will include an English snippet for our AppInventor post).

Kostas appinventor

(Camera-shy Kostas enters the questions in Designer view and then programs in the Blocks Editor”)

 

Meletis-Kimonas-philippos

(Meletis, Kimonas and Philippos check out the questions for the quiz while Christos (in the background) takes a break)

In closing my last post as a Board Member of the CSTA, I would like to extend my congratulations to the new International Representative, starting July 2016, Miles Berry, and wish him the best of luck and success in his efforts. Miles, keep an eye on the situation in Greece as the third administration in three years prepares once again to downgrade the role of computer science teachers, amidst a six-year-strong financial crisis that would only benefit from the advancement of coding and other labour – as opposed to capital -intensive fields of financial activity. Sometimes the only argument we need to promote the teaching of computer science is plain common sense; and sometimes common sense is so hard to find…

Mina Theofilatou
Kefalonia, Greece

Computer Science for All – Are We Asking the Right Questions?

Every two weeks, the CSTA K-8 task group hosts a twitter chat using the hashtag #CSK8. These twitter chats help teachers like me connect with other computer science education enthusiasts; they offer us a place to share and learn new ideas for our classrooms. Since I am part of the CSTA task force that hosts these chats, I have learned a lot on how to run these twitter events. Picking the right questions for a chat is key to its success.  The questions must provide the right amount of structure and be interesting so that all participants contribute to the chat. This is difficult since we do not know who will actually join the chat.
The chat on Feb 10 was on the new initiative proposed by President Obama called ‘Computer Science For All’ (To read more on this initiative, see  “CS for All”  and  Watch the president’s full remarks here). The chat was moderated by another CSTA Task force member Vicky Sedgwick and myself.
Computer Science For All initiative is still in the early phase, with of course no clear idea on whether it will ever be approved. However, the initiative has opened up the discussion on computer science access to a wider audience, and it was a perfect topic for our chat. Vicky and myself struggled to come up up with the best set of questions and we were modifying them as the chat progressed.   Selecting the right questions to ask on this topic helped us think more on the big question – how do we really provide computer science education to all? Here are the questions that we finally used on this chat. Take a look below –  what would be your answers?
  • Q1: Obama said “we have to make sure all our kids are equipped for the jobs of the future.” Is this really why #CSforALL is needed? #csk8
  • Q2: Why should #CSForAll be a federal initiative? Can’t we just rely on state/local/industry/non-profit efforts? Pros/Cons? #csk8
  • Q3:  How will we find teachers for #CSForAll & what is needed in terms of professional development & teacher credential programs? #csK8
  • Q4: There are currently many states with their own CS standards & more writing them. How does this affect #CSforAll or does it? #csk8
  • Q5: How would you spend $4 billion? What is most important? K-8/High School/PD/In-school programs/AfterSchool programs/Diversity? #csk8
If you are interested in reading the conversations on this topic (or other topics), check out the archives of the #CSK8 chats at the CSTA K8 G+ community at https://plus.google.com/communities/111803101139836526905/stream/00a8a67d-804b-4ee1-9c95-0852dfa0b171
Do you think we are asking the right questions? If you had five questions to ask on this topic, what would they be?