Computing for the Common Good

In starting to write a long overdue blog post, my thoughts are inevitably on the reason it took me so long: my mother has been seriously ill since the beginning of the year. Throughout the past two months I have been consulting with doctors and medical specialists on a quest to find the best possible solution to her current symptoms, fully aware of the fact that her condition may soon become terminal.

I live on an island on the west coast of Greece; it may be one of the largest islands in the country but there are many shortcomings when it comes to healthcare. Although we do have a hospital, several departments (e.g. gastrointestinal), procedures (e.g. ERCP) and an Intensive Care Unit are missing.

Throughout the three years of my mom’s illness, I am more than certain that she wouldn’t have made it this far if it weren’t for computing. Hardware and software – scanner, digital camera, smartphone, imaging software, e-mail, cloud drives – have all been employed to transmit vital information to doctors in Athens so that they can make timely decisions on her treatment. Sometimes the necessary actions can be taken in Kefalonia – in which case ICT “takes over” to complete the feedback loop. Usually she needs to be transferred to Athens – seven endoscopic and one standard (this last one) surgical procedures plus intensive care, all dependent on cameras, probes, monitors etc. – plus a “fighter” attitude and she’s still here with us, with good quality of life for as long as humanly possible.

On a different note, the school project I am probably proudest of was completed by my students four years ago: amidst a severe humanitarian crisis in Greece we devised a system for distributing meals to the needy based on the concept that volunteers need only contribute a plate of food from their daily cooking. All the material needed to deploy the system in a community is available under a Creative Commons license at enapiatofaghto.wikispaces.com. (in Greek. For an English summary featured in the European Year of Volunteering 2011 see here)

Now that smartphones and tablets are ubiquitous we may even develop an app for mobile users (anyone interested in furthering the project is free to do so: that’s what the CC Share Alike license is all about!)

The point I am trying to make in this post: all too often when we talk about teaching our students computing we naturally focus on computational thinking, coding classes, how to successfully pursue a career in computer science and technology… for students on the other hand, all too often computing means gaming, social media, entertainment and a profitable career. The videos I reviewed as a member of the Equity Committee in the recent “Faces of Computing” competition showed that this is the primary message our students are getting (though there were some brilliant exceptions!). Perhaps it’s time we encouraged our students to explore the wonderful prospects computing has unlocked in dealing with illness… in helping people in need… in fighting injustice. Perhaps it’s time to shine a spotlight on Computing for the Common Good.

This post was written in Ippokrateio General Hospital in Athens, Greece and is dedicated to its medical, nursing and administrative staff (especially Drs. A. Romanos and S. Matthaiou). In Greek “Ippokrateio” means “belonging to Hippocrates”… I am certain the “Father of Medicine” would be proud of them!

Mina Theofilatou, CSTA International Representative

L’Oréal For Women in Science Program

I don’t hear often enough about the accomplishments of young women in professional or near-professional accomplishments in CS, so I was excited to learn about the annual L’Oréal For Women in Science program that recognizes and rewards the contributions women make in STEM fields and identifies exceptional women researchers committed to serving as role models for younger generations.  More than 2,000 women scientists in over 100 countries have been recognized since the program began in 1998.

The L’Oréal USA For Women In Science fellowship program will award five postdoctoral women scientists in the United States this year with grants of up to $60,000 each. Applicants are welcome from a variety of fields, including the life and physical/material sciences, technology (including computer science), engineering, and mathematics.

Do you know someone who qualifies? Do you have acquaintances in universities who might know candidates? Please send them the information.

Applications opened on February 2, 2015 and are due on March 20, 2015.

The application and more information on the L’Oréal USA For Women in Science program can be found at www.lorealusa.com/forwomeninscience.

Should you have any questions or require additional information, please e‐mail rpacifico@us.loreal.com.

10 Lessons Learned from Developing a PK-12 Computer Science Program in SFUSD

by Bryan Twarek
Division of Curriculum & Instruction, San Francisco Unified School District

Computer science (CS) is becoming increasingly critical to a student’s success in preparing for college and career. In today’s digital age, all students must develop a foundational knowledge to understand how computers works and the skills required to creatively solve real-world problems. However, the vast majority of schools do not yet offer computer science instruction. In fact, in San Francisco public high schools, only 5% of students are enrolled in a computer science class, and only half of the schools offer a single course. Even at the schools that do offer computer science, the students in these classes are generally unrepresentative of the schools’ population as a whole, with far fewer females and students of color.

It is critical that we address this need with an equity mindset and ensure that all students have access to computer science, beginning in the earliest grades. With this in mind, the San Francisco Unified School District (SFUSD) has committed to expanding its computer science programming to ensure that all students at all schools have experience with high-quality computer science instruction throughout their PK-12 educational career.

Currently, we are developing a policy and implementation plan for integrating computer science into our core curriculum. As part of this work, we are crafting a PK-12 scope and sequence of essential knowledge and skills to be taught at each grade level. We will pilot at select schools next school year, with fuller implementation in 2016-2017.

I would love to share 10 lessons that I have learned through my experience with this initiative:

  1. There is a lot of excitement around computer science.
    Many schools had a taste during the Hour of Code and are now asking for more. Through surveys and interviews, we have determined that the vast majority of teachers, administrators, students, and families support expanding computer science instruction. In fact, 100% of surveyed teachers responded that it is important for their students to learn computer science.
  2. Most adults don’t have prior experience with computer science.
    It is challenging to begin teaching a subject that most never learned themselves in school. While most of our current high school computer science teachers have a degree in CS or relevant industry experience, this is not a scalable practice. We will have to develop teachers from within the district, and they will need to learn the content before learning how to teach it to their students. For this reason, we plan to utilize dedicated computer science teachers at all grade levels, rather than have all multiple subjects teachers to integrate a new discipline into their classes.
  3. Defining computer science is tricky.
    Many people mistake computer science as educational technology (i.e., integrating computing into teaching and learning). Others believe that computer science is just programming. Developing a thorough, yet concise definition of computer science is challenging even for experts. It’s been helpful to present the five strands in CSTA’s K-12 Standards as a way to simple way to articulate the various aspects of computer science. 
  4. We must begin teaching computer science at younger ages.
    Unfortunately, we have noted that females and students of color are underrepresented in computer science classes, even as young as sixth grade. Therefore, we must reach children before they develop constructs of who pursues and excels in STEM fields. We plan to normalize computer science education by guaranteeing access to all students when they first enter our schools in kindergarten or pre-kindergarten. 
  5. Little academic research and few curricula exist.
    There has been little academic research on K-12 computer science education since the days of Seymour Papert, which makes it difficult to know exactly what to teach and how to teach it. Additionally, there are very few cohesive computer science curricula targeted for elementary and middle school students. Only within the last one to two years have organizations like Code.org and Project Lead the Way created K-5 CS curricula, and it will likely be several more years before we have a clear picture of what works well.
  6. Great things are happening outside of the classroom.
    While few of our students currently take computer science classes, some excellent nonprofits, community-based organizations, and individual teachers have worked to fill in these gaps. Clubs, after school activities, one-time events, and summer programs offer additional opportunities to engage with CS. Some try to reach all students, including: Mission Bit, FIRST Robotics League, CS First, and Coder Dojo. Others target underrepresented populations, including: Girls Who Code, Black Girls Code, Chick Tech, and Hack the Hood.
  7. We must attack this issue from multiple angles.
    Developing a plan to go from 5% of students to 100% takes time, but we recognize that if we wait for our plan to be fully implemented, we will miss many students. We can start providing computer science education even before we create new classes by advocating for and supporting clubs, after school activities, and informal opportunities outside of the classroom. We can also quickly start trying ideas out with interested schools and teachers who already have the technology and time for instruction or space for integration. Additionally, we are also working to bring CS classes to more schools by leveraging industry professionals to volunteer and develop our teachers through the TEALS program.
  8. It is important to leverage successes.
    It is easier to gain traction when there are successes to point to. We already have strong three-course computer science sequences at two high schools, so we are using these as models for expanding to other high schools. Plus, pilot programs will allow us to learn from their trials, successes, and struggles as we develop our plans for scaling to all schools in the district.
  9. Competing priorities make it hard to fit in.
    Even when various stakeholders agree to the value of providing computer science education to all students, it still leaves the contentious questions of where and how this fits into the schedule. That is, how many hours do we devote to CS, and do we integrate into existing classes or create new ones? if we have dedicated CS teachers at all levels, we have to hire more staff, but we gain better quality control and more effective teacher development. On the other hand, if our science, math, and multiple subjects teachers teach CS, they can leverage their strong relationships with students and more seamlessly integrate with other content areas, but the majority don’t have background experience and are already working to transition to the Common Core, alongside many other important school and district initiatives. Since few K-12 models exist, it’s even more difficult to come to a consensus.
  10. Our plan will have to be continuously updated.
    The field of computer science is still relatively new, and technologies quickly become outdated. We must acknowledge that the field will continue to rapidly evolve in sometimes unpredictable ways, and as such, our plan for teaching computer science will also need the flexibility to continuously adapt.

Accessibility in Computer Science

During January 23-24, 2015, I attended an AccessComputing meeting (Alliance for Access to Computing Careers) that focused on ways to increase participation of students with disabilities in computing courses. As an educator, it was a useful meeting where I learned not only about the importance of focusing on meeting the needs of EVERY student, but also about the useful resources AccessComputing provides for CS educators. Richard Ladner, who leads the alliance makes a strong argument for why we should support all students stating, “when more citizens have access to computing opportunities, and when computing fields are enhanced by the perspectives of people with disabilities, we all benefit.”

AccessComputing offers a number of resources and tools that educators could incorporate in their classrooms. The website has resources on how to web pages accessible by following these 30 accessibility tips and how to apply the principles of universal design to make sure computing facilities are accessible. If you have students who need accommodations in your classroom, visit AccessComputing accommodations section to “find tools and resources for assessing the accessibility of your lab or department and developing accommodation strategies”. Another useful resources is the knowledge base, where you can learn about specific disability related issues.

 

 

Teaching and learning with “gift code”

Last month I co-taught a two-and-a-half day workshop introducing students to building apps with MIT App Inventor. Some of our students had prior programming background, and others did not.

Here, our goal as teachers was to get our students engaged in their own original projects (rather than teaching any specific set of computing concepts).

I’ve done a bunch of workshops like this, with learners of all ages, and we’ve developed the concept of “gift code.” (Thanks, Michael Penta!)

With gift code, a student describes their idea to you, and you translate it back to them in the form of working code.

Ideally, gift code has the following properties:

  • It’s short. I’ll dictate the code and have the student type it in (or in the case of App Inventor, select and configure the code blocks). It really has to be small so neither of us gets impatient.
  • It works. The premise is that the student will understand the computational ideas in the code by seeing them work. Often the code will combine a bunch of concepts together—ideas that would be hard to explain individually, but make sense when combined into a working unit.
  • It’s the student’s idea. This is pretty important—the code should embody the student’s idea! But it’s OK to simplify what they said, as long as it demonstrates the essence of what they wanted.
  • It’s extensible. This is crucial. In a few minutes, I’m going to walk away and work with another student, and I want my student now to understand enough so that they can keep going. It’s fine if their next step is a copy-paste of the same code structure—e.g., adding a new condition-action rule.

It’s really fun when it works. Students are empowered because they can get complex things working quickly.

In the best case, an hour after receiving gift code, a student has full ownership over it. They understand it, they have added to it, and they don’t even remember that I gave it to them. (That’s totally fine with me.)

Do you use gift code in your own teaching?

Fred Martin
CSTA University Faculty Representative

Computing and The Super Bowl

Most people think of sports as the antithesis of computing.  Computing is all indoor activity, staring at a screen and sports is outdoors, running around on a field or track and usually involves the use of balls, nets, rackets and other equipment.  But modern sports involves a lot of computing power.  There’s a ton of CS in just a single game.

Let’s start with the football.  While there’s still some hand work involved in making a football, much of the process is done by machines that are calibrated and run by computers.  Most manufacturing of any kind today involves specialized robotics to put things together.  Designs for the templates and the machines themselves are often made using CAD software.  Check out this video and see if you can spot the computing.

Now let’s move on to the field.  Fields must be carefully groomed and accurately marked, which is often done by robots or other computerized methods, but what most of us watching at home see is that magic first down line.  Creating that line uses a variety of computing tools.  First, a 3D model of the field is created, because each field is slightly different.  Next, the color of the field is recorded as the shades of green also vary, and the first-down line relies on green-screen technology to work.  Camera computers send position information to another computer, where a person basically right-clicks in the correct location to generate the line.  Wikipedia has a decent explanation of the process:

Each set of camera encoders on a camera transmits position data to an aggregator box that translates the digital information into modulated audio where it is sent down to the corresponding camera computer in the truck. This data is synchronized with the video from that camera. At the camera computer the camera position data is demodulated back to digital data for use by the program that draws the “yellow line” over the video.

 

Separately, the chroma-keying computer is told what colors of the field are okay to draw over (basically grass) and that information is sent to the camera computers.

 

That’s a lot of computation for one line!

The broadcast itself also involves a ton of computing.  Nowadays, the SuperBowl is live streamed in addition to being broadcast on regular television.  And it’s being streamed for free, so the algorithm to handle that many simultaneous streams is going to be complex.  According to the senior VP of digital media for NBC, Rick Cordella, the live Super Bowl stream will be available at variable bit rates ranging between 500 kilobits per second up to 5 megabits per second, delivered as an HLS stream.

Fans in the stadium won’t be able to stream the game, but there is an app available for them, allowing them access to those famous commercials and to different camera angles (http://bit.ly/167zQCA)

For many footballs fans, besides watching the games on television, participating in fantasy football online is a huge part of their interaction with the game.  All of that involves some serious programming, using data collected from real games to create the outcomes for the fantasy ones.  The fact that there is data to be collected that’s available through an API is of course, another way the game uses computing power.  Many teams use that data to improve their performance and select players for the next season.

So while you’re watching the Super Bowl tonight, or watching any sports game, really, think about all the computing power that makes the game possible.

More Than Just Jobs

If you followed the media attention around Computer Science Education Week and Hour of Code you might be forgiven for believing that the need for more students to study computer science is all about jobs. But of course we don’t really expect every CS student to become a professional developer any more than we expect every student taking an English course to become a professional writer. Just like almost all jobs need people who can read, write and do figures most jobs today require some knowledge of how computers work.

We run a real risk of alienation and of setting false hopes and goals if jobs are all we talk about as a reason to learn computer science. Fortunately there are other reasons.

We also hear a lot of talk about teaching critical thinking and problem solving skills. We sure to a lot of problem solving and critical thinking in computer science. The research is mixed on how much of that transfers to other areas though. I don’t think there is much doubt that it is good exercise for the brain at least.

In my opinion the best reason for more students learning computer science it to understand the world in which they live. This is much the same reason we give for learning physics and biology and chemistry for students who are not going to become professionals in those fields. We, and especially our students, live in a world where computers are ubiquitous. Understanding something about how they work and what they can do is important knowledge.

The objection I hear frequently is that students learn to drive cars without being able to repair an internal combustion engine. And there is truth there but that is not what we are trying to do. Our students do understand how wheels work, how combustion works, and such concepts as force being related to mass and velocity. They generally find that useful, at least at a subconscious level, when doing advanced driving techniques like stopping.

Frequently we hear talk about adding an A for art making STEM into STEAM. Fortunately there is art in computer science. Developing software is at its heart a creative endeavor. Thought computing we can explore the beauty of fractals for example. We can create visualizations of data that make things much more clear to visual learners and thinkers.

And if students really want to go into the field full-time there is probably no better way to change the world for the better. And that is good motivation for almost anyone.

Alfred Thompson, At-large Member, CSTA Board

 

PRESS RELEASE: Access to and Understanding of Computer Science Education are Issues in US High Schools

Access to and Understanding of Computer Science Education are Issues in US High Schools

Administrators Say Opportunities for Learning Computer Science Vary Widely

New York, NY – January 6, 2015 – A new survey released today by the Computer Science Teachers Association (CSTA), in collaboration with Oracle Academy, finds that while interest in computer science is on the rise, there are still issues with access to and understanding of computer science (CS) education in high schools.

CSTA-Oracle Academy 2014 U.S. High School CS Survey: The State of Computer Science in U.S. High Schools: an Administrator’s Perspective surveyed more than 500 high school principals and vice principals from May-September 2014.* The survey sought to identify CS education opportunities being provided in high schools, determine how broadly CS is being offered in the US, and determine the different ways CS is being defined. Schools in 47 states participated with the most administrators’ responses coming from California, Pennsylvania and New York.The online survey, conducted by the Computer Science Teachers Association and Oracle Academy, asked administrators about computer science opportunities being offered at their schools.

The survey results showed that administrators are not completely aware of the content covered in computer science classes versus other courses. CSTA and Oracle Academy perceive the results as problematic for many reasons, including that CS often gets grouped with unrelated courses and classes. Participants applied the term “computer science” to a vast array of topics and courses. This broad use of “computer science” to encompass curriculum and courses that would not be considered “computer science” at a college/university or professional level indicates a need for educational community consensus on a common definition of computer science in K-12 education.

Additionally, the survey found that the academic departments chiefly responsible for teaching computer science are Career & Technology and Business. As for how the course fits into a student’s transcript, schools count a CS class as a requirement in math, science, or technology.

The survey found that of the 73% of respondents whose school offers computer science, an overwhelming majority count these credits toward those required for graduation. However, only 39% reported that they count a CS class towards a requirement in math, science, or technology. More often, schools are counting CS courses as electives. This becomes problematic because electives are often culturally and academically regarded as filler classes in a student’s schedule. A CS course that “counts” drives demand from students and builds the case for these courses to be required.

The top content areas covered in computer science courses were listed as:

  • Problem solving 65%
  • Ethical 57%
  • Social issues 57%
  • Graphics 57%
  • Web development 51%
  • Algorithms 35%
  • Testing 35%
  • Debugging 35%

Each of these content areas are core to computer science and, in particular, programming.

One of the most important findings from the study suggests that better-funded schools are offering CS to their students at a far higher rate than low-income schools. Of the 27% of schools where the majority of students qualify for free or reduced lunch, 63% offer computer science courses. Of the 44% of schools where the majority of students do not qualify for free lunch, 84% offer computer science courses. This means that in lower income schools, 37% percent offer no computer science whatsoever, versus only 16% percent in higher income schools.

“Access to good computer science education is a defining 21st century issue,” said Oracle Academy Vice President Alison Derbenwick Miller. “We must come together as a community to bring better understanding and access to all students to help them develop the knowledge and expertise required for in-demand careers today and into the future. We are pleased to have worked with CSTA on this very important survey.”

“We are grateful to Oracle Academy for supporting this survey as the findings create a much clearer picture of CS education in US high schools than we’ve had to date,” said Lissa Clayborn, Acting Executive Director, CSTA. “At the local community, state, and national levels, this data can help inform continued and more thoughtful discussions about curriculum pathways, course design, funding for CS courses, come to a shared definition and help to solve the puzzle of teacher certification and other education policy issues.”

*[UPDATE: More than 20,000 people received the survey, for a response rate of 2.5 percent. Respondents came from 47 states.]

To review the complete results from this survey, as well as previous CSTA High School surveys, please visit http://csta.acm.org/Research/sub/HighSchoolSurveys.html.

Media Contact: Stacey Finkel
finkelstacey@gmail.com
703.304.1377

CSEdWeek Stories

As I write this post, CSEdweek 2014 is nearing its end. There have been numerous articles in the national press spreading the message of K-12 CS education, including President Obama becoming the first President to write code (http://www.wired.com/2014/12/obama-becomes-first-president-write-computer-program/). However, the biggest impact of CSEdweek is at the local level, where teachers in the classroom are working with their students to show them the power and fun of computing. I recently talked with Terrie Brown, who is a 2nd grade teacher at Fairview Elementary in Bellevue, Nebraska. Her class made a video of their CSEdWeek activities. Check it out at http://youtu.be/uNCtJkMsERA and see the looks of excitement and empowerment on the students’ faces. Also, if you have stories or videos from your CSEdWeek activities, why not share them here?

Dave Reed
Chair-elect & College Faculty Representative
CSTA Board of Directors

Winners of Faces of Computing Contest

The Faces of Computing Video Contest was a big success.  We had over 100 entries from 20 states and 6 countries.  The idea behind the Faces of Computing Contest, both the previous poster contest and the video contest, is to represent a greaer variety of people doing computing and to dispel myths about what computing is and who can do it.  Too often in industry and in people’s minds, the “faces of computing” are white and male. The posters and videos submitted by these students show that all kinds of people enjoy computing.

The videos showcase students not only with different ethnic backgrounds represented, but also students with a wide variety of other interests in addition to Computer Science, It’s clear that CS appeals to many kinds of kids.  In the videos, there are artists and athletes, writers and math geeks, and budding computer scientists.  The students show that Computer Science really is for everyone and can be useful in a variety of fields.

The winners were hard to choose, as there were so many great entries!  I loved getting to see what other schools do in Computer Science class and hearing students talk about their CS work and their other interests.  Below are the winners’ videos.  They are really great promotions for CS.  I highly recommend showing them to your classes, to your administrators, whomever you think needs a little nudge to see CS in a different light.

Winner, High School Division

Massachusetts Academy of Math & Science
Teacher: Angela Taricco
Students: Josephine Bowen, Sarah Duquette, Jackie Forson, Ana Khovanskaya, Eva Moynihan, Amol Punjabi, Sashrika Saini, Christopher Thorne, Ryan Vereque

Winner, Middle School Division

AL-IKHLAS
Teacher: Idrus Tamam
Students: Uluwiyah Jatim

Winner, Elementary School Division

Hale Kula Elementary School
Teacher: Megan Cummings
Students: Kaylee Smith, Markus Langhammer-Kenan, Kaleah Shabazz, Haylee Barlow, Natalie Chastain