Roadmap
The next revision of MWC should focus on its role within a broader classroom technology ecosystem. A few current issues:
Separation of concerns
MWC provides task structures such as collaborative labs and project specifications, but there are other roles classroom technology needs to play which MWC currently does not fill, and which it probably should not fill. We need to be intentional and strategic in drawing the boundaries of what MWC does and what it doesn't do--to distinguish MWC from generic CS curricula but also to ensure that it supports and encourages teacehrs to adopt constructionist pedagogy while using it.
First, MWC will not provide calendaring--a mapping of particular activities to particular class meetings. Other software already does this, such as Learning Management Systems. A LMS should point into particular lessons and activities in MWC. Perhaps we could offer sample unit plans, but we want to resist compulsory pacing guides.
Second, MWC doesn't provide lesson plans. It doesn't tell teachers how and when to check in with students, how and when to structure groups, how to interact with off-task sudents, and what to do when the teacher is also stumped.
Third, MWC doesn't provide comprehensive coverage of CS topics. Our implicit stance has been that we teach programming as a means to the ends of interacting with powerful ideas through personally-meaningful projects. We are not targeting CS1, a foundational course for CS majors. This is why we are a bit casual with programming constructs (e.g. we don't emphasize testing, edge cases, and formal correctness) and CS topics (e.g. we don't emphasize mathematical rigor). We probably ought to be more explicit about this approach, and might also want to welcome the use of companion resources which cover the topics we introduce in more depth.
Fourth, MWC doesn't provide tools for grading. MWC probably should do more to support teachers in assessment, but the relationship between grading and assessment is complex and context-specific.
Clarify ontology
Currently the course is centered around labs and projects; do-nows, resources, and challenges, have all emerged through practice; other planned resources haven't been developed. What role should MWC have to other classroom media, such as class slides and student notebooks? Let's revisit the design patterns of what a MWC unit contains, so that we can maintain consistency as we keep developing new materials and courses.
In the interests of repeated practice and formative assessments, it would be helpful to have a more comprehensive bank of exercises aligned with the content of labs. Teachers might choose to use these differently.
Minor issues related to consistency:
- Shall we adopt standard file headers?
Meet teachers, classrooms, and schools where they are
We have some open design questions:
- Is it realistic for teachers who have taken MWC but who are not CS majors to teach MWC? What kind of support and pedagogical preparation could help ease this challenge?
- MWC is tightly-bound to Python, the command line, and git, three interfaces with high floors, but almost no walls or ceilings at all. This represents a bold hypothesis that with the right support, such interfaces can work in an introductory CS course. Is this true?
- MWC is also committed to student ownership of code and tools. Students need access to general-purpose computation--real computers which they can use as tools, not managed portals or locked-down sandboxes. This is a challenge to the authoritarian technology culture prevalent in many schools. Can it work?
Pedagogy
-
MWC's pedagogical model is underdeveloped and implicit in the values of computational cultures, powerful tools, and liberatory pedagogy. We ought to further articulate what has worked in teaching this course and provide materials to support such teaching practices. For example, we need a consistent structure for asking students to submit written answers. We need a consistent model for explicitly teaching the process of program design, and a unified diagrammatic language in which to express the model.
-
To what extent do we align with findings from PRIMM or UMC?
Pedagogical content knowledge
- Make thinking visible
- Support collaboration
- Build a culture of self-efficacy
- How do you organize the help queue?
Pedagogical shortcodes
In order to achieve consistency across lessons, I'd like to develop a set of pedago
- Documentation links: When we use important terms, they should be linked to the "site documentation," or the how-to guide for the site.
- Plan, code, observe: Could be enacted via
- Predict, observe: When learning new constructs.