Category Archives: Computational Thinking

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.
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!

Constructionism (and Constructivism)

by Judi Fusco

This post was written during our book club and discusses some concepts that were not covered in the book but are important as we think about constructionism.

We’re going to discuss constructionism and also think about constructivism; they are similar words and Papert’s constructionism grew out of Piaget’s constructivism. Note, we’ll talk more about Piaget’s constructivism (and Vygotsky’s social constructivism) in another post soon.

Our book club book, Coding as a Playground, discussed how Papert didn’t want to define constructionism rigidly. Marina Bers gives us some of the dimensions he discussed and some help thinking about it.

On page 21, she writes:

Seymour Papert refused to give a definition of constructionism. In 1991, he wrote, “It would be particularly oxymoronic to convey the idea of constructionism through a definition since, after all, constructionism boils down to demanding that everything be understood by being constructed” (Paper, 1991). Respecting his wish, in my past writings I have always avoided providing a definition; however, I have presented four basic principles of constructionism that have served childhood education well (Bers, 2008):

  • Learning by designing personally meaningful projects to share in the community;
  • Using concrete objects to build and explore the world;
  • Identifying powerful ideas from the domain of study;
  • Engaging in self-reflection as part of the learning process.

Bers goes on to discuss how constructionism is in line with ideas about how important “learning by doing” is for young learners. In another paper, Karen Brennan (2015) also discusses how important it is to let learners to design, personalize, share, and reflect during the constructionist process.You can see those ideas in the principles Bers discussed.

Karen Brennan also writes “Constructionism is grounded in the belief that the most effective learning experiences grow out of the active construction of all types of things, particularly things that are personally or socially meaningful (Bruckman, 2006; Papert. 1980), that are developed through interactions with others as audience, collaborators, and coaches (Papert, 1980; Rogoff, 1994), and that support thinking about one’s own thinking (Kolodner et al., 2003; Papert, 1980).”



Papert’s Paper Airplane: construction(ism) plus sharing the creation to discuss it with others, to think about what’s important and not important, and then working alone or with others to make the creation better.

I’m going to digress a little from thinking about elements of constructionism and give a little background on constructionism and constructivism. Papert was the father of constructionism and he worked with Jean Piaget, the genetic epistemologist who developed theories of constructivism to help us understand how young children acquire knowledge (background: genetic epistemologist, genetic = genesis or beginning; epistemology = study of knowledge). Bers tells us how constructionism is a play on and tribute to constructivism. Constructivism and constructionism are two terms that have caused much confusion in many folks. A few years back, my graduate students and I came up with a mnemonic to help them remember who developed the different ideas, and what constructionism and constructivism mean.

The mnemonic: Papert, his last name looks like “paper” with a t and you can construct a paper airplane because you like to make them, which makes it personally meaningful. Key here is you don’t constructivize them, you construct them.

When you’ve made your paper airplane you can show it and demonstrate how it flies to your friends and they can give you feedback on the design of the airplane. As you talk about it, you might discuss something that improves it, and then you can refine it. This whole process, making, discussing, and learning from it is constructionism. You learn because you make something, share it, discuss it, reflect on it, and continue to improve it. (You might have to use another sheet of paper for another paper airplane, though.)


This is in contrast to Piaget’s constructivism, which is all about what is happening in the mind: If you put an m (for mind) on top of a v (for constructivism) you can see how much we love constructivism.

Piaget’s constructivism is a theory about what happens in the mind as you actively create structures in the mind. Here’s the mnemonic: if you put an m (for mind) on top of a v (for constructivism) you can see how much we love constructivism. (Work with us here, it’s a mnemonic — also, there’s a v in love, too.)  (See picture.)

Piaget’s constructivism is all about what is happening in the mind, whereas constructionism discusses the process that brings learners together to think about something tangible and specific. Of course, when we have learners work together, create, and build, we also hope they add new things to their minds (constructivism); the two should absolutely go together. (And it gets fuzzy here! Where does constructionism end and constructivism begin?) A lot of people talk about constructionism as learning by doing, and it absolutely is, but while we create, we should also discuss, iterate, and learn (create new knowledge structures, or modify old ones in our heads). I constructed this blog post to help us have something to talk about. Please join me and discuss so we can learn more together.

The perfect place to discuss is in our Book Club on Coding as a Playground, talk to about this post or even better, we’d love for you to share your real life examples of constructionism in classrooms as you work with students to help them learn to code or to think computationally. I’d love to know how you think about these terms and how you get your learners to design, personalize, share, and reflect on important parts of the work they are doing for their learning in your classroom! Tweet #CIRCLEdu or come share in the Book Club!

Resources

If you’d like to know more about Constructivism and Constructionism see:

http://fablearn.stanford.edu/fellows/blog/science-teacher’s-take-constructivism-constructionism

http://fablearn.stanford.edu/fellows/blog/constructivist-science

http://fablearn.stanford.edu/fellows/blog/constructionism-learning-theory-and-model-maker-education

Reference: Brennan, K. (2015). Beyond Technocentrism. Constructivist Foundations, 10(3).

Get ready for the CIRCL Educators’ Book Club!

Book Club Advert

CIRCL Educators’ Blog is written by a small group of educators from across the nation who collaborate and think together about issues related to learning and technology. We share research, resources, and best practices. We have so much fun as we learn together that we decided we should open up the space and see who else would like to participate in the learning fun.

Our goal is to discuss a few books as a book club in 2019. Our first book will be Coding as a Playground, inspired by the Infosys Pathfinders Institute. The book club will start on 1/13/12019. To discuss our first book, we will use Flipgrid. Flipgrid is a video discussion platform that is used in classrooms and universities. If you haven’t used Flipgrid, we’ll help! It’s a platform used by a lot of teachers in their classrooms and most find it pretty easy to use. When you visit the CIRCL Educators’ bookclub site on January 13th, you will be able to click a green “+” to add a Flipgrid response. After you click the green “+” you will be prompted to share your reflection. Flipgrid will walk you through how to make your response post. There is no password or code needed!

We will also use Twitter to discuss conversations! Follow our Twitter account @CIRCLEducators and use the hashtag #circledu to share your thoughts!

The book club will have two questions each week and we encourage you to share your thoughts and interact with other members of the book club on Flipgrid! If you are new to Flipgrid, see an overview and a video showing how educators use Flipgrid in their classrooms.

As a way to show our appreciation for your participation, we will be giving away a free book for our next book club! In order to qualify for the drawing, you must participate in the discussion on Flipgrid each week! (While we love twitter, we are afraid it will be difficult to make sure we find all tweets for the drawing.) In addition, if you do participate in Flipgrid each week, you will receive a certificate of participation from CIRCL Educators.

Sign-up for notifications about when the book club is starting and to get the questions each for the book club.

About the Book:

Coding as a Playground is the first book to focus on how young children (ages 7 and under) can engage in computational thinking and be taught to become computer programmers, a process that can increase both their cognitive and social -emotional skills. Readers will learn how coding can engage children as producers-and not merely consumers of technology in a playful way. You will come away from this groundbreaking work with an understanding of how coding promotes developmentally appropriate experiences such as problem-solving, imagination, cognitive challenges, social interactions, motor skills, development, emotional exploration, and making different choices. You will also learn how to integrate coding into different curricular areas to promote literacy, math, science, engineering, and the arts through a project-based approach.

About the Author:

Marina Umaschi Bers is a professor in the Eliot-Pearson of Child Study and Human Development and an adjunct professor in the Computer Science Department at Tufts University. She heads the Developmental Technologies Research group where she studies innovative ways to promote positive childhood development through new learning technologies. Marina co-developed the Scratch Jr programming language in collaboration with Mitch Resnick from the MIT Media Lab and Paula Bonta from the PICO company. She is also the creator of KIBO, a robotics platform for children 4 to 7 that can be programmed with wooden blocks (no screen needed), which allows young builders to learn programming and engineering while integrating arts and crafts.

*The information about the book and author is quoted from the book Coding as a Playground: Programming and Computational Thinking in the Early Childhood Classroom.

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. 

Computational Thinking Webinar

By Pati Ruiz, Sarah Hampton, Riley Leary, Judi Fusco, and Patti Schank

For the last few months, we’ve been  reading, thinking, and talking about computational thinking (CT) in preparation for three Webinars for Teachers and Parents on the topic. The webinars are on January 30, February 6, and February 13. Go to the link above to sign up for the webinar and get all the details.

ct

A lot of the websites and articles we reviewed about computational thinking for teachers gave us only a brief introduction to it.  We’ve read about what researchers have been doing and how they have been thinking about CT, and using their research, we’ve been trying to think about what CT means for and looks like in the classroom. We also know that it’s a new topic for parents, and that parents may want to think about what it means and what it can look like at home.

The term computational thinking was made popular in a paper in 2006 by Jeannette Wing, and since then, researchers have expressed different understandings and definitions of the term. There wasn’t a common understanding of what it was then, and exactly “What is it?” is still a fair question today. Some people equate computational thinking with coding, but others do not. We agree that computational thinking is a much broader set of skills than just coding or programming, and that it’s not the same thing as computer science. Computational thinking skills include abilities that help people use computers to solve problems. Being able to program is one way of interacting with a computer, but there are other ways that one can work with a computer, and computational thinking is needed in more than just programming classes. For example, when researching for a history project, students may need to use data to strengthen their arguments. Students are using CT when they locate, evaluate, analyze, and display data. Learning to program is an advantage, in terms of learning to think in a new way, but we believe that programming is not the only way to incorporate CT into classes. We’ll explore these things in our webinars.

The first session will be an overview of CT. The second session will be geared toward what CT can look like in K12 classrooms. At our third session––a special webinar for parents or other caregivers––we will think about projects and practices that can be done at home with kids to help them learn and think in this new way. Come to the webinars to learn and think with us about computational thinking and what it looks like in K12 classrooms and at home! Please share this information with interested colleagues and parents as well. We hope to see you there!