If you have the freedom to choose a programming environment for your teaching, what are your considerations when deciding what tool/environment to use?
Reflect on the following questions. How do the different answers suggest using different tools/programming environments?
What endpoint are you hoping your students reach? Is it becoming a professional programmer or programming basics? Is it to be able to use programming for personal expression or to help students to be college-ready? How do different tools/programming languages or environments stack up given your goal for your learners.
What prior computing experiences do students have? Will they already be facile with computers and have spent lots of time using computers in academic contexts? Learners’ prior computing experiences may shape what tool you want them to use.
What experiences and prior knowledge do you want learners to draw upon? If a central goal of your instruction is to increase confidence and help students gain a sense of belonging in computing, that should influence to tools you choose and their ability to support activities that let learners draw on interests and personal expression. Alternatively, if the goal is to prepare learners for a degree in computer science, then you may prioritize other tools.
Where in a computing education trajectory are your students? Is this an early learning experience or will learners have had some prior computing? This question relates to the low-floor, high-ceiling dimensions discussed in the chapter and if/how you consider transitioning from one environment to another.
What types of resources/supports exist for the tool you are considering? While all the environments discussed in the chapter have some resources available to support them, some languages/environments have a more robust set of supports available.
In the paper, Computing for all? Examining critical biases in tools for learning, the authors argue that in order to address the “need for broadening participation in computing, there must be a focus not just on providing culturally relevant content but also on building accessible and inclusive computational tools.” Their findings, after interacting with Native American youth to design digital artifacts, was the there are embedded cultural biases that exist in the structures of computational tools.”
What is your reaction to this conclusion? What kind of cultural biases do you believe are embedded in popular computational tools?
Reflect on and discuss on the following comments by the authors.
Culturally responsive computing connects computing content heritage and vernacular cultural practices.
“Black boxing,” or lack of transparency in how it works, in computational tools makes it difficult for novices to enter computing cultures.
Design tools are embedded with particular ways of being, knowing, valuing and doing.
The authors suggest the following implications for practice. How can these suggestions be put into practice?
Collaborative, community-based design processes could mitigate the cultural biases that persist in computational tools.
Transparency in computation tools in critical to broadening participation in computing cultures.
Culturally responsive design of computational tools at the structural level is required to build inclusive computing cultures.
If you were designing a new computational environment or could improve upon the computational tools/environments you use or are familiar with, what design features would you include in light of the implications outlined in bullets 1-3 above.
Dr. Amy Ko argues in Critically Conscious Computing that computing is not neutral. How would you promote a critical reflection/interrogation among students on the tools/environments you are using to learn programming. Encourage students to think about the goals do they promote and whose voices they reflect or leave out.
(Contributed by Dr. Christine Liebe, CSTeach Course, Colorado School of Mines)
How could we teach one short demo computer program and teach multiple concepts and skills with that one program?
Given that Scratch is now available in many languages, what would be the pros and cons of learning Scratch in a culturally non-dominant language?
What are some ways that you could “slow down” the execution of block or text-based code, so students can understand discrete statements or lines of code?
How could you demo finding browser-based source code as a way to help students begin to value and situate new programming knowledge?