by Marisa Laks
In a recent survey of students in my computer science classes, I asked about the concerns they had at the beginning of the school year and what their feelings are now. Some responses included:
- “At the beginning of the year I was concerned about not understanding how to code. But now I am more confident with the basics of coding.”
- “I feared not being able to learn anything and coding being too confusing. This class is great. I am still learning but I know more now.”
- “I wasn’t sure how difficult the class would be, but I’m starting to get more comfortable with the class.”
The initial concerns these students had were similar to those of most of my students. Although some students chose to take a computer science class, many students were placed there not by choice. These students had little to no experience with coding or other computer science concepts and were unsure what the class would be like. So… How did their views from the beginning of the year change so much, and why is it important to have more positive views?
Students’ attitudes and feelings towards a class have a major impact on how successful they are in that class. According to the most recent Trends in International Mathematics and Science Study (TIMSS), students who liked learning math and science, and also felt more confident, had higher achievement on assessments in those subjects. Additionally, the students who had a greater sense of belonging in their school demonstrated higher achievement on assessments. In my classes, students develop more positive views of themselves and of computer science and are successful because of the classroom environment we create together. To create this environment, I use several different strategies, such as providing student choice, debugging strategies, promoting diversity, and pair programming.
1. Student Choice:
At the end of each unit, students work on code for a project where they have choices in how their program will turn out. I provide them with a rubric describing the types of elements they could include, but they decide which elements and how to use them. They bring their own creativity and interests into their projects. Often, I give students examples, but I always give them the option of doing what they choose. In one project, adapted from an NYCDOE CS4All ICM Lesson, students investigate abstract art and artists and recreate work in the style of that artist, or create a program to display their own abstract art design.
2. Debugging Strategies:
Many of my students are reluctant to try something because they worry about making mistakes; however, learning from mistakes builds confidence. When I make mistakes, I show them the strategies I use for debugging and use references to look at what I don’t know. I spend a lot of time at the beginning of the year encouraging students to try something and to see what happens. This is one way that a computer science class differs from other classes; students can instantly see their errors and receive messages on what needs to be fixed. Initially, we look at the error messages and work together to try and fix them. As they progress, the students are able to identify and fix the errors on their own, or if they can’t, they ask a peer for help. Students become comfortable making mistakes and are not worried about what others think of them.
3. Promoting Diversity:
To help students see themselves as computer scientists, they must see computer scientists that look like them. Frequently, I show short videos highlighting diversity in computer science. When working on a project where the students create their own emoji, I show a video about the importance of diverse emojis. Students watch videos about early computer scientists like Ada Lovelace, Alan Turing, and Katherine Johnson and a video about a cafe where people with disabilities control robots that interact with customers. They also watched a video about Native American artists when working on their abstract art project. Students answer questions about the videos and always give their thoughts on what they saw. We learn about different cultures and incorporate aspects from those cultures into projects. In one project, students learn about traditional blouses worn by Guatemalan women and write code to create their own pattern for a blouse. I also bring in volunteers of diverse backgrounds from different tech companies to speak with students and describe the journey they took to get to their career.
4. Pair Programming:
Working with their peers and discussing computer science concepts together helps students build confidence. We use the “Driver/Navigator” model of pair programming to ensure each student is contributing to their program. At the beginning of the year, we spend a lot of time practicing, and after a while, students naturally are able to work together on their code. It is important to change pairs so students can feel comfortable working with different people.
These strategies are integrated into lessons and projects and require time and effort to implement. If I am given a computer science curriculum to use, I look through it and see how it can be adapted to meet the needs of my students. I take the concepts and change the project. For example, a curriculum I use has a project requiring students to use conditional statements. I used those concepts and created a project where students investigate different world holidays that have an element of light in them. Students use the JavaScript library p5.js to write code that simulates turning on a light for a symbol of their choice related to a holiday. Sometimes students choose a holiday they celebrate, but other times they choose one they have just learned about. Some students even create their own light symbols.
As more schools and districts increase access to computer science classes, more students will be learning computer science. Not all of those students will choose to be in those classes, and not all of those students will begin the class with a positive view of computer science. To help them feel they belong in the class and have a more positive perception of computer science, teachers can incorporate student choice and collaboration, promote diversity, and encourage making and learning from mistakes. These strategies will help all students feel welcome in their class and build confidence.
References
Mullis, I. V. S., Martin, M. O., Foy, P., Kelly, D. L., & Fishbein, B. (2020). TIMSS 2019 International Results in Mathematics and Science. Retrieved from Boston College, TIMSS & PIRLS International Study Center website: https://timssandpirls.bc.edu/timss2019/international-results/
About the Author
Marisa Laks, is a computer science teacher, programmer, and Girls Who Code club facilitator at the High School for Environmental Studies in New York City. She has been teaching for 19 years overall, with 4 years of computer science experience. In June 2022, she received an Advanced Certificate in Computer Science Education from CUNY Hunter College. This past summer, Marisa facilitated training for CS teachers participating in NYCDOE CS4All professional development. She received an Equity Grant for a data science unit on voter suppression and presented at the Ready For Revolution conference in 2022. Marisa has visited Guatemala 4 times to work with teachers through the organization Mathkind. Based on her experiences there, she has developed a project where students learn about and write code to recreate the patterns of Guatemalan textiles. She is passionate about CS and believes all students should have access to quality CS education.