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:
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:
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.
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.
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:
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.
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).
Center for Computational Thinking at Carnegie Mellon.
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.
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:
For more information about EarSketch:
Video: EarSketch: teaching coding through music
Journal Article: EarSketch: A STEAM-Based Approach for Underrepresented Populations in High School Computer Science Education