Category Archives: Computer Science

Three women in a meeting image by rawpixel

How to Encourage Young Women and Marginalized People to Participate in CS and Engineering (part one)

by Pati Ruiz

This past July, I had the opportunity to present my dissertation research at the Computer Science Teachers Association conference in Omaha, Nebraska! My presentation was titled 5 Ways to Encourage Young Women & AHN to Participate in CS and Engineering. In this series of two posts I will summarize the highlights and share resources that I found incredibly helpful as I conducted my research.

In a recent Medium post, Code.org reported that in 2018, young women still only account for 28% of all students participating in AP Computer Science exams and only 21% of African Americans/Blacks, Hispanic/Latinx, and Native Americans/Alaskan Natives (AHN) youth participate. This is a problem that researchers like Jane Margolis have been working on for years. Dr. Margolis describes this structural inequality in computer science (CS) participation as an issue of empowerment and preparatory privilege. Addressing and dismantling the systems that perpetuate the underrepresentation of women and other groups in CS is important for the sake of equity and would also offer economic benefits (Beyer, 2014). With technology ubiquitous and mediating much of our daily lives, access to CS has become a civil rights issue. It is essential that those who sit at the design tables and those who lead technology projects represent diverse perspectives and the needs of our population as a whole. Unfortunately, there is a deep-seated lack of representation of women and AHNs in the computing field. This problem is the one I set out to study. My research focused on:

  • The intersectional identities of young women,
  • The distribution of power in computing, and
  • The elements that support, promote, and sustain the participation of women and underrepresented minorities in technical fields.

While I did study participants who identify as female, when I use the term “underrepresented minorities” I am including a range of identifiers that are considered marginalized in tech and computing, including the gender spectrum, age, race, socioeconomic status, and ability. Through my study, I wanted to gain a better understanding of the lived experiences of underrepresented women in undergraduate computer science and engineering programs. Among my primary findings is that more work needs to be done for positive advances to be made in the field.

This problem is particularly relevant to me. When I was in college, I studied CS in the school of business. That meant learning fundamental methodologies and approaches to computer programming with an emphasis on examining the complex relationships among science, information technology, business, and society. I did not go into the technology field immediately after graduation, though. The tech bubble had just burst, and I kept hearing about how hard it would be for me to find a job in tech. That — mixed with traditional CS world stereotypes (male, antisocial, etc.), stereotype threat, and not knowing anyone in the field or having a helpful advisor or any friends in my major who could help me — led me to pursue another passion: teaching. While I am so thankful to have gotten to teach Spanish (my first language) and Computer Science in grade 6-12 settings for over 15 years, I often wondered what would have happened if I had persisted in the tech world upon graduating. Where would I be now? Furthermore, as an educator interested in diversity and inclusion efforts, and someone who identifies as Latina, I have always been interested in the work being done to increase young women’s and AHN’s participation in computing from elementary school through industry. So, how can educators (specifically K-12 educators) encourage the participation of young women and AHNs in this field? Here are five ways:

  • Model an interest and passion for CS
  • Create safe spaces for making mistakes
  • Build community and connect youth with mentors
  • Introduce youth to careers in the field
  • Make interdisciplinary connections

You are probably familiar with these methods, and you are probably integrating many of these elements in your classrooms already! I will discuss the first two here and in my next post, I will provide some resources you might find helpful and that you can share with others as you continue to support all learners in your classroom.

Model an Interest and Passion for CS

My research and that of others shows that there are several ways that teachers can share their passion for the subject with students. Participants in my study identified teachers who modeled an interest and passion for CS and Engineering as creating opportunities for their students to engage with design, personalize their learning, share it with friends and family, and reflect on it. What my study participants were describing as supporting them in the CS classroom is a constructionist learning environment. Constructionist learning environments give students the opportunity to engage with design, personalize their learning, share, and reflect on their work.

As I conducted my research, I drew from two main frameworks when I looked to design engaging learning environments. First were the engagements practices found on the NCWIT EngageCSEdu platform and the repository of course materials centered around this research-based framework.

Three elements: Grow inclusive community, make it matter, build student confidence and professional identity.
NCWIT Engagement Practices

In my research, I found that the integration of these practices–growing an inclusive community, making it matter, and building confidence and a professional identity–engage diverse learners. Supporting these goals, the materials that are shared on the website can be sorted by engagement practice, course level, and programming language.

The second, very helpful resource that I use as an educator is the Universal Design for Learning (UDL) guidelines. This framework, described in more detail in this CIRCL Primer, is designed to improve and optimize teaching and learning for all people based on learning science research. The goal of UDL is to support learner variability by providing options to develop self-regulated learners who comprehend content and have high executive functioning skills.

UDL image that shows three parts of UDL: Providing multiple means of engagement, representation and action and expression to support learners who are purposeful and motivated, resourceful and knowledgeable, strategic and goal-directed

So, as CS teachers, you can model your interest and passion for CS by designing and delivering meaningful and interesting curriculum!

Create Safe Spaces for Making Mistakes

Learning environments that support metacognitive acts and encourage collaboration can support the persistence of girls in CS courses and careers as they learn to be resilient when faced with CS problems and challenges (Werner & Denning, 2009). Participants in my study described the importance of engaging in exploratory talk – or metacognitive monitoring of themselves and their partners. They described feeling very comfortable making mistakes with partners in pair programming activities because the stakes were not that high and they were able to talk through their work with someone else; it didn’t fall on them alone.

Modeling making mistakes is important. Let your students hear your problem-solving process and encourage them to share their own processes. But also make mistakes and talk about those mistakes. When I’m programming along with students (code along) and projecting my work on a screen, I make lots of mistakes and talk through those mistakes with my students. “My code didn’t run —  oh, I forgot to change directories in terminal and the file was not found, or I forgot a semicolon.” This modeling of mistakes is so important for students to see and hear.

One important note is that when grouping students, it is best to put those students with similar experience levels together and to avoid isolating women and underrepresented students – put young women and AHNs together so they can support one another, if you can. While some teachers may want to put an advanced student with a less advanced one, this is not always good. In Strategies for Educators to Support Females in STEM, Dr. Wiest (2014, p. 1) reminds educators to:

“Use varied, student-centered teaching methods within a ‘safe’ classroom climate. In particular, use mixed-ability, collaborative (rather than competitive) group work, hands-on methods, and meaningful (such as real-world and interdisciplinary) contexts. Use mixed-gender groups, but avoid placing only one girl in a small group, even if that results in having one or more all-male groups. Monitor and rotate these groups regularly.”

Read part two of this post here.

How do you model an interest and passion for CS? And, how do you create safe spaces for your students? Tweet @CIRCLEducators and tell us!

SciGirls Code Image STEM for All

STEM for All Video Showcase Featuring SciGirls Code

By Angie Kalthoff

The STEM for ALL Video Showcase is an online film festival of 3-minute videos about educational projects that are really interesting to watch. It includes projects funded by the National Science Foundation (NSF) and other organizations with a goal to highlight projects that are transforming Science, Technology, Engineering, Mathematics and Computer Science education. In 2018, there were 214 video projects shared that highlighted the work of 713 presenters and co-presenters. The showcase project brought people from over 174 countries to the site to learn and discuss.

The showcase is an interactive event. Viewers were invited to ask questions and have discussions with the people doing the research and with other viewers, right on the site in a discussion thread. You can still go read the conversations that happened on the site during the event. Conversations were also carried over to social media. To follow along the Twitter conversation, you can visit #STEMvideohall.

An additional element making this an interactive project is the awards. Projects were recognized through the following awards:

  • Facilitator Choice
  • Presenter Choice
  • Public Choice

All projects fell into one of the following themes which revolve around

Transforming the Educational Landscape:

  • Partnerships that advance education
  • Broadening participation & access to high quality STEM experiences
  • Innovative practices transforming education
  • Research informing STEM learning and teaching

As a facilitator for the STEM for ALL Videoshow case, my job was to review projects and facilitate conversations with presenters and visitors. I facilitated discussions on projects around Computer Science (CS) and Computational Thinking (CT) in education. For me, this was an incredibly exciting experience. I am  a public school educator, more specifically a Technology Integrationist. I began my teaching career in an elementary English Learner (EL) classroom before transitioning to my current position. I am constantly thinking about ways to incorporate CS and CT into elementary classrooms while creating a culture where classroom teachers confidently deliver the lessons. In my job, I have conversations on a daily basis with educators, families, administrators, our community, and students about the importance of CS and CT in education. This showcase gave me insight into projects that are currently being worked on to make CS and CT education accessible for all students in a variety of different ways.

The video  project I would like to highlight in this post is SciGirls Code: A National Connected Learning CS Model. It was the winner of Presenters Choice and Public Choice awards!


As described on the site, “SciGirls Code,” a pilot program funded by the National Science Foundation STEM + C program, uses principles of connected learning with 16 STEM outreach partners to provide 160 girls and their 32 leaders with computational thinking and coding skills. To reach this goal, SciGirls developed:

  • a nine-month curriculum centering on three tracks—mobile apps, robotics, and e-textiles;
  • role model training for female technology professionals;
  • professional development for STEM educators;
and
  • a research component that investigates the ways in which computational learning experiences impact the development of computational thinking as well as interest and attitudes toward computer science (CS.)”

Girls in the program participate in projects around apps, robotics, and e-textiles all while sharing their learning with other girls in the program across the nation. Using Flipgrid, a Minnesota startup, girls create quick videos in which they share their thoughts and experiences. Through their experience they understand that coding isn’t an individual venture, it is connected.

SciGirls Code is trying to understand the following three questions:

  • How do computational learning experiences impact the development of computational thinking? [learning]
  • How does engaging in computational learning experiences impact interest in and attitudes towards computer science? [interest]
  • How does engaging in computational participation practices impact learners’ perspectives of self and world? [participation]

What they have seen so far from girls who participate in SciGirlsCode:

  • Increased confidence with coding in girls
  • Increased interest in pursuing CS careers
  • Excitement around CS, CT, and coding in general

I loved learning more about SciGirls because prior to the showcase I had been using and sharing resources from SciGirls Code. One of my favorite ways to talk with kids about STEM+C careers (which is STEM with Computing) and why we learn about computer science, is through personal stories. I have found many of SciGirls Code profiles helpful when introducing a coding or robotics activity. I like to start my lessons in classrooms by connecting how what we are doing could relate to the world around them. It could connect to a future career or real life examples they have experienced. While many of the activities have a focus towards girls in middle school, I am able to be selective in resources and adapt them to meet the needs for kids in kindergarten or while working with students of any age.

When you have time, visit their website so you can explore the many different resources they have. They have so much in addition to coding resources. Here are a few of my favorite:

  • Profiles – Featuring a variety of young and diverse women in STEM careers through short videos that showcase their careers and experiences.
  • Educator Resources – Providing a variety of resources for classroom use, access to training, and scholarships.
  • Kid Resources – A site for kids to explore videos, games, and create their own profile.

How do you connect classroom activities on STEM+C with real world stories? Who are the female role models you look to when encouraging a more inclusive culture? How could you use SciGirlsCode resources with kids you know (in and out of the classroom)?

The STEM for All Video Showcase is funded by (Award #1642187) and done in collaboration with the following NSF-funded resource centers: MSPnet, CADRE, CIRCL, CAISE, STELAR, and CS for All Teachers.

Visit the following links to see additional projects Facilitator Choice , Presenter Choice , Public Choice

Visit the following link to view additional facilitators.

From Research to Practice: Introduction & Computational Thinking

by Angie Kalthoff and Pati Ruiz

Cyberlearning researchers including Shuchi Grover, Satabdi Basu, Eni Mustafaraj, Jodi Asbell-Clarke, and Katie Rich have been writing about and discussing computational thinking. Their research has been instrumental in helping us think about what these concepts and skills look like in the classroom. One thought from the CT primer that really resonated with us is:

“Increasing access to CT instruction is now widely discussed as a social justice issue.”

As educators with the goal of making Computer Science (CS) accessible for all, we often find ourselves wondering “how can I, share CS with other educators who might feel intimidated by this topic?” In this post we, Angie and Pati will, share how we are connecting what researchers are working on in many different domains and thinking about with what K-12 educators and parents can do to bring CS to their students and children. After all, as the authors of the CT primer point out: “several CT skills are not exclusive to the field of computer science.” For both of us, taking a broader lens gives us more tools to help.

I (Angie) don’t have a formal education in CS. I started my teaching career in an English Language(EL) classroom. It was during my time in my classroom, I discovered I really enjoy helping others create through the use of technology. This led me into my current role as a Technology Integrationist in a K-12 public school district.

My first tools for electronic creation included the iPod (yes, iPods the iPad wasn’t released yet) and interactive whiteboards. While my journey with these devices started as tools of consumption, they led towards tools of creation. However, it wasn’t until I discovered CS that I really felt like I was empowering my students to create anything they could think of. I saw coding as a way of self expression. This mindset grew in me as I explored research in the early childhood CS field.

The image below shows that, while CT can be a new concept for some of us, there are already many situations in which it can easily be brought into existing lessons. Learn more about Advancing Computational Thinking Across K-12 Education (the image below is from this document).

I (Pati) studied computer science in business (Operation and Management Information Systems) in college, but I didn’t get to begin teaching stand-alone CS classes until 10 years after I started teaching because they weren’t offered in my schools. I did teach digital literacy and computational thinking (CT) classes early on, as part of a Middle School skills curriculum. However, my understanding of CT has changed a lot since I worked with my first group of Middle School students. Thanks to the work of researchers that is summarized in this Computational Thinking Primer, I was able to learn more about the skills and dispositions important in CS education and continue iterating on the very first lessons I designed. One of the things that helps me in my teaching is to read about the research being done, think about what was learned, and bring back what I can to my classroom to make improvements. The research I read gives me different ways to think about what I’m seeing in my students and also what I’d like to see.

As researchers like Shuchi Grover and Jodi Asbell-Clarke have pointed out, experts still do not agree on what CT is and there is a CT communication problem. Angie, Sarah, Judi, and I did a lot of thinking on this topic when we worked on the Computational Thinking for Teachers & Parents Webinar Series to help teachers and parents bring CT into the classroom and into their homes. It took time for us to work through relevant research articles and examples. One thing that I really enjoyed about this process was getting to discuss these topics with other very thoughtful people and hearing about new lessons and games. Although I did not play it until much later, one CT game that I now enjoy playing is Human Resource Machine. In this game, you program office workers to solve puzzles using coding commands. According to the game developers, “you start the game with just 2 commands, and gradually earn more as you’re promoted. The entire language contains only 11 total commands – but they’re enough to simulate almost any computer algorithm in the world!” As long as you can do this well, you are considered a “good employee” and can work for another year. You should check it out and see if it could fit into your classroom or just help you think about CT on your own!

Finally, as we discussed how to share what we had learned about CT with other educators, we wondered where CT fits in other terms we had been using for years like digital literacy, programming, and CS. To help us think about these terms we remixed an image by Colin Angevine that we found in a report titled Computational Thinking for a Computational World.

In summary, computer science can be seen as the academic discipline that includes programming. Computational thinking includes the problem-solving processes that involve thinking, as Grover and Pea (2013) describe, “like a computer scientist when confronted with a problem.” Computational thinking is useful in many STEM domains and can be brought into other subject areas.

If you are interested in learning more about CT, visit Digital Promise microcredentials Computational Thinking: Key Elements and Practices. At the site, you will find competency-based recognition for professional learning on a variety of additional topics. In future blog posts, we’ll consider how CT differs from Computer Science education and teaching technology skills. Finally, please leave us a comment – we’d love to hear from you about how you use research to guide your work!

References

Grover, S., & Pea, R. (2013). Computational thinking in K–12: A review of the state of the field. Educational Researcher, 42(1), 38-43.

NRC. (2010). Report of a workshop on the scope and nature of computational thinking. Washington, DC: National Academies Press.

NRC. (2011). Report of a workshop on the pedagogical aspects of computational thinking. Washington, DC: National Academies Press.

What is Pseudocode?

by Angie Kalthoff and Pati Ruiz

Welcome back! As many of us head back to school, we wanted to share our thoughts on Pseudocode and making coffee is one example we thought would be appropriate. Think of pseudocode as a way to help you organize your thoughts in a sequential manner as you design your project, before you translate it to code. Pseudocode is written in a form that is similar to the language you speak, and allows you think through how to solve a problem without having to worry about the rigorous syntax of a programming language.

In fact, pseudocode is simple enough that you don’t need a background in computer science (CS) to write or read it. Pseudocode is can be translated into a programming language and is a great way to help you organize your thoughts. Students might write pseudocode for non-programming or “unplugged” activities, or as they prepare to write programs in block languages or more advanced programming languages.

You may be wondering: Why not just use code to write the program? Syntax. When writing in pseudocode, you are taking your thoughts and transcribing them into a language you understand and can communicate to others. You are in control of the structure and don’t have to worry about choosing a specific programming language or worry about syntax errors (which mean that your code does not work!). The goal of pseudocode is to describe the code of your program in a relaxed way – without worrying too much about the details. And, while pseudocode is written in “english-like” language, more experienced programmers (also known as developers) tend to write pseudocode that is more similar to the syntax of the target programming language.

Sometimes, using images or flowcharts also help as you design your project. A flowchart often starts with a question that has two possible answers:

  • yes/no
  • true/false

Flowcharts use special shapes to represent steps, decisions, or actions, and lines between shapes  to show the flow or sequence between the steps. Shapes used include ovals (for start and end), diamonds (for questions/decisions), rectangles (for processes), and other actions. Additional shapes could also be used – it’s up to you! To learn more about flowcharts, visit Pseudocode and Flowcharts.

Classroom use of Pseudocode

Many lessons have been developed to help you and your students think sequentially about everyday tasks. By starting in early grades, students will have practice developing their “computational discourse skills”. Computational discourse skills are described by Grover and Pea (2013) as ones that help children develop a vocabulary that is faithful to the computer science discipline while also allowing for the development of an understanding of programming and computational thinking concepts and skills.

Classroom connections to pseudocode include tasks your students have to complete and the directions they need to follow to accomplish these tasks. When students wash their hands, there are a series of steps that are taken. You can think of these as the directions for handwashing or as an algorithm (a list of steps that you can follow to finish a task). To write these steps, we break them down into understandable chunks, and write them in a sequential order.

If someone has never washed their hands before, you could not simply say “wash your hands.” Instead you could write it out in pseudocode.

Wash your hands.
    Walk to a sink.
    Turn on the water.
    Pump the soap dispenser as many times as necessary with one 
    hand while holding your second hand below it in order for the 
    soap to fall into that hand. 
    Stop pumping when a quarter sized amount of soap is in the  
    second hand.
    Once soap is in hand, rub hands together to distribute soap     
    between hands.
    Place hands under running water while rubbing them together.
    Rub hands until so is no longer present.
    Turn off water.
    Pick up towel and rub on hands until hands are dry.

Here are a few example lessons that you could start using in your K-5 classrooms to build students’ computational discourse skills::

In addition to the unplugged activities shared above, students in grades 6-12 can begin developing a pseudocode practice as a precursor to writing code. This Bubble Sort Unplugged Activity is an excellent example of what older students should be able to do with pseudocode. Another example is this Python ‘elif’ exercise found on usingpython.com. Professional programmers all have their own pseudocode styles – some like less detail and some prefer more detail. Some developers use a different method altogether during their software development process.

Want to know what pseudocode could look like? Visit Gabriel Comeau’s post to see how he describes how to make coffee using pseudocode.

Resources

Works Cited:

Grover, S., & Pea, R. (2013). Using a discourse-intensive pedagogy and android’s app inventor for introducing computational concepts to middle school students. In Proceeding of the 44th ACM technical symposium on Computer science education (pp. 723-728). ACM.

CS Recommendations

By Pati Ruiz

This post is not sponsored by anyone and I receive nothing for these recommendations.  I make them because I like the tools. My recommendations have been tried with high school aged students and older.

What tools do you recommend for learning to program?

As a high school computer science teacher, I often get this question from other teachers as well as friends and family members: What tools do you recommend for learning to program? I have learned that the people asking either have absolutely no experience programming or they have the basics down and want to learn more or teach others. As a result, the recommendations that I give most often are:

  1. For those with no experience: Codecademy
  2. For teachers and those with some experience: Trinket

Codecademy is great for most people who just want to get a taste for programming. It is designed as a tutorial platform for beginners, and provides lessons as well as an introduction to several different programming languages.

For fellow teachers who want to bring programming into their classrooms and those who have some of the basics down and want to dig deeper into projects, I recommend Trinket because it is:

  • Easy: Trinket is an “all-in-one coding environment”
  • Free: Trinket is free to use and gives you access to open (also free) educational resources
  • Inclusive: Trinket allows users to program on whatever device they have access to whether it’s at school, a public library, or home.

To begin with, Trinket is easy to use, with a clean and simple user interface. Trinket works very well for people who might not want to download a text editor like atom, worry about having the correct system setup, or work in terminal. I have been using Trinket in CS1 for HTML5 and CSS, and in CS2 for Python, for over three years now. One of the reasons I keep coming back to it is because some of my students work on iPads, some work on laptops, and some borrow school laptops. Trinket makes it easy for people to learn from any device as long as they have access to their account via the Internet. This is a great tool, especially for learners without consistent access to the same device.

Picture

The second reason I recommend Trinket is because it is an open-ended coding tool that also provides free content and lessons. In my CS1 class, for example, students explore HTML5 and CSS. After a few lessons on HTML5 and CSS, students use Trinket to practice what they have learned. They see how they need to link HTML files to CSS files, and they discover how these interact with one another. When my CS1 students begin to learn HTML, they “remix” a trinket that I created to guide the lesson. My students are able to use the trinket that I created as a guide, and they begin to use what they learned to change the trinket and make it their own. Ownership and giving students something do are essential parts of learning. With Trinket, students are the owners of their own code and they can see immediately how editing code changes their webpages. As Dewey described in Democracy and Education (1916), “doing is of such a nature as to demand thinking, or the intentional noting of connections; learning naturally results (Ch. 12).” Trinket allows the student to be actively involved and engaged in the learning process.

In my CS2 class, I use the textbook Python for Everybody by Dr. Charles Severance. This textbook can be found on the Trinket website along with interactive trinkets to guide learners along the way. I agree with the Trinket team that Python is a great first language . Having said that, Trinket also has Think Java: How to Think Like a Computer Scientist by Allen B. Downey & Chris Mayfield  on their site for people to work through. These high-quality open educational resources are important for those of us who are educators because they can save us a great deal of time. As a result, instead of developing content, teachers can focus on supporting student learning in their classrooms.

Finally, I appreciate the Trinket team’s commitment to creating inclusive learning environments and opportunities for all learners. Through the development and support of open education resources like the ones I mentioned above, the company provides a variety of learning experiences for a wide range of learners. As an added bonus, the team at Trinket has translated some of their offerings to several languages! The Spanish version is especially useful to me since many of my family members prefer to learn in Spanish. Switching back to English, here is an example of one of Trinket’s interactive challenges – try it to learn a little bit about programming in Python.

Check out these trinket lessons and how teachers Meg Ray and Paul Kostak  are using Trinket.

On a related note, If you’re interested in learning more about computational thinking,  sign up for this upcoming CIRCL webinar series: Computational Thinking for Teachers & Parents. The webinars will take place Jan. 30, Feb. 6, and 13.  See the above link for more information and to register. 

Implementing Bootstrap: An Adventure in Algebra and Computer Science Integration

By Sarah Hampton

In a former post, I wrote about a site I discovered while exploring the 2016 Stem for All Videohall called Bootstrap.

Bootstrap designs curricula that meaningfully integrate rigorous computer science concepts into more mainstream subjects such as math and science. Developed with the help of Brown, WPI, and Northeastern, Bootstrap has backing from several major players including Google, Microsoft, and the National Science Foundation. If that isn’t enough to pique your interest, initial research shows that Bootstrap is one of the only computer science curriculums that demonstrates measurable transfer to algebra, specifically on functions, variables, and word problems. (Wright, Rich, & Lee, 2013 and Schanzer, Fisler, Krishnamurthi, & Felleisen, 2015)

Recently at our school, Sullins Academy, the middle school math teachers (including myself) and the schoolwide technology teacher met to discuss and coordinate implementation of Bootstrap’s algebra curriculum for our eighth graders. The curriculum combines principles of mathematics and programming as students create their own simple video game. Before the meeting, we independently worked through the first unit which included dissecting the parts of a video game, relating the coordinate plane to positioning, relating the order of operations to program evaluation, and planning our own basic video game. After talking about our reactions to unit one, we worked through unit two, distinguishing data types used by programs and writing functions to manipulate them, as a group.

After working through the first two units, we knew Bootstrap was something we wanted to try with our students for three main reasons:

  1. Bootstrap makes algebra relevant and accessible to all learners. This could be a game-changer for traditionally disengaged math students.
  2. Computational thinking (CT) is huge for computer science and math, and Bootstrap is a great way to develop it. According to the Center for Computational Thinking at Carnegie Mellon, CT is “a way of solving problems, designing systems, and understanding human behavior that draws on concepts fundamental to computer science. To flourish in today’s world, computational thinking has to be a fundamental part of the way people think and understand the world.” We agree and want to actively cultivate CT in our students.
  3. Bootstrap might be more motivating for students than a block language like Scratch because they are typing real code. They might feel more as if they are engaged in “real” programming. (Although, we know that the learning outcomes of Scratch can be extremely high-level and beneficial, we have heard students make derogatory comments about block languages being elementary.)

So we knew we wanted to implement Bootstrap, but we still had a big question: when and through what class (math or technology) would this be taught? Similar to most cross-curricular projects, there would be difficulty meeting standards organically for both classes. We decided to implement the curriculum predominantly through the technology class with crossovers in the eighth grade math classes as they naturally arise. (I am lucky to work in a school where we are encouraged to work across classes. Flexibility and collaboration are two of my favorite things about our school.)

Now that we have a plan in place, we are all really excited about the potential learning outcomes. We hope it shows students that math and technology do not exist in individual bubbles and that standards are not just isolated facts to memorize or know for a test. All subjects and content are integrated in real life for authentic purposes. The technology teacher hopes that this will make students realize that programming is within their grasp. It’s not this abstract, crazy, no-way-I-can-do-it sort-of-thing thing. Even if students don’t program again, the technology teacher hopes that it helps with troubleshooting abilities and independence. In addition, she hopes it will motivate students to improve their typing skills and realize why attention to detail is important, for example, when they see that even one missing parenthesis or misspelled word will break the program. Beyond the obvious desire for students to better understand algebra, the math teachers hope it allows students to see that math is really useful beyond the classroom. Most importantly, we hope working on Bootstrap displaces the teacher and puts the students at the center of the learning by improving metacognition and developing perseverance as they work through their error messages. In this way, students might grow out of the teacher-dependent mentality and learn to trust and rely on themselves and each other.

Keeping it real, we are concerned about a few things as well. It was interesting to see our reactions to the curriculum because the technology teacher has ample programming experience, I only have some, and the third teacher has no former experience. This was a fortunate coincidence because it represents the spectrum of prior knowledge our students will have as well. Overall, Bootstrap provides enough scaffolding for any previous exposure to programming as long as you are comfortable with a “learn as you go” approach, although occasionally, it did seem as if Bootstrap made an optimistic assumption about what students would know coming in. For those with no prior experience, we would have liked more direct instruction on key vocabulary, syntax requirements, and reading and diagnosing error messages. Another concern is keeping all students engaged for the length of the project. Undoubtedly, some students will be able to fly through the curriculum while others need a bit more time. We hope the answer to this problem lies in offering the extensions Bootstrap has built in for quick learners.

Overall, we are really looking forward to seeing what Bootstrap can do for our students. Our plan is in place so may the adventure continue! I will keep you posted.

Have any of you implemented Bootstrap or another computer science curriculum like Logo or Scratch? Did you see transfer to math or science? What advantages did you notice? Are there any obstacles you can help us navigate? We would love to learn from you!

Citations and Further Reading
Schanzer, E., Fisler, K., Krishnamurthi, S., & Felleisen, M. (2015). Transferring Skills at Solving Word Problems from Computing to Algebra Through Bootstrap, ACM Technical Symposium on Computer Science Education, 2015.
Available at:
http://cs.brown.edu/~sk/Publications/Papers/Published/sfkf-trans-word-prob-comp-alg-bs/paper.pdf

Wright, G., Rich, P. & Lee, R. (2013). The Influence of Teaching Programming on Learning Mathematics. In R. McBride & M. Searson (Eds.), Proceedings of SITE 2013–Society for Information Technology & Teacher Education International Conference (pp. 4612-4615). New Orleans, Louisiana, United States: Association for the Advancement of Computing in Education (AACE).
Available at:
https://www.learntechlib.org/p/48851/
.

Center for Computational Thinking at Carnegie Mellon.
Available at:
https://www.cs.cmu.edu/~CompThink/

Programming + Music with EarSketch

By Pati Ruiz

The timing of this year’s  STEM For All Video Showcase worked well for me as a teacher. It allowed me to see something right when I was starting to evaluate my curriculum and prepare for next year. During the 2017-18 school year, I will be teaching two high school computer science courses: one is an introductory course for Sophomores and the other is a new (for me) intermediate course for Juniors. Due to time constraints, our school schedule will not allow me to offer the AP Computer Science Principles course. Instead, I am designing a curriculum that’s appropriate for my students. I am excited about the content and hope it will be engaging for them.

As I watched the videos in the showcase, the EarSketch: teaching coding through music video presented by Lea Ikkache and Jason Freeman really captured my attention, or, dare I say it – caught my ear. As I read through the discussion thread, I learned quite a bit from the comments. I learned that there is a community of CS educators who are now using EarSketch, and even a Facebook group where the community can discuss the curriculum and share their materials and tips. The curriculum is aligned with the AP CSP standards currently, and the team is looking to align to CSTA standards in the future! Among other topics, students will learn to use variables, loops, conditionals, and lists appropriately. They will also learn to use functions and write appropriate comments for their code.

Now that it’s August, I find myself planning for next year and really digging deeper into this curriculum. As I work through the modules, I find that the instructions are very clear and well-structured, and the tasks are engaging. Best of all, EarSketch is super easy to use because it’s completely free and works right in your web browser – there’s nothing to download or install. So my students can easily access this programming environment from home or the library. While you can use EarSketch in either Python or JavaScript, I have opted to use the Python version. I am learning a lot, and am even planning to invite our music teacher to our class so she can help us make sense of the music theory elements that we might encounter. I am lucky to teach in a school where the performing and visual arts are emphasized. I will also be encouraging music teachers to check this tool out.

I am still learning about EarSketch, but what I can tell so far is that it will engage some of my students (all young women) who are very involved with music-based extracurricular activities. It is also an application for programming that my students might not be anticipating. Through my dissertation study, I am learning about the importance of designing relevant and interesting examples and assignments for our students. EarSketch is definitely going to provide my students an opportunity to apply and practice programming concepts in a creative context with very appropriate supports in the form of instructions, resources, and examples. There are many links to audio and video files throughout!

I know that the research group is conducting further research to better understand EarSketch and its implementation in schools, specifically as AP CSP classes integrate the curriculum. I will be on the lookout for more publications about EarSketch – here is one about engagement across gender and underrepresented populations. Also, check out this EarSketch video that includes a variety of perspectives of people who have engaged with music and computer science through EarSketch.

​Image from Website:

Encouraging Young Women in CS: Shifting Perceptions and Attention

By Pati Ruiz

Let me start this post with some facts about women in computer science (CS):

  1. Women account for 18% of computer science graduates in the United States. (NCES, 2012)
  2. Women make up 26% of the Computer Science and Mathematical Science workforce. (NSF, 2012)

As a high school CS teacher at an all-girls school, I always want to learn more about what I can do to encourage my students’ continued participation in CS. While I know that not all of the young women I teach will want to pursue CS, some will and some who might not have considered it might decide to with the right information and support.

I have always suspected that teachers play a critical role in supporting a student’s’ persistence in CS. In compiling articles for my dissertation, I found studies that document the factors that play a role in CS participation. In this post, I share some of what what I have learned and what it means for me as an educator.

Wang, Hong, Ravitz, and Ivory (2015) found that young women tend to decide to pursue a STEM-related field, including CS, long before they begin college. Some studies document CS gender differences as early as grade 5. Indeed, once a girl enters college, CS degree and class requirements can be overwhelming to female undergraduates because they more often start college having taken fewer classes than the male students. In addition, girls are often interested in more than “just programming computers;” young women tend to be interested in creating computing tools to help society. It is important to show girls that CS is a field with diverse applications and a broad potential for positive societal impacts because of the value that women place on making positive contributions to society.

There are four factors that influence a young woman to pursue computer science: social encouragement, career perceptions, academic exposure, and self-perception. The good news is that Wang et al. (2015) conclude that the factors playing a role in a young woman’s decision to pursue a CS-related degree in college are largely controllable. This means that K-12 educators, family members, and friends can play a significant positive role in encouraging and exposing young women to pursue CS.

Exposure is important.  Students who took one CS class were more likely to want to pursue CS. When it comes to gender, Wang and Moghadam (2017) found that while there is no difference in access to computers or CS learning opportunities for young women and men, there is less awareness of opportunities. Girls are less likely to know about clubs, online sites, or other opportunities outside of school to learn CS. Boys are more likely than girls to learn CS on their own, in a group or club, and online. More boys than girls are encouraged by being told they are “good at” CS (44% of boys versus 12% of girls were encouraged by a teacher and 43% of boys versus 17% of girls were encouraged by a parent).

This means that educators and people in the lives of young women play a large role in providing opportunities for them to learn about the CS field and then encourage these young women to pursue it. So, what can we do? As an Intro to CS teacher, I will continue to work to make (extra) sure I create supportive learning environments as I share the field of CS and tell them that they can be “good at CS.”  I will also encourage them if they don’t feel that they “are good at it;” there is no reason they can’t be good if they work hard (ala Dweck’s growth mindset and Duckworth’s grit).

Since a young woman’s family plays a large role in whether they will pursue CS or not, I know I need to create opportunities to reach out to my student’s parents to help them understand why and how they might encourage their daughter to enter and persist in computer science and related fields. I will also continue to encourage their participation in CS. It is also important for students to have peer support – I can encourage students to support one another through on and off-campus clubs and activities.

In many ways, what I already do is similar to what I learned I should do. I learned that I should go out of my way to bring in guest speakers (young women in particular) to talk with my students about the opportunities available to them if they decide to pursue CS. It is important to me that my students understand that solving problems with people who have different information, opinions, and perspectives is beneficial for all. It’s also great when they get to hear about the impact and the fun the young women have in the field. By encouraging my students to explore the various areas within CS and exposing them to practitioners in the field, I hope that more of the young women I teach will consider pursuing a career in computer science.

I also learned about curriculum and pedagogical approaches, too, but I’ll discuss those in a another blog post. I am just starting my dissertation study that will examine factors that might encourage or discourage the participation of more women in undergraduate CS programs. I am interested in what types of learning experiences encourage or discourage participation by a diverse group of students in undergraduate computer science departments. The work by Wang, Hong, Ravitz, and Ivory (2015), Wang, Hong, Ravitz, and Modhadam (2016), and Wang and Modhadam (2017) has been helpful in guiding my research. More importantly it has helped me better understand my role as a CS educator.

References:

National Science Foundation. (2012). Science and Engineering Indicators 2012. Washington, DC. Retrieved from http://www.nsf.gov/statistics/seind12/c0/c0i.htm

National Center for Education Statistics (2012). Degrees conferred by degree-granting institutions. Washington, DC. Retrieved from http://nces.ed.gov/programs/digest/d12/tables/dt12_318.asp

Wang, J., & Moghadam, S. H. (2017). Diversity Barriers in K–12 Computer Science Education: Structural and Social. In Proceedings of the 2017 ACM SIGCSE Technical Symposium on Computer Science Education (pp. 3–8). http://doi.org/10.1145/3017680.3017734

Wang, J., Hong, H., Ravitz, J., & Moghadam, S. H. (2016). Landscape of K-12 Computer science education in the U.S.: Perceptions, access, and barriers. In Proceedings of the 47th ACM Technical Symposium on Computing Science Education, (pp. 645–650). http://doi.org/10.1145/2839509.2844628

Wang, J., Hong, H., Ravitz, J., & Ivory, M. (2015). Gender differences in factors influencing pursuit of computer science and related fields. In Proceedings of the 2015 ACM Conference on Innovation and Technology in Computer Science Education – ITiCSE ’15, (pp. 117–122). http://doi.org/10.1145/2729094.2742611