Computer Science as a Teaching Strategy

Recently one of my Facebook friends, Rebecca Dovi, computer science teacher in Virginia, posted an article from Education News, Julia Steiny: Promote Algebra by Teaching Basic Software Programming. The article was a reaction to an opinion piece from the New York Times by Professor Andrew Hacker titled “Is Algebra Necessary?”
Ms. Steiny recounts her experience serving as a member of a school board and mandating that students take pre-Algebra in the sixth grade and for the students that progressed successfully they would finish Geometry by the 8th grade. Those that didn’t were remediated and the failure rates for Algebra I was lower. She also states that only about one-third of the students learn out of context and that “Fully two-thirds needed to see the problem and think it through to grasp the abstract concept embedded in the answer.” That is where computer science comes in. She says that her two grown sons state that computer science is “algebra, only infinitely more fun and interesting.
Ms. Steiny gives an example of where this is happening now, Advanced Academy of Math and Science in Marlborough, Massachusetts. Students from grades 6 through 11 take computer science in conjunction with math and science so they see the application. She states that the students’ tests scores are “off the map.”
I am not only a computer science teacher but I also teach advanced math classes. Every day, in my math classes I see how students just don’t remember the basics such as calculations with fractions and factoring trinomials. They need to see the application to remember how to do the math. My computer science students see this when they are writing a programs. Recently when the students were writing a method to reflect a digital picture, I pointed out to them that they must see the pattern and translate it into an equation so the computer can repeat the operation many times. They try out their “equation” and can see if their reasoning worked.
She ends her article with “Can we really not see the value of computer science as a compelling teaching strategy? Who are the slow learners here?”
Ms. Steiny has more blog posts related to computer science at www.juliasteiny.com.
What do you think? Can we convince the education reformers that computer science is an important teaching strategy?
Myra Deister
CSTA At-Large Representative

Training Critical Thinkers and Problem Solvers

As a teacher I am always trying to find ways to encourage and interest my students in my class. I try to come up with innovative lesson plans that go according to what they like. I believe I must engage the students’ interests so that the material I am teaching stays in their minds for the future.
Lately, though, it seems that everything revolves around the question: Am I teaching and engaging my students to become critical thinkers and problem solvers? I live in a society where parents think that teachers are here mainly to serve students and insert information into their brains, holding the teacher solely responsible if that does not happen and not expecting any effort or work from the student. This applies to all subject areas, but in computer science it is really critical that we correct this misconception.
Students now, are encouraged to be human filing cabinets, where a bunch of information is stored but really have no idea how to use it in the real world. As teachers, we are always faced with the question, why do we need to learn this? How and when will I use this information in real life? These questions were commonly found in math classes but now it has transferred to the computer sciences area. There are lessons that our students must learn about computer sciences that do not require the use of a computer or other technologic device. This, in our students’ minds is inconceivable because they think that computer sciences without a computer are nothing.
Part of my curriculum focuses on teaching my students how to use their common sense and their logic skills the best they can so that they can solve the “world’s greatest problems”, and most of the time I have been searching for lessons that include using a computer or similar device. However, this school year I changed that, and the response has been outstanding. Therefore I want to share my experience.
I started using lessons from the program Exploring Computer Science. This program was created to encourage inquiry based instruction among other wonderful things. I especially love their unit on Critical Thinking and Problem Solving. I had the amazing opportunity to go to a workshop during the 2012 Summer CSIT conference called Exploring Computer Science:Teaching with Inquiry presented by Gail Chapman and Joanna Goode. This workshop was so amazing and provided so many wonderful ways to encourage our students to be thinkers and inquire about what they are learning. It was a hands-on workshop and I decided to apply several of the exercises with my students this school year. I learned two things from this: one, that this is a way to get to know the learning personality of each of my students and two, that I have been “spoiling” my students by blurring the line between helping them and actually initiating the work for them. I was not creating independent students but was being careful of completing my curriculum and having the output of good grades from my students.
Needless to say, I am fixing that. It is an everyday job though. I have to take my students out of the bubble in which a story starter has to be given to them or a word wall is the beginning of creating an original piece of work. I was limiting their creativity and innovation; I was guiding their problem solving skills by providing them with the right answer. Now I can see my students blooming and creating amazing work. On the downside, I now struggle with some parents who believe I am pushing my students too hard. I have to break down the walls that students build instantly even before the topic is explained. I also have to teach my students that sometimes failing a task is part of the learning process. When success is not achieved the first time, it only means that they have to take a different approach to the situation, plan a strategy and try again. Whether this applies to programming, design, video games, robotics or simply living and performing their daily tasks, it is part of the learning process and this is a skill that will stick with them for the rest of their lives.
I encourage other teachers to take a look at the Exploring Computer Science program since it has an easy to follow approach to teaching computer sciences, with units that are well thought and applicable to any level of students, plus it is also aligned to the CSTA standards. It is truly satisfying to see students embrace a new approach to the same material or skills. See it as a chance to practice what we seek to teach — critical thinking and problem solving.
Michelle Lagos
International Representative
CSTA- board of directors

Using Exploratory Learning for CS

This year I am making some changes in my introductory Computer Science class. Last year, I added Scratch and BYOB as lead-ins to my standard programming language, Racket (Scheme). This year, I am going straight to BYOB, but following it up with AppInventor for the rest of the course.
Detractors of curricula using Scratch and BYOB say that learning programming through exploration is not a good way to learn computer science concepts. It lacks rigor and structure and leaves students with the idea that if they just try a different value in a field, they might get the “right” answer. However, I see benefits to allowing students to explore and investigate how different commands work and the cause and effect of changing program commands and/or parameters. I find that my students do gain an understanding of the basic concepts. They also get to be creative in how they accomplish the given task. With open-ended introductory labs they don’t just accomplish the assignment and stop. They play more, are apt to experiment more, and push themselves further. As assignments become more focused, they are willing to try different approaches. They continue to experiment.
I am hoping with the introduction of AppInventor in the curriculum, students will get a real-world understanding of how to build a full application through more large scale projects. Certainly, building mobile apps is a motivator for students. Students should be able to apply the computer science concepts learned earlier to build a more complex application that involves so much more than just straight coding. Students will learn about project design, teamwork, user interaction, prototyping, user feedback, testing, and iterative engineering.
This change is a bit scary, but exciting as well. I hope it will open the eyes of the students to all the work that goes on in order to make the mobile devices they carry around so powerful. And I hope that it empowers the students to realize that they can be the creators, rather than just the users of those devices.
Karen Lang
CSTA 9-12 Representative

Changes I Plan To Make

Recently I read an article by Noa Gutow-Ellis a 10th grader in Houston, Texas:
http://www.teachthought.com/industry/what-makes-teachers-great-from-the-perspective-of-a-10th-grader/
that was highlighted on Twitter by Edutopia. In her article she describes an outstanding teacher. She states that there are four traits that make a teacher remarkable:

  • Teachers that care about us both in and out of the classroom
  • Teachers that are beyond passionate
  • Teachers that plan unforgettable lessons
  • Teachers that aren’t afraid to be challenged.
  • As I was reading the article, I was thinking about how I could emulate each of these qualities in a computer science classroom because I want to inspire my students to learn computer science.
    Here are my thoughts about the first point: Teachers that care about us both in and out of the classroom. Some of my students are in the U.S. without parents. They have student visas and live with a relative or board with another family. I have presented lessons on phishing schemes that have benefited my students in the past. I can think of one student that after my presentation was caught in a phishing scam and approached me for advice. I am also taking this into the future. I plan to have guest speakers during Computer Science education week to discuss possible career choices for my students.
    For the second point: Teachers that are beyond passionate, I need to share my passion. I will have to find a way to stay energetic because my computer science classes have been schedule at the end of the day rather than at the beginning. I am still thinking about this one. I need to bring in how computer science is used in areas that my students are interested in.
    I have some ideas for the third point: Teachers that plan unforgettable lessons. I attended a Tapestry Workshop a few months ago where Seth Reichelson from Florida spoke about his lessons. I hope to incorporate some of those into my class. Also, during the same workshop, Robert Luciano from Pocono Mountain East High School, Swiftwater, PA spoke about using logic problems as a warm-up activity. It motivates his students to get to class to start working on them. Linda McDaniel from Wesleyan School, Norcross, GA during the Tapestry Workshop told me that she tried it this past school year and it had the same affect on his class. I have purchased Critical Thinking, The Daily Spark from Amazon to use as logic problems. Also, the parent support group at my school has agreed to purchase 9 Finch robots for my class. I want to use these as part of an unforgettable lesson.
    The last point is Teachers that aren’t afraid to be challenged. I am willing to let students question what we are doing and suggest a better way to do it. I enjoy and welcome the challenge that their way is better and let them work to prove it.
    I am looking forward to the beginning of the school year and working to incorporate each of these traits into my computer science classroom.
    What are your ideas about incorporating any of these traits into your computer science class?
    Myra Deister
    CSTA At-Large Representative

    Modeling Effective CS Professional Development

    Last month, the National Science Foundation sponsored a workshop on creating high-impact professional development experiences for K-12 computer science teachers. After synthesizing research from a variety of models across STEM fields, the leaders of this workshop noted that the most effective professional developments have the following characteristics:

  • Focuses on a purpose anchored in student learning of specific content in a specific setting
  • Focuses on curriculum and pedagogy
  • Focuses on instruction and learning
  • Models effective practice
  • Active learning opportunities for teachers
  • Develop/sustains group work
  • Collective participation of teachers
  • Teachers experience critical colleagueship involving critique and trust
  • Continuous, long-term, with a substantial number of hours
  • These characteristics resonate with me when I reflect on the many “professional developments” I have had positive (and negative) experiences with both as a teacher and teacher educator in various computer science professional development events.
    What do you think? Do these characteristics reflect the type of professional development you think has the most significant impact on your classroom teaching?
    Joanna Goode
    CSTA Equity Chair

    Feedback on Feedback

    I’m looking for feedback on feedback. Giving feedback to students, that is. I’m being pulled in three directions on this topic and would like to hear from fellow CS teachers on what you are all doing in your classrooms.
    As a teacher with almost 100 AP Computer Science students, grading student programs (both of the typed and handwritten variety) is a daunting task. Grading like a human compiler would be valuable, but that would take an amount of time exceeding the available amount of time in the day. Instead, I rely on an extremely healthy dose of formative feedback, given to students while they are programming as I walk around the room. The students seem to appreciate and value this type of feedback, especially since it is personalized to both them and the task at hand. In contrast, the amount of summative feedback I give to the students is minimal and often I feel badly that I do not give them more, descriptive feedback about their work.
    Do the students want more written feedback?
    Would they do something constructive with it or would they just toss it aside?
    As a student enrolled in a graduate class this spring, I lamented the lack of feedback I received from my instructor. The computer programs I slaved over for up to 20 hours on the weekends in languages that were new to me earned perfect scores. While extremely happy about the grades and satisfied that I completed the tasks on my own accord, I felt incomplete without any feedback. I knew my programs compiled and ran according to the specifications. I also knew that I did my own work without any assistance.
    So, why need feedback? I had no idea if I wrote the programs best utilizing the functionalities of the new languages I was studying or if I was just approaching them the “Java” way. I needed to know if I approached the problems the way intended by the professor, if I was learning what he had designed for us to learn, and if my programs were efficient. The one time I asked for feedback on a program that earned a 100, I didn’t receive a response.
    As a teacher who is supervised by a principal who thinks feedback is VERY important, I struggle with the amount and type of feedback to give. My principal believes that every written assignment should be returned with a significant amount of comments. Comments that can easily be understood by parents, no less! How can I write comments that are specific enough from which students can benefit, but that can also be understood by parents who most likely have not studied computer science? And how can I write enough to satisfy his requirement without taking up all the hours in a day?
    Ria Galanos
    CSTA 9-12 Representative

    Flexibility and Creativity in Teaching

    Hack Education has an interesting interview with Laura Blankenship, a computer science teacher in Pennsylvania. I think it’s great the flexibility Laura demonstrates – when Scratch wasn’t working for her students, she switched to something that worked better for them.
    This is an interesting silver lining to the lack of mandated standards in computer science – we often have the flexibility to change what we teach in substantial ways, such as switching from straightforward programming to a web-based approach and digital media, such as Laura did. I’ve long known flexibility was a key to great teaching – providing students with appropriately engaging challenges while teaching the important material. Of course, being that flexible has huge challenges!
    If nothing else, I hope the interview gives you some creative ideas for things you might do with your students!
    Michelle Friend
    CSTA Past Chair

    Does CS “Rock” for your students?

    One of the more interesting pieces of non-solicited email that I received this morning offered to help me teach like a rock star. I have to admit, the promotional technique was catchy and the email itself was short enough to read in less than a minute. And yet it intrigued me. I often wonder if teaching like a rock star is what we need to do to engage our students in computing and computer science. It is certainly well-known that we do need to attract more students and more diverse students in our discipline.
    Studies show that Generation Z students want to be fully engaged in the classroom and in their education. These Gen Z students are “digital natives” who have grown up with the Internet and multitasking. Computing has always been mobile for these students and information has always been readily accessible through the Internet. They are highly connected in their personal lives, and they expect to be highly connected in their education lives as well. These students do not learn by listening to lectures and completing worksheets. They learn by doing, and they learn by teaching and from each other. These Gen Z students are entrepreneurial and highly service-oriented. They are 21st Century learners, and they learn and work collaboratively. They seek to develop a broad range of skills to equip themselves for the workplace. These Gen Z students are in our CS classrooms today.
    How do you engage Gen Z students in your classroom? Do you have students working collaboratively with a diverse group of students to solve real-world problems? Do your students teach other students (as well as teach you)? Are mobile computing devices and other computing technology readily available to your students in the classroom? Do you guide your students to engage in their own learning? Are you a rock star and does CS rock for your students? Are you allowing each of your students to be a rock star in the classroom? Do you have a flipped classroom? Can your students obtain new content through a Learning Management System and/or a video BEFORE they come to class so they can collaborate to problem solve in class?
    We are so fortunate to teach a discipline that not only lends itself well to collaboration for problem-solving but really demands it. Computing technology is an essential and integral part of what we do. Our CS students should be actively engaged in their own learning in our classrooms. They should be using computing and computing technologies to solve authentic problems. We should be teaching like rock stars. Our students should be learning and evolving into rock stars. Entrepreneurial, collaborative, computational thinking, service-oriented rock stars. What great hope for our future.
    Further information about topics noted can be found at these sites:
    http://www.teachlikearockstar.com/brochure/

    http://www.newsobserver.com/2012/02/05/1828783/too-smart-to-wait.html

    Deborah Seehorn
    CSTA Board of Directors

    Dates for Data?

    It’s high school. It’s Valentine’s Day. The air is thick with hormones. But just as important as x’s and o’s are 1’s and 0’s.
    As a part of the CS Principles pilot this year I have struggled to make the curriculum engaging and exciting while still maintaining the rigor of a college level course. The class is built around seven “Big Ideas”, and while many are fairly straightforward to teach, like Algorithms (Big Idea IV) or Programming (Big Idea V), Data (Big Idea III) has been a bit of a struggle. It sounds fairly simple at first: Data and information facilitate the creation of knowledge. Of course they do. However, connecting that for teenagers is not so simple, especially when you start looking at the supporting concepts, like Computational manipulation of information requires consideration of representation, storage, security, and transmission.
    Enter the Matchmaker.
    Every year my Computer Club does a fundraiser called the Matchmaker. For $1, students can buy a list of their top 40 most compatible classmates. We get every student to fill out a questionnaire and then use scientifically tested algorithms to print a list of their top love-matches. In reality the computer club kids write a program that reads in those answers from a file and matches students based on their answers, but “scientifically tested” sounds good in the commercials.
    This year we did the Matchmaker out of the CS Principles class, since it is the same group of kids that are in the computer club. We’ve usually raise $500 – $700. Not shabby considering the only cost is the paper we print on. The bigger benefit, however, was the discussions about data. Looking again at the supporting concept, Computational manipulation of information requires consideration of representation, storage, security, and transmission. It is all there.
    The first step every year is to design the questionnaire. We discuss question format and how we will digitize the answers so they can be processed. With over 1400 students in our school this is no small task. Also key is the format of the file. Questions like “should the answers be separated by spaces or tabs” must be decided before any coding starts.
    Privacy and security are also issues. One of the biggest problems is making sure we collect enough information to identify students and sell them their matches without using their student ID’s, which are connected to lunch accounts and grades. I find that few 17 year olds are deeply concerned about issues of data security, so this has been one of the most valuable parts of the lesson. Nothing motivates kids to secure their information like protecting their lunch account numbers.
    Throughout the course we have used a weekly discussion board topic to reflect on what we are learning. These topics surrounding the Matchmaker have been some of the most hotly debated of the year.
    After 15 years of doing this fundraiser I know of at least two married couples that were matched by the Matchmaker. Selling the concepts of “Big Data” is just one more long term benefit.
    So what interesting ways have you found for teaching Big Data?
    Rebecca Dovi
    rdovi@hcps.us
    CSTA Leadership Cohort Member

    Fun versus Rigor: Getting Students Ready for the Next Level

    One of my goals this year was to make my CS course more fun for my students. I felt as if (and received feedback from students that) some of my programming assignments became drudgery, due to my strict adherence to correct documentation and test cases. The joy of finding a solution to a problem, of seeing your program run without error, was overshadowed by the prospect of dotting all i’s and crossing all t’s. So, this year, I am trying to be more flexible with my approach, and to focus more on the process of problem solving and achieving good solutions, rather than just hammering home the documentation aspect of being a good programmer.
    We started off using Scratch this year, which set the tone early, that programming is fun. Students were enthusiastic, were buzzing about what they could create, and ready to show off their programs. We transitioned to BYOB, which allowed students to build their own blocks, or functions, as a lead-in to functional programming with Racket. Not only did this sequence set a more playful atmosphere, it alleviated some fears of this scary subject, computer science. I found it was a good method to ease students into what many find to be an intimidating subject.
    As we move through the curriculum, there is the inevitability that topics go deeper and the work becomes more difficult. Computer Science is not an easy subject to study. It is difficult and students at some point, have to realize that. I have had more than a few students who leave my class with an interest in going further in the subject. As they move on to college (our seniors take college courses at WPI), some are overwhelmed by the difficulty of the college classes, don’t perform well, and lose interest in the subject. What can I do to better prepare them for the challenge of CS at the college level?
    I want to encourage interest in the subject, make it appealing to all students, but not at the cost of academic rigor. Or is that just the nature of moving deeper into a subject – some will discover that it is not for them, for whatever reason?
    Karen Lang
    CSTA Board of Directors
    9-12 Representative