Things that have caught my attention…
- Mental Models -> What “world view” do students have when they enter into a class? What notional machine have they already established as a result of being digital natives?
- Building a teaching community -> What are the “best practices” for teaching CS? What are common mistakes/misconceptions students make? Can we put all this information in one place and disseminate it to instructors on a large scale? Further, can we establish a standard for what “good” (reliable, valid) CS education research looks like and how instructors/researchers can start implementing it in their own classrooms?
- Active learning -> Let’s try this in the CS classroom and actually evaluate how it goes. Not just in a senior design course. In an intro course. Like the work at Purdue on problem-based learning in engineering.
- Learning theory -> What learning theories are used in CS? Are some more correct or accurate in the context of CS education than others? How can we combine knowledge of how the brain works, constructivist theory, and other general learning theories into cohesive, reliable classroom practices?
- Online learning -> The MOOC craze. Why aren’t we taking cues from The Open University in the UK? How will this emphasis on online learning guide our research? How much will it negatively impact classroom instruction? Is the classroom really that important? In my opinion, yes, but how do we show that to non-believers?
- Place-based and/or culturally relevant education -> How can programming education be adapted for different audiences? Will it increase minority interest (and success rates) in computing?
Not sure where this stuff fits into those questions…
- IPython as a teaching tool
- Formative assessment (like minute cards) and how to modify instruction on the fly
- Good summative assessment techniques for evaluating efficacy of a teaching strategy
- The workshop model for programming ed (and how it ties into higher education research)
- Institutional change