Category Archives: Computer Science

CS Recommendations

By Pati Ruiz

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

What tools do you recommend for learning to program?

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

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

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

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

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

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

Picture

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

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

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

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

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

Implementing Bootstrap: An Adventure in Algebra and Computer Science Integration

By Sarah Hampton

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

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

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

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

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

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

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

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

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

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

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

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

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

Programming + Music with EarSketch

By Pati Ruiz

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

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

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

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

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

​Image from Website:

Encouraging Young Women in CS: Shifting Perceptions and Attention

By Pati Ruiz

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

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

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

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

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

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

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

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

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

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

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

References:

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

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

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

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

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