What does a CS methods class look like?
There are only a couple of universities in Georgia where you can get a CS teaching endorsement (a kind of credential that is an add-on to an initial certification). In both of them, you have to have a CS methods class, where students learn how to teach CS. One of them needed a CS methods course taught, but didn’t have anyone available to teach it. The problem was that it was needed by a single student (these endorsement programs are woefully undersubscribed). I offered to teach it — though not officially, since I’m a GT professor and not a professor at these other schools. So, someone else was signed up to be the instructor-of-record, and I ran the course, all on-line with weekly Skype chats.
Folks might be interested in what’s in a Methods course, so I’m sharing my draft syllabus here. Since there was only one student, I made up a syllabus to submit to check that it met the requirements of the course, and we didn’t update it afterwards. I make no claims about quality of the course. It was a class for one student to meet a requirement, and I wanted the experience of teaching a CS methods course. It did meet all the requirements of the program (which were more prescribed and substantial than most CS courses I teach). Not all the links here are live — some went to servers inside firewalls, and others were sent out via email.
Syllabus for CS Methods Course
- Be able to describe use and when one should use different CS teaching approaches like live coding, peer instruction, pair programming, worked examples, and kinesthetic learning activities.
- Be able to describe and diagnose common student misconceptions, e.g., with assignments, with while vs. if, and so on.
- Be able to describe approaches to teaching computer science, including constructionist, objects-first, functions-first, media computation.
- Write a lesson plan to teach a CS topic for a specific grade level, including assessments.
Assignments (and distribution for final grade):
- Reading reflections (4): 25% of grade
- Lesson plan: 25%
- Exam and grading rubric: 15%
- HW assignment design and grading rubric: 15%
- Project: Create all the teaching material for a single unit within a Computing Pathway class, including lessons plans, homework assignments, grading rubrics, and tests: 30%
- Why is learning to program hard? Read Guzdial chapter from Fincher & Petre and Robins, Rountree, and Rountree.
- Write Reading Reflection #1: Do you agree with the challenges to learning programming that you read there? What additional challenges have you seen?
- Read Juha Sorva appendix A. Link to whole thing.
- Discuss: How would you identify these misconceptions? How would correct them?
- Read a paper on Pair Programming (probably this one).
- Write Reading Reflection #2: Why do you think Pair Programming works as well as it does in this study? Do you think it would work as well in a high school setting?
- Read a paper on Peer Instruction: Pick any one that you like on this site.
- Review KLA website.
- Read four blog posts on worked examples in classroom from this site.
- Discuss: Peer instruction, KLA, worked examples, gesture: When are they useful and when aren’t they?
- Two readings on CS assessment: On concept inventories, and how do we assess CS.
- Write Reading Reflection #3: These papers are both undergraduate computer science. How would it be different when accessing computer science at the high school level? Would the issues be the same or different?
- How we design CS curricula.
- Discuss: Which of these approaches would work best for high school students and why? When would one work better than another?
- Write Reading Reflection #4: Based on all of these readings, come up with a philosophy of teaching K-12 computer science. Pick a grade range you prefer (elementary, middle school, secondary), and describe: What do you think ought to be taught? How do you think it ought to be taught? How do you think it ought to be assessed?
- Discuss the reflection, and pick a topic to write a lesson plan on
- Write a lesson plan: How would you teach the CS topic?
- Discuss afterwards.
- Write a homework description and grading rubric: What would you want students to do, to learn this topic? What misconceptions would you expect? How would you assure yourself they got it right?
- Discuss afterwards.
- Write an exam to test knowledge of that topic and the grading rubric for that exam.
- Discuss afterwards
- Discuss Planning for project. What worked, and what didn’t work? Are there additional things you need to know?
- Week to do additional reading, or to identify a topic for the project.
- Work week on Project
Week 15: Project completed
- Project: Create all the teaching material for a single unit within a Computing Pathway class, including lessons plans, homework assignments, grading rubrics, and tests