Category Archives: Computer Science

abstract wall

Breaking Barriers in Computer Science via Culturally Relevant Educational Tools (Part 3)

By Joseph Chipps, Ed.D.

In the last post, I gave background on ethnocomputing and culturally situated design tools, two constructs I used to develop culturally relevant education in newer, equity-designed computer science classes (e.g., Exploring Computer Science (ECS)1 and AP Computer Science Principles (AP CSP)2). It is much more challenging to build those theories and tools into AP Computer Science A due to the use of shared tools and languages. So what can be done in AP Computer Science A?

First, we can increase sociopolitical awareness. In computing, we invite students to identify and address social inequities as developers of technology. For example, in the e-textiles unit of ECS, students construct a textile computing artifact with touch sensors, and collect the ranges read by the sensor when their peers use the artifact. As each student will produce a different range, the developer must synthesize the data while coding to make distinct cases for their product to follow. Inevitably, some students will be unable to use the product due to gender or race because of the way the technology was developed. This then leads to discussions of technology as biased (i.e., airport scanners discriminate against people of color (POC) and facial recognition not recognizing POC). An opportunity I took in the AP Computer Science A curriculum was to introduce the concept of variable declarations using a Student object that contains data (name, age, gpa, and gender). I invited groups of students to discuss what type of data they would make each variable, and to explain their reasoning. Some of the groups assigned gender to a boolean variable (one of two possible states, i.e. true/false) while others assigned gender to a String variable (any array of characters, i.e. “Female”). As students shared stories and engaged in dialogue, the class quickly realized that assigning gender to a boolean value transfers human bias to technology, and rejects the existence of non-binary genders.

Second, we can implement practices from culturally relevant education by using the experiences of students as an asset in the classroom. One of the ways to attach learning to the experiences of students is to connect curriculum to the real world. For example, DiSalvo, Guzdial, Bruckman, and McKlin3 studied how high school Black and Latino male students negotiate between geeking out and being cool when testing games. When students learned it was a real job in the world, students were more likely to maintain their interest and identity in computer science. A second way to attach learning to the lived experiences of students is to connect to students’ perceptions of self (or self-identity). Frederick, Donnor, and Hatley4 conducted a meta analysis of culturally responsive education (CRE) programs in technology education, and determined that courses that utilize CRE should acknowledge students’ representations of self. To achieve this, curriculum should present diverse and realistic perspectives as well as provide spaces for students’ voices and self-expression. I cannot think of examples in computer science; however, Nichole Pinkard’s5 (2001) Rappin’ Reader and Say, Say, Oh Playmate expertly used oral traditions and play rituals, prior knowledge of African-American children, as a method of early literacy instruction. Furthermore, the authors advise that those who acknowledge lived experiences of students also need to find ways to counter harmful narratives and deficit identity formation.

Third, we can build connections with local community members. For example, Lachney6 leveraged the expertise of programmers, students, and schools in the development of the cornrow curves CSDT. The programmers worked with community hair braiders to help develop the computational patterns in the software. But how do we build culturally situated design tools that can be part of the shared tools and languages of industry? Ogbonnaya-Ogburu, Smith, To, and Toyama7 adapted critical race theory to human-computer interaction (HCI) and concluded that the technology sector is prone to interest convergence; that is, the inclusion of POC in technology requires benefits to those in power. For example, changes in designs may not occur unless they help all people, not just POC. Talking with students about this helps create awareness. This overlaps with good techquity practices.

Finally, we can invite students to personalize computing artifacts. Kafai, Fields, and Searle8 studied the experiences of students personalizing electronic textile projects. The final project of the e-textiles unit invites students to develop any textile artifact of their choice as long as it has touch sensors and LEDs, and exhibits four different behaviors based on the user input. Projects have included play mats that force arguing siblings to hold hands for a certain amount of time, t-shirts and hats that display teams and schools in bright lights, and plush dolls that play music when squeezed. The authors found that allowing for personalization showcased aesthetic designs while revealing the diversity embedded in technology development.

When I design CRE curriculum for computer science, I frame the class as project-based, where students collaboratively construct videos, images, applications, presentations, pdfs, and other artifacts to demonstrate their understanding of material. Rather than present information for them to consume, I provide methods of inquiry, where students must reflect, research, discuss, and build their own understanding of content from their unique sociocultural context. Inquiry is situated on real-world contexts. When I can, I invite students to develop their artifacts using culturally situated design tools. To go beyond the curriculum, I challenge students to question the impacts of computing on the economy, society, and culture while providing space for ideas and dialogue, independent of a patriarchal, capitalist, and white framework. Which algorithms are biased, and how can we deconstruct bias within the logic? What does an anti-racist programming language look like?  How do we counter deficit narratives in classes like AP Computer Science A, where the shared tools and languages could negatively impact purposefully excluded communities (PEC)s. And to reiterate, what does anti-racist eduction look like when students are forced to use the shared tools and languages of a profession that purposely excludes them?

Read Part 1 of the series.

Read Part 2 of the series.

  1. Goode, J., Chapman, G., & Margolis, J. (2012). Beyond curriculum: The Exploring Computer Science Program. ACM Inroads, 3(2), 47–53. https://doi.org/10.1145/2189835.2189851
  2. Astrachan, O., Cuny, J., Stephenson, C., & Wilson, C. (2011, March). The CS10K project: mobilizing the community to transform high school computing. In Proceedings of the 42nd ACM technical symposium on Computer science education (pp. 85-86).
  3. DiSalvo, B., Guzdial, M., Bruckman, A., & McKlin, T. (2014). Saving face while geeking out: Video game testing as a justification for learning computer science. Journal of the Learning Sciences, 23(3), 272-315.
  4. Frederick, R., Donnor, J., & Hatley, L. (2009). Culturally responsive applications of computer technologies in education: Examples of best practice. Educational Technology, 49(6), 9-13.
  5. Pinkard, N. (2001). Rappin’ Reader and Say Say OH Playmate: Using Children’s Childhood Songs as Literacy Scaffolds in Computer-Based Learning Environments. Journal of Educational Computing Research, 25(1), 17–34. https://doi.org/10.2190/B3MA-X626-4XHK-ULDR
  6. Lachney, M. (2017) Culturally responsive computing as brokerage: Toward asset building with education-based social movements. Learning, Media and Technology, 42(4), 420-439. doi:10.1080/17439884.2016.1211679
  7. Ogbonnaya-Ogburu, I. F., Smith, A. D., To, A., & Toyama, K. (2020, April). Critical Race Theory for HCI. In Proceedings of the 2020 CHI Conference on Human Factors in Computing Systems (pp. 1-16).
  8. Kafai, Y. B., Fields, D. A., & Searle, K. A. (2014). Electronic textiles as disruptive designs: Supporting and challenging maker activities in schools. Harvard Educational Review, 84(4), 532-556. doi:10.17763/haer.84.4.46m7372370214783
Close-up of hands on a laptop computer

Breaking Barriers in Computer Science via Culturally Relevant Educational Tools (Part 2)

by Joseph Chipps  Ed.D.

In the last post, I gave background on my school, situation, and the problems I was trying to address to bring in more people of color (POC) and females into the white and Asian male dominated Computer Science (CS) courses in my school. I also gave background on Culturally Relevant Education (CRE)1 the term I will use that encompasses culturally relevant pedagogy and culturally relevant teaching.

In order to develop Exploring Computer Science (ECS)2 and AP Computer Science Principles (AP CSP)3 using a culturally relevant educational framework, curriculum developers of those courses relied on theories and tools positioned within culturally relevant education: ethnocomputing and culturally situated design tools.

Ethnocomputing attempts to bridge the gap between culture and computing in that it assumes that computing is not a neutral activity; rather, computing is informed by capitalist, patriarchal, and western logic, beliefs, and tools4. Ethnocomputing originated from the idea that computing should be taught using relevant cultural artifacts and references of the local learners; that is, the cultural contexts of the learner5. In the ECS curriculum, through collaborative practices and methods of inquiry, students develop their own understanding of computing using journal writing, dialogue, construction of culturally meaningful artifacts, and presentations. In the code.org AP CSP curriculum, students develop a protocol for sending a color image through a network by creating their own personal favicon, the little icon at the top of a browser tab. This activity allows students to develop icons from their sociocultural backgrounds; students create their own symbols for computing, and through those symbols construct meaning as well as perception of self. Furthermore, the biases of the instructor are acknowledged as students work together to construct their own ideas and interpretations of computing.

AP Computer Science A externally tests students’ understanding of Java, an object-oriented programming language. Object-oriented refers to a style of programming in which we use data structures called objects to hold data that belongs to the object (i.e. a Student’s name, age, and gpa). I give a detailed example at the end of the post, that shows how I attempt to use items from students’ lived experiences to construct the rationale and embedded logic of encapsulating data within a single entity while using a design artifact from industry to help students code-switch.

As I teach about Class and Object in Java, I know they are symbolic tools, shaped by generations of programmers over time. Even the diagram in the example below is a constructed symbol, formed by decisions and negotiations over time within the programming community. So I have to ask: am I acclimating my students to cultural norms embedded within a larger system that purposely excludes them or am I supporting their futures by teaching them tools and languages required for code-switching?

ECS and AP CSP have the privilege of using tools and languages not shared by the programming community because they were designed to exist outside of professional communities for the specific purpose of increasing participation, but activity within a course that has historically used industry standard languages will always be mediated by the shared tools and languages of the professional community. Yes, I can create student-centered activities that allow students to construct their own ideas of concepts and logics, and invite students to raise sociopolitical consciousness in their and other communities. But am I doing a disservice to those students by forcing them to construct the logic, symbols, and beliefs of a culture that purposely excludes them? Or am I helping them enter this community?

Culturally Situated Design Tools (CSDT) support ethnocomputing in that they are collaboratively developed tools that exist outside of the shared tools of computing, and are inspired by purposefully excluded communities (PEC) culture. For example, a collaborative project in ECS requires students to present the cultural background of Native American bead looms, connections between bead looms and mathematics, and their own authentic bead loom designs that they construct using a CSDT. Embedded in this lesson is the realization that computing and mathematical concepts are not singularly defined and owned by white, patriarchal, western history; rather, embedded within Native American cultures. Alternatively, in ECS, after learning the history of cornrows, students use a CSDT to design and reflect on the mathematics of cornrow curves. Students investigate recursion through a CSDT that simulates cornrow curves. When I was taught recursion in a Java class, I heard names like Fibonacci and solved problems that required some understanding of basic number theory. Students constructing recursive artifacts using a non-western tool like a cornrow design simulator is anti-racist computing education. We are putting the stories that were removed from education back into the curriculum.

But what does a CSDT look like when the purpose of a course is to introduce students to the shared tools and languages of the professional community? How can we leverage the experiences and voices of those who have not been included in the development of tools we use to design and execute computing? How do we promote anti-racist education when the tools and languages we use are embedded in exclusionary culture6? These were the barriers I faced when trying to implement ethnocomputing via culturally situated design tools in my AP Computer Science A curriculum. I still do not have answers. Perhaps a next step in computing is to design anti-racist computing tools and languages for industry. How can we use heritage cultural artifacts and vernacular culture to support the development of anti-racist computing tools and languages that can be used in industry as well as education? In my next post, I will explore what can be done in courses like AP Computer Science A such as increasing sociopolitical awareness, using the experiences of students, building connections within the community, and personalizing student-constructed artifacts.

Java Example Details:

For example, a class called Student would be an archetypical framework for how to define a student in a computer, and would include three parts: what data a student has (name, age, gpa, etc); how to create a student (which data can we set initially vs which data can be set later) and; actions we can do with the student data (update data, access data, add new scores to the gpa). While a class is a template for an object, an object is an instance that we can create. For example, once I have defined the template for what a Student is in a file called Student.java, then in a runner file, I can create a Student named Alice and input all of Alice’s data. I can then store all of Alice’s data within the object called Alice. Over time, I can access and manipulate Alice’s data, and even have Alice’s data interact with other Students’ data if, for example, I want to know the average GPA of the school or any selection of Students. The concept of objects is essential to AP Computer Science A. Consequently, I developed a lesson inspired by ethnocomputing for the first week of the course that would invite students to interpret experiences from their life into an object (discussed above). Figure 1 shows an example of what students must create.

MatzohBallSoup
– chefName : String

– ingredientNum : int

– temperature : double

+ getChefName(): String

+ getIngredientNum(): int

+ getTemperature(): double

+ setChefName(String): void

+ setIngredientNum(int): void

+ setTemperature(double): void

+ toString(): String

 Figure 1. Example of object design from my Java curriculum

Read Part 1 of the series.

Read Part 3 of the series.

  1. Aronson, B., & Laughter, J. (2016). The theory and practice of culturally relevant education: A synthesis of research across content areas. Review of Educational Research, 86(1), 163-206. doi: 10.3102/0034654315582066
  2. Goode, J., Chapman, G., & Margolis, J. (2012). Beyond curriculum: The Exploring Computer Science Program. ACM Inroads, 3(2), 47–53. https://doi.org/10.1145/2189835.2189851
  3. Astrachan, O., Cuny, J., Stephenson, C., & Wilson, C. (2011, March). The CS10K project: mobilizing the community to transform high school computing. In Proceedings of the 42nd ACM technical symposium on Computer science education (pp. 85-86).
  4. Tedre, M., Sutinen, E., Kahkonen, E., & Kommers, P. (2006). Ethnocomputing: ICT in cultural and social context. Communications of the ACM. 49(1), 126-130. doi: 10.1145/1107458.1107466
  5. Babbitt, B., Lyles, D., & Eglash, R. (2012). From ethnomathematics to ethnocomputing. In Swapna Mukhopadhyay & Wolff-Michael Roth (Eds.). Alternative forms of knowing mathematics (pp. 205–219). doi: 10.1007/978-94-6091-921-3_10
  6. Margolis, J., Estrella, R., Goode, J., Holmes, J.J. and Nao, K. Stuck in the Shallow End: Education, Race, and Computing. MIT Press, Cambridge, MA, 2010.
Dr. Chips in front of water

Breaking Barriers in Computer Science via Culturally Relevant Educational Tools (Part 1 of 3)

By Joseph Chipps, Ed.D.

Dr. Chipps is a computer science teacher at Granada Hills Charter High School as well as an adjunct faculty member of the secondary education department at California State University, Northridge. He has an Ed.D. in Learning Technologies, and wrote this to share his thoughts and expertise on developing culturally relevant educational tools in computer science.

Part 1

Science, technology, engineering, and math are all segregated fields, but computer science is particularly segregated1. Although new K-12 courses are being developed using culturally relevant education tools in order to increase participation among women, BIPOC, English language learners, and those with disabilities (and intersections thereof), the number of students taking a first year college equivalent computing class is still very low. Building culturally relevant educational tools in a first year college-level course is difficult due to the inherent goal of introducing students to the tools and languages of an exclusionary professional community. This issue is not just an issue in computer science. I raise the following question to all teachers: how do we authentically provide culturally relevant education to those who use the shared tools and languages of a professional community that has a history of purposely excluding others? My hope is that students can become part of industry and help change this, but not lose their own culture.

This 3-part blog series is about my attempt to develop culturally relevant educational tools for AP Computer Science A. Additionally, I offer an analysis of how programmer culture is generationally embedded within shared tools and languages, and what needs to change in computer science education to remove barriers for purposefully excluded communities (PEC)s. I should note that I am a white male, and I believe that education is an inherently political act due to white supremacy as an embedded culture within all institutions. I do what I can to change it and work to not perpetuate the problem.

I began teaching at Granada Hills Charter High School (GHCHS) in 2008, and each year between 2008 and 2012, we offered one to two sections of AP Computer Science A with twenty to thirty students per section (4500 students in the school). I took over the class in 2010 when the previous computer science teacher retired, and I was shocked by the lack of female students as well as non-white and non-Asian students. This was not a local phenomenon; rather, enrollment in AP Computer Science A is historically low. According to AP, only 0.05% of the approximately 1.9 million California public high school students took the AP CS A exam in 2017.

In addition, students of color comprise over 60% of California’s high school-aged population, and yet the number of students of color who take the AP Computer Science A exam in California is incredibly low.

California Population (≅1.9 million) AP CS A Test-takers (10,286)
Latinx 53% ≅ 1 million 15% ≅ 1543
African American 6% ≅ 114,000 1% ≅ 103
Native American / Alaska Natives ~1% ≅ 19,000 * = 5

*Only 5 Native American/Alaska Natives passed the test out of the 10,268 test-takers from California in 2018.

Low participation rates among students of color have resulted in computer science not being offered at 75% of schools nationwide with the highest percentage of PECs and only 2% of schools with large ratios of PECs offering AP Computer Science A2.

The CS10K Initiative3 provided a space and opportunity for new courses such as Exploring Computer Science4 and AP Computer Science Principles5 to transform computer science education for the purpose of increasing participation among PECs, and these courses have demonstrably been successful. In 2013, I began offering Exploring Computer Science at GHCHS, and in 2016, I introduced AP Computer Science Principles. In the 2019-2020 school year, over 800 students took computer science at GHCHS; the ethnicity of students parallels that of the overall school demographics, and we have a 3:2 ratio of men to women (we are still working on that). Between 2010 and 2019, GHCHS saw a 1700% increase in students taking computer science.

The College Board also notes that since the introduction of AP Computer Science Principles in 2016, AP computer science classes (cumulative) have observed a 343% increase in Black students, a 315% increase in Latinx students, and a 257% increase among female students. Courses like Exploring Computer Science and AP Computer Science Principles were developed based on current research in equity-oriented computer science education, and were purposefully designed to increase participation.

So what is the big deal about developing a culturally responsive curriculum for AP Computer Science A? If it was done for other courses, why is AP Computer Science A still a problem? For that, we need to understand what culturally responsive education means in computer science.

The development and consequential nuances of culturally relevant education is important in realizing the inherent differences between building curriculum for Exploring Computer Science and AP Computer Science A. When I received my credential, multicultural education was still being taught as a framework for cultural diversity; however, little attention was paid to the inherent biases and belief systems of those who developed curriculum and facilitated learning experiences, and multicultural education was criticized for its reliance on cultural symbols such as food and holidays6. Additionally, despite good intentions, those cultural symbols tended to be byproducts of bias, and further flattened groups to stereotypes and single stories7.

In response to the criticisms of multiculturalism, two frameworks emerged: culturally responsive teaching and culturally relevant pedagogy. Culturally responsive teaching empowers students by increasing awareness of their lived experiences and acknowledging their sociocultural frames of reference in order to situate experiential learning within the needs of students8,9. Alternatively, culturally relevant pedagogy10,11 refers to the beliefs and approaches that guide curriculum development12. Culturally relevant pedagogy aims to use students’ cultural references and positioning within systems of power to guide curriculum and transform learning experiences by challenging social inequities11.

Both of these frameworks use a social justice approach to education in its view of student identity and experience as an asset. It should be noted that culturally responsive teaching and culturally relevant pedagogy are used somewhat interchangeably in literature, so, going forward, I will use the term culturally relevant education (CRE)12 as an umbrella term that covers both approaches. In my next post, I’ll discuss using Exploring Computer Science (ECS) and AP Computer Science Principles (AP CSP) that were developed to be culturally relevant using ethnocomputing and culturally situated design tools.

Read Part 2 of the series.

Read Part 3 of the series.

  1. Margolis, J., Estrella, R., Goode, J., Holmes, J.J. and Nao, K. Stuck in the Shallow End: Education, Race, and Computing. MIT Press, Cambridge, MA, 2010.
  2. Margolis, J., & Goode, J. (2016). Ten lessons for computer science for all. ACM Inroads, 7(4), 52–56. https://doi.org/10.1145/2988236
  3. Astrachan, O., Cuny, J., Stephenson, C., & Wilson, C. (2011, March). The CS10K project: mobilizing the community to transform high school computing. In Proceedings of the 42nd ACM technical symposium on Computer science education (pp. 85-86).
  4. Goode, J., Chapman, G., & Margolis, J. (2012). Beyond curriculum: The exploring computer science program. ACM Inroads, 3(2), 47–53. https://doi.org/10.1145/2189835.2189851
  5. Cuny, J. (2015). Transforming K-12 computing education: AP® computer science principles. ACM Inroads, 6(4), 58-49. https://doi.org/10.1145/2832916
  6. Banks, J. A. (2013). The construction and historical development of multicultural education, 1962–2012. Theory into Practice, 52(sup1), 73-82. doi: 10.1080/00405841.2013.795444
  7. Kim, S., & Slapac, A. (2015). Culturally responsive, transformative pedagogy in the transnational era: Critical perspectives. Educational Studies, 51(1), 17-27. doi:10.1080/00131946.2014.983639
  8. Gay, G. (2010). Culturally responsive teaching: Theory, research, and practice (2nd ed).Multicultural Education Series. New York, NY: Teachers College Press.
  9. Gay, G. (2013) Teaching to and through cultural diversity. Curriculum Inquiry, 43(1), 48-doi: 10.1111/curi.12002
  10. Ladson-Billings, G. (1994). What we can learn from multicultural education research. Educational Leadership, 51(8), 22-26. Retrieved from https://eric.ed.gov/?id=EJ508261
  11. Ladson-Billings, G. (2014). Culturally relevant pedagogy 2.0: Aka the remix. Harvard Educational Review, 84(1), 74-84. doi:10.17763/haer.84.1.p2rj131485484751
  12. Aronson, B., & Laughter, J. (2016). The theory and practice of culturally relevant education: A synthesis of research across content areas. Review of Educational Research, 86(1), 163-206. doi: 10.3102/0034654315582066
Creative Coding in Python book

Interview with Creative Coding in Python Author Sheena Vaidyanathan

We were lucky enough to get to interview Creative Coding in Python author Sheena Vaidyanathan at CSTA 2019 in Phoenix, AZ! We asked her some of the questions that the CIRCLEducators compiled, check out her responses:

Can you tell us a little bit about how you got started in both art and computer science?

I am a computer scientist and have been involved in technology for many years. When I decided to take a break from tech, it was the perfect opportunity for me to pursue something I had always wanted to do – art. I decided to enroll in the local college to take art classes and also volunteer in the local schools to teach art. I found that I looked forward to days in the classroom and I really loved teaching. So when a position for an art teacher opened up in one of the local schools, I applied and got it. When the art position went away, I was able to transition to teaching computer science since that is my background. I throw in art when possible into my computer science classes!

Can you tell us about your book?

I wrote Creative Coding in Python: 30+ Programming Projects in Art, Games, and More. It is unique in that it uses colorful illustrations and creative projects to explain programming concepts. It is definitely the most beautiful coding book I have ever seen and will be a fun way for anyone (at any age – not just kids) to discover the joy of coding. I explain concepts using simple everyday metaphors and short snippets of code, and give step by step instruction for fun projects like chatbots, and games along with flowcharts and pseudocode. There are also challenging extension activities. It is not dumbed down, I share challenging and complex topics in an accessible way. In my book, you will learn about everything from data types, graphical user interface (GUI), function callbacks and more.

What are your tips for people new to CS to get started?

Start small, try one lesson and modify that small project that’s already working. Can you run it? Can you change a couple of lines of code? Then, once you’ve seen what code can do, you should take a class to learn more about programming.

What are some challenges that you face when training teachers about integrating computer science in their classrooms?

One challenge in elementary and middle school is that even if the teacher knows the content (coding) and wants to integrate it, they still need to justify whether or not it works with the rest of the content standards that they are teaching.

Teachers tend to go to the more tried and tested methods of teaching content (which doesn’t include coding) because introducing coding activities can take up valuable time resulting in them not having the time needed to do other topics/work. That balance can be very challenging. Even math teachers who know some coding and understand the advantages of using it to teach math, often do not use it in their classes. This is because they are short on time, and are under pressure of teaching a lot of content and making sure that students do well on the tests.

What are some of favorite projects in your book?

I am greatly inspired by the LOGO programming language and Seymour Papert’s original turtle, so I love using the turtle to teach coding. It is a classic way, and I still think the best way to teach kids to code. The turtle  puts the child in the code. They have to think like the turtle in order to move, this is called body syntonic. If they need to make the turtle on their computer “go left” they have to think about moving their entire body as if they were the turtle. This helps them think about instructions in a different way; the instructions are something that they can see themselves doing. It’s tangible and visual and it’s a connection that they will always remember because they were the turtle. By programming an object on the screen, kids learn to be specific in their directions. The computer will only understand what they write in their program.

My other favorite project (shared in my book – image below) goes back to my artistic background, and uses geometric shapes. In the project, you’re creating geometric shapes to create a bigger picture. You can use functions to define a house, for example, which is a rectangle followed by a triangle with  other shapes. Once you’ve defined a shape, you can write code to repeat it. So using geometric shapes, really appeals to me, because it’s relatable to how you would draw in real life. It’s so visual and then there’s a connection to code that I really like and I think it works very well to help people learn more about coding.

** In our book club, you will be challenged to create art work and follow along in Sheena’s book in Chapter 2.

What are you working on now?

I launched a new elective and I’m exploring more tools to make sure I’m bringing in the right tools to teach the content. I’m exploring Artificial Intelligence (AI) in K-12 and am part of the AI4K12 initiative.


Sheena shared her work at CSTA 2012 in a session titled  Strategies for Teaching Coding to All Students which focused on her new class Coding Apps Games & more and the other was about work being done to advance computer science education in the area of AI.

There are so many resources that Sheena has put together on her website, so check them out! Connect with Sheena on Twitter https://twitter.com/Sheena1010 and CIRCL Educators https://twitter.com/CIRCLEducators .

Creative Coding in Python book

Book: Creative Coding in Python by Sheena Vaidyanathan

Please join us for a discussion of Creative Coding in Python by Sheena Vaidyanathan. We will be using Wakelet, Twitter, and GitHub for this book club.

Sign up to stay informed about the book club!

About this Book

Creative Coding in Python by Sheena Vaidyanathan contains activities that can be used in a classroom or on your own. You are encouraged to code along as you read the book, by typing in your own code. In Creative Coding, there are a few projects for you to explore. In our book club we will dig into the first two projects:

CREATE YOUR OWN CHATBOTS

Taken from the website “Using the Big Ideas from this chapter, we will get user input and then respond to the user by putting information on the screen. This will be a simple chatbot. There will be ideas in subsequent chapters that you can use to make this chatbot better. You can change the actual text of the chatbot responses or questions to customize it.”

CREATE YOUR OWN ART MASTERPIECES

Taken from the website “Using turtle graphics is a fun way to learn Python and create artwork using code. We’ll give the virtual turtle instructions, known as functions and combine these functions to create complex art pieces.”

About the Author:

Sheena currently teaches computer science in grades 6–8 in the Los Altos School District, in Los Altos, California. In her role as the district’s Computer Science Integration Specialist, she is involved with the STEM program in the district to develop the computer science program for K–8 in all the elementary and junior high schools in the Los Altos School district. She has developed the curriculum and conducted professional development to bring computer science to all 4500+ students in the district. Read more about Sheena on her website and in the CIRCL Perspective.

How to Participate:

We will use Wakelet, Twitter, and GitHub in this book club. Sign up today to receive email updates.

Wakelet

Wakelet is described as “an easy and enjoyable way to save, organize and share content from across the web. Never lose a link again. With Wakelet, you can bookmark the content that matters to you, organize it how you like, and add your own images and notes to give context. People everywhere are using Wakelet to save, organize and share content in stunning, visual collections.So, whether you’re a student, traveller, blogger, brand or business, it’s easy to start bookmarking.“

We will use Wakelet to easily share resources we can use in classrooms and projects we create while participating in this book club Creative Coding in Python.

Resource 1- Popular Programming Languages
Resource 2- Flowchart

Project 1 – Share your chatbot
Project 2 – Share your art work

Twitter
We love to see you share your thoughts and work on Twitter using #CIRCLedu on Twitter and mentioning @CIRCLeducators ! Also, please share any book recommendations for future book clubs!

Woman types on laptop code books surround her photo by #WOCinTech Chat

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

by Pati Ruiz

This is the second post in a two part series based on my dissertation which focused on encouraging the participation of women and African Americans/Blacks, Hispanic/Latinx, and Native Americans/Alaskan Natives in computing. The first post focused on modeling an interest and passion for CS and creating safe spaces for students. This post focuses on building community, introducing students to careers, and making interdisciplinary connections.

Build Community and Connect Students with Mentors

Family support is important! Young adults encouraged and exposed to CS by their parent(s) are more likely to persist in related careers (Wang et al., 2015). And did you know that women are more likely than men to mention a parent as an influencer in their developing a positive perception of a CS-related field, more often citing fathers than mothers as the influencers (Sonnert, 2009)? Unfortunately, parents’ evaluation of their children’s abilities to pursue CS-related fields differs by gender; parents of boys believe that their children like science more than parents of girls (Bhanot & Jovanovic, 2009). Nevertheless, family support is crucial for young women and supportive family members — whether or not they are connected to the tech world — play a critical role in the encouragement and exposure that young women get to the field.

Helping parents understand the role that they can play is important. As educators, we can model for them how to encourage their children as well as how to dispel misconceptions and harmful stereotypes that their children might have heard. Sometimes parents and family members themselves might unknowingly be perpetuating harmful computer science world misconceptions with the comments they make to their children. As teachers, we can provide parents with training that might help them understand how to encourage and expose their children to the field in positive ways. After all, the research shows that this support can be provided by anyone – not just educators.

All of the young women in my study described the value of mentors. Even seeing representations of female role models in the media can encourage a young woman to pursue a CS-related degree. It’s important for young women to see representations of people who look like them in the field and to have real-life female mentors and peers who can support them in their pursuit of CS-related degrees and careers. As a result of the low number of women in the field, mentors and role models for women are primarily men. While this can be problematic, it does not have to be. Cheryan et al. (2011) found that female and male mentors or role models in computing can help boost women’s perceived ability to be successful if those role models are not perceived to conform to male-centered CS stereotypes. The gender of the role model, then, is less important than the extent to which that role model embodies current STEM stereotypes.

The actionability of some of the factors described above, then, allows educators and others to positively influence and encourage young women in high school to pursue CS degrees in college (Wang et al., 2015).

Introduce Careers

In their recent report titled Altering the Vision of Who Can Succeed in Computing, Couragion and Oracle Academy described the importance of introducing youth to careers in technology. They find that:

“It is critical to improve the awareness and perception of a breadth of careers in computing to meet the demands of our workforce and the desires of our students. We need to elevate high demand and high growth computing fields such as user experience (UX) and data science – that when understood, appeal to and attract underrepresented populations.“

What this report found is what I found in my research; many African Americans/Blacks, Hispanic/Latinx, and Native Americans/Alaskan Natives students don’t know people working in the computing field and don’t know what career options can look like. Couragion is working to change this by providing inclusive, work-based learning experiences that prepare students for jobs of the future. What I like about Couragion’s approach is that students are able to use an app to explore careers and engage with role models through text, activities, and videos. As they work their way through different career options, students take notes and reflect using a digital portfolio. I think this is a great way for students to develop career consciousness, something I wish I had when I was in school (as a student and teacher)!

As a teacher, the way I would connect my students with industry careers was to connect with local groups like GirlDevelopIt and invite speakers to my classroom. I also had college students visit my classroom – it usually works well to have recent graduates come back to talk to students because students relate well to recent high school graduates. I also introduced computer scientists in the news. If I were teaching right now, I would highlight 2018 MacArthur Fellow Deborah Estrin. In her Small Data Lab at Cornell, Dr. Estrin and her team are designing open-source applications and platforms that leverage mobile devices to address socio-technological challenges in the healthcare field. Or, I might direct them to this recent article written by Clive Thompson titled The Secret History of Women in Coding.

Some participants in my study mentioned that they ended up majoring in CS because of a mentor. One participant talked about how one of her high school teachers “dragged her to” a Technovation event. There, she ended up seeing a young woman who she “saw herself” in so she decided to apply to the same college that the mentor attended, got in, and went. This participant envisioned herself there because of this near-peer. She said that she didn’t connect with her mentor once she got to the university that they both attended for a year together, but just seeing her ahead of her in the program was motivating.

Again, the idea here is to create opportunities for students to connect with people in the field – to see themselves and to see the possibilities. Some groups that my students have worked with include Girls Who Code, Black Girls Code and Technolochicas – there are many others. Which ones do your students work with?

Make Interdisciplinary Connections

Finally, we have the idea of making interdisciplinary connections. CIRCL Educator Angie Kalthoff wrote a post for EdSurge discussing this very topic. Angie encourages teachers to ask their students: What are you doing outside of school that you want to tell other students about? She and a group of Minnesota educators organize student-powered conferences where middle schoolers showcase what they’re really interested in learning about. Check out her post because getting together with other educators to organize your own student-powered conference might be an excellent way you support and recruit young women and African Americans/Blacks, Hispanic/Latinx, and Native Americans/Alaskan Natives!

Interdisciplinary connections can be facilitated by teachers and it’s important to note that all of my study participants were very thankful to their K-12 teachers for having encouraged their pursuit of a technical field – even if they didn’t know they had. As one participant described, “a teacher who’s clearly passionate” is particularly encouraging.

One resource that can help you make interdisciplinary connections with students iss Connected Code: Why Children Need to Learn Programming by Yasmin B. Kafai and Quinn Burke. Join the CIRCL Educators book club to discuss this book starting in April!

Please note that the featured image for this post was created by #WOCinTech Chat, check them out! We’d love to hear from you — Tweet to @CIRCLEducators or use #CIRCLEdu.

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.