Did You Miss It?

Miss what you ask? Why the CSTA Webinar presented by Beth Ziesenis, Nerdy Best Friend, on May 12, of course!

A special invitation was emailed to you on May 1. I opened the email and registered for it immediately! I wanted to know about apps that would help organize my life.

I was prepared to view it at school on May 12 and would you believe it, the school network decided on that very day to slow down to a crawl and I was unable to view the webinar. Never fear. I received another email that announced that it has been recorded. You can access the webinar at http://csta.acm.org/Communications/sub/Podcasts.html.

I viewed the recording and took notes about her suggestions. Some of the apps I plan to try out are listed below.

An app to control my email called 10 minute email. It is an email address that lasts 10 minutes so you can use it to sign-up for information that you only want one time. You can find it at: 10minuteemail.com

Create graphics using Canva. You can use it to create posters. I hope to have my student groups next year create a posters containing graphics to help the other students understand computer science vocabulary. This might be a great way to do it.

Utility: Is the problem with my school network or it is a problem for everyone. I can check that with downforeveryoneorjustme.com . I am sure I will be trying it out at school shortly.

Video post cards: I saw this demonstrated and I immediately thought Open House next school year – perfect. I will video a few of my students this year and have them introduce the class to the parents.   The app she suggested was PicPlayPost. You can get it from Google Playstore: https://play.google.com/store/apps/details?id=com.flambestudios.picplaypost&hl=en or

iTunes: https://itunes.apple.com/us/app/picplaypost/id498127541?mt=8

Want to stay ahead of your students with tech? Then Product Hunt is for you.   It is a Reddit for new software and apps.  You can view it at http://www.producthunt.com/

The last app I plan on trying out is Office Lens. You can take a picture of a document, business card or whiteboard and the app will straighten it out and upload it to Microsoft OneNote. You can do your own edits because the app runs it through OCR.

These are the apps that I selected from the webinar that I want to try out. You should view the webinar to determine if there are other apps you might like to try out.

Beth also set up a Google Form to crowdsource apps. If you know of apps that are your favorites you can add them to the Google Sheet using the Google Form at: https://docs.google.com/forms/d/1LmQ1NI0uWIO021kFDVnysSz9kgnIDg5Jc52jr2N65Pk/viewform

You can view the apps that CSTA members have suggested at: https://docs.google.com/spreadsheets/d/1K4IHUOmbpGZawUPxfMepE3z_1063LibAPjuF_YFgQ10/edit?usp=sharing

I want to hear from you about your thoughts regarding the webinar or apps that I have selected.

Myra Deister
CSTA At-Large Representative

 

AccessCS10K: helping make high school computing courses more accessible and welcoming to students with disabilities

AccessCS10K

By: Richard E. Ladner
University of Washington

In 2010-2011, approximately 13 percent of K-12 students have a recognized disability according to the National Center for Education Statistics (NCES). This represents about 6.5 million students with disabilities in the K-12 education system. This only counts those students covered under the Individuals with Disabilities Education Act (IDEA) of 1990.   There are many more who have 504 plans (under the Rehabilitation Act of 1973). Students with 504 plans need some accommodation to attend school, but not an entire Individualized Education Plan (IEP) like those under IDEA. In any case, teachers of high school computing courses are likely to have students with disabilities in their classes.

One group of students, namely blind students, are already severely disadvantaged in high school computing classes that use programming tools such Scratch, Snap, Alice, Processing, Greenfoot, and other highly visual user interfaces that are generally inaccessible to blind users. Will teachers in these classes say, “Sorry you cannot take my computing course because you cannot use the tools we are using to teach programming?” Will a special education teacher or guidance counselor recommend to the student that she consider another career choice than the one the student wants to pursue? This should not happen. Computer science is a great profession for blind people and they should not be discouraged from pursuing it at an early age. (For profiles of blind individuals – and other individuals with disabilities – who have pursued computing visit the Choose Computing website.)

The goal of AccessCS10K is to help make it possible for all students with disabilities who are intellectually capable of learning computer science to have the opportunity to do so. The project is specifically focusing on the Exploring Computer Science (ECS) course and the Computer Science Principles (CSP) course, both of which are being supported by the National Science Foundation’s CS 10K initiative.

AccessCS10K has two objectives to reach its goal:

  • Build the capacity of ECS and CSP teachers to serve students with disabilities through professional development training and individualized real-time support.
  • Create accessible materials that ECS and CSP teachers can use in their classrooms, both tools and curricular units.

To build the capacity of teachers, AccessCS10K is partnering with as many of the CS 10K projects as possible to help them include information in their professional development about inclusive teaching strategies and accessible tools and curricula that can be used in the classroom. AccessCS10K holds capacity building institutes for the leaders of these projects as one way to help them integrate this information in their professional development. It maintains a community of practice whereby teachers can share resources among each other.   It maintains a searchable knowledgebase of articles that can help teachers find information they need to solve problems. Finally, it provides real-time support for teachers who have specific questions about how to integrate a student with a disability in their computing class. To get support call 509-328-9331 or e-mail accessCS10K@uw.edu.

AccessCS10K is building accessible tools and curricula that can be used in ECS and CSP courses. One major tool is the Quorum language which is an easy to learn text-based programming language that can be used for both visual and non-visual projects. AccessCS10K’s development partners are working to make other accessible tools and curricula, not only for the programming components of these courses but for the other components as well.

In an upcoming blog post we will present an introduction to Quorum. If you are curious about Quorum we encourage you to visit the Quorum web site http://quorumlanguage.com/ or to try the Quorum Hour of Code http://quorumlanguage.com/documents/hourofcode/part1.php.

AccessCS10K is funded by the National Science Foundation as part of the Computing Education for the 21st Century program of the Directorate for Computer & Information Science & Engineering (Grant #CNS1440843). AccessCS10k is a collaborative project between the University of Washington and the University of Nevada, Las Vegas.

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

How Do You Help Struggling CS Students?

This question has plagued me for the last few years, but more so this school year. In order to offer computer science courses and to make the course open access, some students enroll in the courses that don’t fully understand what computer science is and may not have the prerequisite problem solving skills. They do know that they want an AP course.

There is no prerequisite computer science course for AP Computer Science at my campus. The students would not enroll in a prerequisite unless it was an honors or AP, and we don’t offer one that is. To ease the students into computer science, I use Alice3 at the beginning of the school year then move into programming turtles and then Media Comp Lessons that are in Exploring Wonderland by Dann, Cooper and Ericson. I have been successful with this approach the last few years until this year.

This year I have tried several new strategies. I began using paired programming so each student would have someone to turn to for help. I would be free to help the students that are really struggling. Additionally, I have assigned fewer labs to give the students more time to work out solutions together. I have also assigned scenarios similar to the labs for the students to construct pseudocode prior to writing the program. I select random student papers, project them and we discuss the student written pseudocode. I also have assigned videos to do some flipping of lessons and the students take Cornell Notes while viewing the videos. I am available at lunch and after school for additional help. The students are writing reflections at the end of each unit discussing a lab that they have completed.

Even with all of that, I have students that are so lost they are not completing labs and are scoring low on tests. This semester the counselling department has resurrected a course title, “Fundamental of Programming” and has transferred a few of the students into that class. I have altered the assignments and tests to better meet their needs.

As I work to make my computer science course more diverse, I know that I will need to include additional teaching strategies to help all students. On Wednesday, March 11, I will be participating in the CSTA K-8 Task Force Twitter Chat #CSK8 from 5-6 pm PDT about Pedagogy: How to teach CS to 5 – 14 year olds. I am looking forward to hearing what K – 8 teachers are doing and tweaking their ideas to use with the high school students. I am also attending the CSTA Conference in July. One session that interests me is “Teaching CS to Students with Learning Differences”.

I will be piloting a Computer Science Principles course next school year and offer it as an AP course the following school year. Adding CS Principles may encourage some students to enroll in that course rather than AP Computer Science to help build their confidence.

I am continuing to look for additional resources and strategies. If you have any suggestions, resources or strategies please post them.

Myra Deister
CSTA Board At-Large Representative

Teaching Writing is just like Teaching Computer Science

We all know that writing is an important skill to develop in every classroom—including the computer science (CS) classroom. If our students can’t communicate their ideas, they don’t have a chance succeeding in or out of our classrooms.

And while as CS teachers we know the importance of teaching writing, we sometimes freeze with that deer-in-the-headlights look when thinking about actually TEACHING communication skills. Well, I’m here to tell you that you’re a natural! If you can teach computer programming, you can kids to write.

Thank you, Terry Freedman, for the elaboration of these ideas in the Tech & Learning article “How learning to code might improve writing skills” (http://www.techlearning.com/blogentry/8736).

Compare the strategies you use to teach CS to those required in writing.

  1. Making a plan for writing is similar to creating a flow chart or storyboard.
  2. Writing a clear precise sentence is like an explicit computer instruction.
  3. Good grammar is just syntax in another language.
  4. Well-ordered text is not much different than code that follows the algorithm.
  5. Too many words can confuse the reader just like too many statements create spaghetti code.
  6. Creative writing and programs require a mastery of vocabulary and commands.

See? I told you that you were a natural. Teach writing the way you teach programming and you’ll be fine.

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

Going beyond coding puzzles

Moving a robot through a maze or drawing a pre-defined shape are examples of well known coding puzzles available in every tool or curriculum. As a K-8 computer science teacher, I know we love handing out these structured exercises to our students. They are a perfect way to introduce programming concepts, and because they only have one solution, they provide a clear and definitive end to the lesson. It makes assessment easy, it takes away the stress of “what should I make” and it makes both teacher and student feel successful. It simplifies PD for new CS teachers and ensures that all students will learn the basics.

But K-8 computer science teachers need to go beyond these coding puzzles. We must show students that programming offers much more than a ‘one solution’ answer to a pre-defined problem. This can be messy, uncomfortable and it is not easy.  However, we also know it can be fun and deliver the “fall in love with coding” moment we hope to provide in these early CS classes.

When do we show our students that they can make anything with code?  Should we use K-8 as a time to focus on creative computing and make the first few projects completely exploratory?

I believe CS teachers must strike a delicate balance here.  While showing the students that there is so much more than mazes and shapes, we also want to give them constraints to ensure that they are still successful. In my own classroom, I see both excitement and fear when I tell  students they can make anything they want. Some students rush in – “I know exactly the kind of game I want to create.” However there are others who are frozen – they want suggestions, they want to look around for inspiration, they prefer to remix an existing project. To these students, the open ended project is a source of stress and can scare them away from coding. As teachers, our challenge is to find ways to be helpful but not limiting to these students, allowing them to explore their creative potential without fear.

During my days as an art student, I remember being given a blank white canvas and found myself in my own “make anything you want” moment. I felt that same fear many of my students have until my instructor gave me a wonderful tip – just paint a Burnt Sienna (brown) wash on it. Simply turning the canvas into something non-white made a difference. It gave me the courage to start, to experiment, and to make mistakes.

Writing code for a new project is a lot like starting a new painting. As a CS teacher, we have to be ready to give our students the help they need: a gentle suggestion, the first few lines of code, an exercise that could be extended. We must find the Sienna brown wash that will get them going.

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.

 

 

Top Secret Rosies: The Female Computers of WWII

I showed the film Top Secret Rosies: The Female Computers of WWII in 3 of my classes for CS Ed Week (although it was a different week due to exams – such the life of education).  I had heard good things about the film from several other computer science teachers and thought it would be a great history/cs topic.   I also found the website http://www.topsecretrosies.com/ very helpful for resources including a study guide and other reference links.  But enough about my decisions, it is the reactions to the film from my students that made this such a worthwhile experience.

The most profound remark occurred while the film was discussing how the women did not get credit for their work and it was showing how a picture was cropped so that it was just the man with the machine and not the women.  One of my male students remarked out loud “that’s not fair!”  I think he startled himself just as much as some around him because it was an impromptu emotional reaction. After the film this led to several comments about how none of them knew women did so much and why no one else knows about this.
During the film the students had questions to to fill out as well as opinions questions to answer.  Here are some of the best comments:
“I don’t get why they stopped and had a family instead of staying in computers”

“Why didn’t they stay in computers if they were doing well?”
“I think it is weird only one stayed in computers”
“Did men take back over all the jobs when the war was over?”

“I didn’t know women started all the programming”
“I think it would be hard to know your calculations killed people”
“Its cool that computers used to be knobs and levers.”
“I didn’t know computers was a name for people”
As you can see many students were surprised and actually upset that the women left computing for family and other opportunities.  The students collectively felt if the women started the job and were doing well then they should have stayed with it.  Some of them were also struck by the concept that what the women were doing with the calculations led to people being killed in the war.  This actually opened up a great conversation about understanding the consequences of your work and actions.  We discussed that people can have a far reaching effect when they are programming and it can be anything from bombs dropping to corporations making money, etc.  There were several other conversations centered around beginning computing, the people, the machines, and how different it is today.  Overall I would say this film had a much further impact that I would have thought.  The students learned history that included the women “computers” and also learned about the impact of war, computing, and jobs during that time period.
If you haven’t used this in your classes I would highly suggest it and my best advice would to not preface the film and just let them come to understandings and realizations on their own.  You might just be surprised what they say!

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