This course centers critical computational literacies as a framework for thinking about how and why we might teach K12 Computer Science (CS). Just as schools participate in broader social systems which shape our lives and which may or may not contribute to a more just and peaceful society, CS is only one part of the work of a school. Our work as CS educators may be constrained by other priorities and stakeholders, and our work can also reshape the work of the school beyond the classroom. We take as our starting point the premise that CS education is currently figured in a way which gives it unusual leverage to reshape K12 educational practice.
This introductory course on computer programming simultaneously teaches beginners the fundamentals of computer programming while using that learning experience as a context for developing K-12 pedagogical content knowledge of how programming is most effectively taught and learned. One primary audience for the course is future CS teachers, or future teachers interested in interdisciplinary CS. Programming topics include variables, data types, control flow, planning, debugging, abstraction, and modularization. Pedagogical topics include debugging, misconceptions, formative and summative assessment, and teaching with computational media.