Tips for Growing as a Computer Science Educator



Note: I wrote a large portion of these tips in 2018 for the graduate teaching assistants in COS 226. However, these tips are general enough to be useful for anyone willing to grow as a CS educator.

0

Get into the right mind frame

Multiple studies found that CS educators rely mostly on intuition and anecdotal evidence to make decisions about changes in their daily teaching practice" and "do not believe that results from educational studies are credible reasons to try out teaching practices". This lack of reliance on research evidence allows myths and urban legends about learning and teaching to spread.

The first step is to acknowledge mindfully that teaching is not only a skill that requires practice, but also a science that requires learning. Never underestimate how easy it is to fall into folk pedagogy. This article by Raymond Lister is an excellent read to help you get into the right mind frame towards being a computer science educator that uses research to improve their teaching.

Peter Kugel's article on how professors develop as educators is also a great light-weight read to begin with. It can help you become self-concious of where you stand as an educator based on what you focus on most in your teaching.

1

Learn about teaching and learning in general

Regardless of whether you teach computer science or any other field, there are common things about teaching and student learning that are helpful to know. Start getting acquainted with theories like:

Start also getting acquainted with different Active Learning methods and recognizing differences between terms like Cooperative vs Collaborative Learning, Problem-Based vs Project-Based Learning, Situated Learning vs Cognitive Apprenticeship, etc.

Learn also about theories for how learners are motivated and about the interplay between these theories and teaching methods like Gamification. Examples of motivation theories include: Value Attribution Theory, Value-Expectancy Theory and Self-Determination Theory.

Besides, you need to know about assessment and curriculum design related concepts like formative vs. summative assessment, criterion-referenced vs. norm-referenced assessment, Outcome-based Education and Bloom’s Taxonomy, and rubric types.

There are many books that are good introductions on learning and teaching. Here are a few examples:

  • National Research Council, 2000. How people learn: Brain, mind, experience, and school: Expanded edition. National Academies Press.

  • Ambrose, S.A., Bridges, M.W., DiPietro, M., Lovett, M.C. and Norman, M.K., 2010. How learning works: Seven research-based principles for smart teaching. John Wiley & Sons.

  • Bain, K., 2004. What the best college teachers do. Harvard University Press.

There are also many free resources that summarize the main evidence-based best practices related to teaching in general like:

2

Learn about teaching CS in particular

To be an effective teacher, you need to know your subject matter very well and also know about how students learn and how teaching should be done. However, these two dimensions alone are not enough. The third important dimension is the intersection between these two dimensions, which is referred to as Pedagogical Content Knowledge (PCK).

How are Constructivism, Situated Learning and Neo-Piagetian theories applicable to the teaching of programming? What common misconceptions do novice programmers have? How do novice programmers comprehend code? What is the best programming language to use in CS1? How do students understand recursion? Is ordering shuffled lines of code a good way to assess programming? Should students learn to write test cases before writing their code? How can source code plagiarism be defined in an educational context? These are examples of questions that are not tackled in the field of education nor in the field of computer science, but are tackled in the field of Computer Science Education.

The field of Computer Science Education is young compared to other discipline-based educational fields (like Physics Education, Math Education and Engineering Education). However, it has become a vibrant field with many interesting findings. The following are some introductory texts to get you started with computer science education and maneuver its vast literature:

Books:

Research Articles:

  • Neil Brown and Greg Wilson provide in this article 10 tips for teaching programming. You can use the references to get acquainted with important evidence-based teaching techniques in computer science.

  • Chapters I, II and III of Juha Sorva’s PhD thesis provide an excellent introduction to the learning and teaching of introductory programming.

  • This article is a comprehensive review of the research on introductory programming from 2003 to 2017.

  • Pears et al. Compiled a list of potentially seminal papers in CS education as of 2007.

Web Resources:

3

Stay up to date

Here are suggestions for staying up to date in the field of computing education:





Last modified: