Conversation with Jacob about teaching MWC at Berkeley

2021-08-26

  • Berkeley information school professional Master’s program MIMS

  • A lot of the students have technical backgrounds, career experience

  • For example, someone previously in marketing drew on set theory (audience segmentation) to understand boolean logic.

  • This was optional, free, and online.

  • Started with 40 people; ended with 15 people.

  • Preparation for required CS programming foundations course.

  • Goals: Functions, Variables, Loops, and Strings.

  • OK, content-based approach is not the best approach here. Focus on problem-solving.

  • What’s unique about the curriculum is that it introduces you to programming while focusing on computational problem-solving.

  • The beginning really does focus on thinking about geometry; thinking about problems.

    • Another student studied math and art in undergrad; was pulling out Euclidian geometry!
  • How it went

    • I was worried that it would be targeting HS audience too much and that they would feel condescended to.
      • Not an issue.
      • Actually, people felt hand-held too little. People wanted more direction, more lectures, more coding examples.
      • Started doing more live-coding. That worked quite well.
      • Structuring more “instructionistic” experiences were helpful.
    • How much of this experience was due to the specific audience?
      • There were students who felt apprehension; were used to quite narrow expectations.
      • Others: I’ve tried to learn Python before; this helps a lot.
      • And others with no prior programming experience; enjoyed having space to explore. The ones in this camp had a mathematical background.
  • The first unit of CS9 is quite mathy, quite focused on geometry.

    • Chris question: Would it be more helpful to shift between formalisms? (e.g. to grammar as a formalism over language)
    • It’s not so much about different problem domains

The benefit of focusing on these formalisms is that they give you a ton of space for thinking about different kinds of problems. when you have many different formalisms, you give them a lot of space.

  • Look at how Papert thinks about programming as a tool for learning about thought. How do we go from “cognitive apprenticeship” mode of presenting formalisms to selecting or building formalisms which will be suitable for problem-solving.

Quizzes. After each session, students had to do a quiz that reviewed the content of the day. There was a three-hour session each day which focused on one of the labs each day. Three questions in each quiz:

  • one was a code-tracing problem.

  • one was an error/fix-it problem.

  • there was always a debugging question. the code would run; how to fix the bug.

  • In CS9, we are not engaging enough with cognitive skills such as code-tracing or debugging. By the end, we had been through most of the most common errors that come up.

    • Cool research idea: log ASTs of python which runs over a school year. In particular, log errors thrown.
  • The particularly important thing about the quizzes was the review.

  • Just coming up with more problems for students to work on would be helpful.

  • Some feedback: Not enough practice between jumping to new topics.

Building out support for teachers in doing the problem-solving. Resources.