I have a contention. It might be considered controversial by some. Others might think what I am saying is obvious.
Traditional computer science programs and old-school computer science professors have not been teaching computer science. They have been giving course credit and granting degrees to a small set of stereotypically nerdy students (mostly white and asian males) who have been teaching themselves computer science in their spare time because it is their passion. Those students are great and we want them in our programs. However, there are not enough of those students to fill the jobs and create all the technology that is needed to solve the world’s problems. We need many people doing computer science to work in our information economy and to hopefully make the world a better place. And there are many people, across gender, race and ability spectrums, who have the intellectual capability to do CS. But, these other people also have other interests and they are not going to spend all of their spare time teaching themselves CS.
It is our responsibility as computing educators to actually teach computer science to our students, in the classroom. We have to acknowledge that a larger and more inclusive community is going to include people who have other hobbies, who have other jobs, who have family commitments, and they can’t spend every waking hour teaching themselves the skills they need to be successful computer scientists. Passive lecturing to these students will not scaffold the skills and tools they need and will not give them enough practice at doing CS. It will not build their confidence, it will not help them build an identity as a computer scientist.
CS is a relatively young discipline. Many would argue that we don’t really know exactly how best to teach everything in computer science. But, we have an ever improving set of best practices with empirical research behind them. Ask any of the 1700 people who just attended the SIGCSE conference, or who attended the ICER conference last August. The problem is that only a small percentage of faculty in CS departments are actually making use of these best practices, and it is typically the teaching track faculty and lecturers. We need all faculty to understand their responsibility to adopt best practices in CS education and we need our award systems to adapt to incentivize and reward that work.
I hear faculty complain about students not knowing how to program. This is nostalgia for the privileged days in which faculty didn’t have to teach students CS because the students were teaching themselves. One of my favorite quotes sums it up: “We need to teach the students we have. Not the ones we used to have. Not the ones we wish we had. The ones who are in front of us.”
This blog is going to be about innovation and best practices in teaching computer science and informatics. I challenge all my fellow faculty members, teaching-track and research-track, to embrace this work and get to know the awesomeness that is our current set of students who really need us to teach them computer science.