Theme: Building Good CS Habits
Quote:
“What are the habits of a computer scientist? So I get them [students] to reflect on what habits they are doing well and what habits they still need to improve on and why. So thinking about well, it's not enough to have a program that works...it's those habits that are actually going to, if you don't fundamentally understand the concepts now later on, if you really have the mindset, you can make it happen...That's something I try to instill in them. It's not because it's what they're doing is hard. And I think it's a little complicated for middle school brains to grasp. And so they're going to get super frustrated along the way. But if I can instill in them that it's not really about programming, It's more about, “Oh, am I being persistent? Am I able to utilize my resources? Am I able to think like a computer? Am I being able to be creative?
Strategy 1: Reflection
Reflection. Get students to reflect on their projects, and on what habits they are doing well and what habits they still need to improve on and why. Reflections can be told verbally in person, in a recording, or in written form. Prompt students by asking them these questions: 1. What challenges did you have while completing this assignment? 2. What is something you're most proud of? 3. What areas would you like to improve on?
Resources:
Scaffolding student reflection
----------------------------------
Quote:
“...seeing the adult, the authority figure in the room, modeling though failure can be productive and it's expected. And what we're doing probably allows (students) to breathe a little bit easier, I would imagine. I find resilience in that failure is really important, because I’ve had a lot of kids where it's like they don't immediately get it. They're gonna give up. All right. That's what they do in other classes... You can't. And that not giving up on it, that's a cultural piece that we're working on right now, school wide. Just like there are some and I recognized this that there are some... some aspects of life where it's like, yeah, there are some things that are always gonna be with you, right? It's not something that you're just gonna throw grit at it and feel like, ‘I'm just gonna get over it’. But there does need to be a certain level of being open to growth mindset and being like, ‘All right, if I try this and this, maybe that will work,’ and trying, instead of just being like, ‘It failed once and I'm done,’ but, ‘I am not shut down!’
Strategy 2: Building Persistence
Persistence. Don't give up! Persistence is a habit of mind that can be taught and cultivated, but it does not come automatically to many students. Students often give up for many reasons. Explicitly teach and then remind students when problems are challenging they can take a break, take some deep breaths, and use their available resources. Explicitly teach kids how to find and use resources such as tutorials, use hints or scaffolds built into coding platforms, how to ask for help productively, or recruit a teammate. It is important to model what productive help-seeking looks like and when to go to this strategy as some students may become dependent on it, leading to a decline in persistence. It will feel more rewarding when the obstacles are overcome.
----------------------------------
Quote:
“We talk about this at the beginning of every year. It’s not about where you are now but it’s where you are going to go. Just because you do not know something now does not mean you can’t acquire new knowledge and apply it later. We say all these wonderful things about growth mindsets to our students and then when they ask us to think outside the box or consider a new way of doing things, we (teachers) are reluctant? Model growth mindset. Be authentic and admit to your students what your biases and your misconceptions are about other people...and for the sake of accountability, be specific! Actually tell your students what your biases are (and explain the experiences from which they emanate).”
-------------------------------------------------------------
Strategy 3: Cultivating a Growth Mindset
Growth Mindset. Carol Dweck’s ideas on growth mindset have been widely adopted across the educational landscape. At the heart of her theory is that it is possible and advantageous to instill in students that they are capable of learning, and that one’s ability to learn is not “fixed”. Students can be empowered to become self-directed learners who seek information, and learn skills. Growth mindset is not just for students. In fact, the CSTA Equity Fellows believe that it is essential for CS teachers and teachers of CS to cultivate this mindset for themselves and model it for their students. This is true not only in regards to academic learning, but also in how we as adults deal with and are transparent about our own privilege and bias and growth.
Note:
While the cultivation of growth mindset has tremendous potential, we urge teachers to be wary of entering it based on a deficit mindset model of their students. Many of our students, especially those who live under constant stress due to racism, discrimination and poverty, exhibit tremendous perseverance and a growth mindset in order to survive on a daily basis. We should strive to acknowledge this and the fact that it is societal and educational inequities which are “fixed” and desperately need change.
Resources:
What a Growth Mindset Actually Means
----------------------------------
Quote:
“I have kids who because of their identity and certain customs, don't make eye contact with [other] kids. And that's something that I recognize, with my biases, that I had to understand. OK, I can't force kids to make eye contact. So what I tell them to do is to walk around the room and stop and find somebody. I said, if you don't make eye contact, that's fine. But I would prefer you can make eye contact and pick somebody in the room that you're going to be your partner with. To collaborate means both parties are involved and that's the thing that I truly stress upon them is that when you're collaborating with somebody, both people have the same amount of say and they both have the same amount of say as far as the direction of where your project is going to go. I said if there's any point that one of you decides to just pick boogers and the other one to do all the work then you're not collaborating any more. That's an individual project at that point. [I teach them] to really listen to what their [partner is] saying because their direction, you might think you have an idea of the direction they want to go, but they haven't explicitly told you that. So we give each partner one minute to talk and explain their vision or what they're thinking. And then the other person listens. And so they understand that like collaboration is not everybody talking...but now let me actually listen to see if I really heard during that collaboration piece of this person's vision for our project, because I think a lot of times people don't do that. I think adults don't do that well at all and I think that's part of the problem.”
Strategy 3: Learning to Collaborate Effectively
Collaboration can be both structured or unstructured. A common form of collaboration seen in computing education is pair-programming. As with many strategies, effective pair programming is a skill that must be learned and practiced. It requires that students develop a level of respect for each other and are able to listen to each other's visions. In this model, one student takes on the role of the driver and is in charge of the hardware and the other assumes the role of the navigator and is in charge of their shared vision or plan. It is imperative that students switch roles often so that no one dominates the conversation or direction of learning. Use Vanilla Ice's Stop, Collaborate, and Listen as a structure for students to collaborate and work together.
Quote:
“Since you have kids here at different skill sets, I really try to get the students that could excel at a quicker rate to buy into [the idea that] if I really am good at what I'm doing, I can help other people...really kind of creating these class leaders within it that are willing to help. And I’ve also found a lot of students really enjoy offering the help once they have that empowerment of, hey, I can do this!”
What is the right balance between students’ responsibility for learning and the levels of teacher’s support and challenge in the classroom? It can be hard to meet the needs of all learners as the only adult in the room. One way to adjust for this and make learning environments student-centered is through creating structured systems where students work with each other. Empowering classmates to tutor others can take on many forms. Surrogate or cross-grade level tutoring involves having older, more experienced students work with younger, less experienced students. Proctoring style programs involve having students who are slightly ahead of their peers work with those peers. In this model, it is imperative that the same students do not consistently take on the same role. Build on all students’ strengths and switch roles regularly. In reciprocal peer tutoring, pairs of students tutor each other. Consider adopting a help desk wherein students are rotated through during assigned periods to work the desk and provide support to their peers.
Informal or unstructured collaboration often occurs between students as they solve computational problems or create computational artifacts. While there is great potential in these collaborations, students often need some scaffolding to make these interactions productive. Consider using sentence starters, or helper language for younger students such as the example found here. Consistent teacher modeling of what productive informal collaboration looks and sounds like is an important step in ensuring the collaboration will be fruitful.
Resources:
Vanilla Ice Stop! Collaborate and Listen picture
Peer Collaboration During K-12 Computer Science Instruction
How Equity and Inequity Can Emerge in Pair Programming
Peer Programming in Code.org
“What are the habits of a computer scientist? So I get them [students] to reflect on what habits they are doing well and what habits they still need to improve on and why. So thinking about well, it's not enough to have a program that works...it's those habits that are actually going to, if you don't fundamentally understand the concepts now later on, if you really have the mindset, you can make it happen...That's something I try to instill in them. It's not because it's what they're doing is hard. And I think it's a little complicated for middle school brains to grasp. And so they're going to get super frustrated along the way. But if I can instill in them that it's not really about programming, It's more about, “Oh, am I being persistent? Am I able to utilize my resources? Am I able to think like a computer? Am I being able to be creative?
Strategy 1: Reflection
Reflection. Get students to reflect on their projects, and on what habits they are doing well and what habits they still need to improve on and why. Reflections can be told verbally in person, in a recording, or in written form. Prompt students by asking them these questions: 1. What challenges did you have while completing this assignment? 2. What is something you're most proud of? 3. What areas would you like to improve on?
Resources:
Scaffolding student reflection
----------------------------------
Quote:
“...seeing the adult, the authority figure in the room, modeling though failure can be productive and it's expected. And what we're doing probably allows (students) to breathe a little bit easier, I would imagine. I find resilience in that failure is really important, because I’ve had a lot of kids where it's like they don't immediately get it. They're gonna give up. All right. That's what they do in other classes... You can't. And that not giving up on it, that's a cultural piece that we're working on right now, school wide. Just like there are some and I recognized this that there are some... some aspects of life where it's like, yeah, there are some things that are always gonna be with you, right? It's not something that you're just gonna throw grit at it and feel like, ‘I'm just gonna get over it’. But there does need to be a certain level of being open to growth mindset and being like, ‘All right, if I try this and this, maybe that will work,’ and trying, instead of just being like, ‘It failed once and I'm done,’ but, ‘I am not shut down!’
Strategy 2: Building Persistence
Persistence. Don't give up! Persistence is a habit of mind that can be taught and cultivated, but it does not come automatically to many students. Students often give up for many reasons. Explicitly teach and then remind students when problems are challenging they can take a break, take some deep breaths, and use their available resources. Explicitly teach kids how to find and use resources such as tutorials, use hints or scaffolds built into coding platforms, how to ask for help productively, or recruit a teammate. It is important to model what productive help-seeking looks like and when to go to this strategy as some students may become dependent on it, leading to a decline in persistence. It will feel more rewarding when the obstacles are overcome.
----------------------------------
Quote:
“We talk about this at the beginning of every year. It’s not about where you are now but it’s where you are going to go. Just because you do not know something now does not mean you can’t acquire new knowledge and apply it later. We say all these wonderful things about growth mindsets to our students and then when they ask us to think outside the box or consider a new way of doing things, we (teachers) are reluctant? Model growth mindset. Be authentic and admit to your students what your biases and your misconceptions are about other people...and for the sake of accountability, be specific! Actually tell your students what your biases are (and explain the experiences from which they emanate).”
-------------------------------------------------------------
Strategy 3: Cultivating a Growth Mindset
Growth Mindset. Carol Dweck’s ideas on growth mindset have been widely adopted across the educational landscape. At the heart of her theory is that it is possible and advantageous to instill in students that they are capable of learning, and that one’s ability to learn is not “fixed”. Students can be empowered to become self-directed learners who seek information, and learn skills. Growth mindset is not just for students. In fact, the CSTA Equity Fellows believe that it is essential for CS teachers and teachers of CS to cultivate this mindset for themselves and model it for their students. This is true not only in regards to academic learning, but also in how we as adults deal with and are transparent about our own privilege and bias and growth.
Note:
While the cultivation of growth mindset has tremendous potential, we urge teachers to be wary of entering it based on a deficit mindset model of their students. Many of our students, especially those who live under constant stress due to racism, discrimination and poverty, exhibit tremendous perseverance and a growth mindset in order to survive on a daily basis. We should strive to acknowledge this and the fact that it is societal and educational inequities which are “fixed” and desperately need change.
Resources:
What a Growth Mindset Actually Means
----------------------------------
Quote:
“I have kids who because of their identity and certain customs, don't make eye contact with [other] kids. And that's something that I recognize, with my biases, that I had to understand. OK, I can't force kids to make eye contact. So what I tell them to do is to walk around the room and stop and find somebody. I said, if you don't make eye contact, that's fine. But I would prefer you can make eye contact and pick somebody in the room that you're going to be your partner with. To collaborate means both parties are involved and that's the thing that I truly stress upon them is that when you're collaborating with somebody, both people have the same amount of say and they both have the same amount of say as far as the direction of where your project is going to go. I said if there's any point that one of you decides to just pick boogers and the other one to do all the work then you're not collaborating any more. That's an individual project at that point. [I teach them] to really listen to what their [partner is] saying because their direction, you might think you have an idea of the direction they want to go, but they haven't explicitly told you that. So we give each partner one minute to talk and explain their vision or what they're thinking. And then the other person listens. And so they understand that like collaboration is not everybody talking...but now let me actually listen to see if I really heard during that collaboration piece of this person's vision for our project, because I think a lot of times people don't do that. I think adults don't do that well at all and I think that's part of the problem.”
Strategy 3: Learning to Collaborate Effectively
Collaboration can be both structured or unstructured. A common form of collaboration seen in computing education is pair-programming. As with many strategies, effective pair programming is a skill that must be learned and practiced. It requires that students develop a level of respect for each other and are able to listen to each other's visions. In this model, one student takes on the role of the driver and is in charge of the hardware and the other assumes the role of the navigator and is in charge of their shared vision or plan. It is imperative that students switch roles often so that no one dominates the conversation or direction of learning. Use Vanilla Ice's Stop, Collaborate, and Listen as a structure for students to collaborate and work together.
Quote:
“Since you have kids here at different skill sets, I really try to get the students that could excel at a quicker rate to buy into [the idea that] if I really am good at what I'm doing, I can help other people...really kind of creating these class leaders within it that are willing to help. And I’ve also found a lot of students really enjoy offering the help once they have that empowerment of, hey, I can do this!”
What is the right balance between students’ responsibility for learning and the levels of teacher’s support and challenge in the classroom? It can be hard to meet the needs of all learners as the only adult in the room. One way to adjust for this and make learning environments student-centered is through creating structured systems where students work with each other. Empowering classmates to tutor others can take on many forms. Surrogate or cross-grade level tutoring involves having older, more experienced students work with younger, less experienced students. Proctoring style programs involve having students who are slightly ahead of their peers work with those peers. In this model, it is imperative that the same students do not consistently take on the same role. Build on all students’ strengths and switch roles regularly. In reciprocal peer tutoring, pairs of students tutor each other. Consider adopting a help desk wherein students are rotated through during assigned periods to work the desk and provide support to their peers.
Informal or unstructured collaboration often occurs between students as they solve computational problems or create computational artifacts. While there is great potential in these collaborations, students often need some scaffolding to make these interactions productive. Consider using sentence starters, or helper language for younger students such as the example found here. Consistent teacher modeling of what productive informal collaboration looks and sounds like is an important step in ensuring the collaboration will be fruitful.
Resources:
Vanilla Ice Stop! Collaborate and Listen picture
Peer Collaboration During K-12 Computer Science Instruction
How Equity and Inequity Can Emerge in Pair Programming
Peer Programming in Code.org