Computing education research (CER), also known as computer science education (CSEd), is the study of how people learn and teach computing, broadly construed. This FAQ will teach you more about the field and how you might contribute to it.
First, CER is not teaching. Teaching is helping people acquire knowledge, skills, attitudes, beliefs, identities. Research is discovery and invention. Teachers teach computing, whereas computing education researchers make discoveries about this teaching and learning, and invent new ways for these teaching and learning to occur. CER is an example of discipline-based education research, like math education research or science education research, all of which are part of the broader field of education and learning sciences research.
CER is also not educational technology. Computing education researchers often create educational technologies to support the learning and teaching of computing, but CER is not explicitly concerned with the broader use of technology in learning, teaching, and education. It's specifically concerned with the learning and teaching of computing in particular. Many computer science researchers invent learning technologies, but are not computing education researchers, because those technologies are not concerned with the learning of computing.
It's also important to note that I view "computing" broadly: it's not just about programming, or even just about computer science, but also about all of the phenomena surrounding computing, including data, information, privacy, security, ethics, software engineering, and sociocultural and sociopolitical views of computing in society. This means that computing education and CER can and does cover far more than just learning to code---it just hasn't historically.
How does computing education research compare to learning sciences, education research, and educational psychology?
My background isn't in these fields, though I do collaborate with people in these other communities and have learned about their differences. Here's the best characterization I can give:
- Education research is broadly concerned with formal systems of education, how to make those systems effective and just, how to prepare teachers to make them effective and just. The field is interested in general theories of learning, education, interest development, and identity, and because of it's focus on formal education, is often focused on youth, who are the dominant age demographic engaged informal education. The phrase "Computing education" uses the word "education" in this same way, but I believe is more broadly concerned with teaching and learning in any context (in principle, but often not in practice).
- Educational psychology is focused on learning phenomena in the mind, such as learning, memory, development, intelligence, self-regulation, motivation, and self-concept. The field is also concerned with school psychologists who help students with their mental health. The field tends to be more quantitiatve than education research and learning sciences, following traditions of cognitive psychology. Computing education draws upon this field, especially in its history of cognitive theories of program understanding.
- Learning sciences emerged in the 1990's as a reaction to educational psychology's inattention to the setting, culture, and social context of learning. Combining perspectives from cognition, cognitive science, computer science, and design, like education research, it's much more concerned with the sociocultural factors that shape learning, and more than education and educational psychology, views design as a means to articulating theories, a way of shaping theories, and a way of testing theories. Because of the focus on context, in addition to being concerned with formal systems of education, it is also concerned with learning across the lifespan, at home, in families, and other settings.
How does computing education fit in to all of this? Like other discipline-based education research (DBER) such as math and physics education, it draws upon all three of the fields above, using theories and ideas from those fields. However, because it is focused on a discipline, it is specifically concerned with the content of the discipline, specific methods of learing and teaching that content. In this sense, it is more applied, bridging foundational ideas that span any human learning to applied ideas specific to the learning of specific ideas and skills.
As with any research discipline, research questions can and should be specific. However, there are some major overarching questions in this field that researchers have begun to investigate, including:
- How do people learn computing?
- How do teachers teach and assess computing?
- How does identity interact with people's learning of computing?
- How can people learn computing more effectively?
- How can teachers teach computing more effectively?
- How can access to computing education be improved?
- How can computing education be delivered equitably to all?
- How can computing education be reimagined to serve goals other than profit and disruption?
- How do racism and sexism warp learning, teaching, and curricula?
- How can we implement anti-racist CS education?
- How can learning technologies teach computing?
- How does computing education affect people's lives?
- What are the societal costs of computing illiteracy?
- What does it mean to know computing?
- What is computing?
- What can be taught about computing to learners of different ages?
While the "people" in the questions above could be anyone (youth, teens, college students, adults, and even teachers), the history of CER has primarily focused on teaching students in post-secondary settings, because the faculty conducting research have found it easier to study the students they are teaching. This is changing as countries around the world begin to incorporate computing into all levels of school, and as private industry begins to create technologies and services that teach computing to all ages. For example, my research has investigated new ways to teach youth from age 8-18, as well as adults.
There are so many! Examples include:
- The field discovered that diversity in computing education is low because of the narrow, exclusionary nature of computing cultures, not because of inherent disinterest or inability on the part of diverse learners (e.g., Fisher & Margolis 2002, Margolis 2010).
- The field invented contextualized computing ed pedagogy (e.g., Mark Guzdial's media computation), which has greatly increased the diversity of computer science graduates, and spread to many universities.
- The field built upon the earliest structured editors like the Cornell Program Synthesizer, eventually maturing them into block-based editing environments like Alice, Scratch and Blockly. These editors greatly increased engagement in computing education, and greatly reduced barriers to learning programming languages.
- Seymour Papert, who was broadly concerned with learning, but also the learning of computing, contributed constructionism, a new theory of learning (Papert 1980).
- Alan Kay, one of the earliest researchers to investigate the learning of computing, helped build upon ideas of object-orientation from Simula, which inspired Smalltalk, which along with other languages such as C++, inspired the modern object-oriented programming languages and IDEs we use today.
The field's recent efforts to transform STEM education through computing, invent rapid new forms of learning online, and devise more equitable ways to teach should be equally, if not more impactful.
Most computing education researchers are faculty in universities. Many of these faculty are tenure-track faculty like myself, which means a substantial portion of our time (~50%) is spent on scholarship. However, there are also many full-time instructors who find additional time to do research on top of their teaching. Many of the original authors at ICER were once members of the Bootstrapping or Scaffolding groups (led by Fincher, Petre, and Tenenberg), who were CS teachers that started to do research in their own classrooms.
Not all computing education researchers are college faculty. Some work in industry creating educational technologies for teaching computing, applying their expertise to the research and design of educational software. Some work in non-profits, using their expertise to advocate for computing education in schools, while conducting research on factors that affect policy. Some work in school districts, helping to implement computing education curricula in schools, while studying and evaluating the effectiveness of the implementation. Others work in government, facilitating research funding. Others still become teachers themselves, both at universities and other schools.
Tenure-track faculty are in the best position to make advances in the field because a substantial portion of their time is dedicated to research, but the research contributions by teaching-track faculty are critical, as they often bring more richly informed perspectives on the practice of teaching. It is possible to do research in other positions, but it is often outside the scope of a job. Because of this, many non-tenure track faculty focus their research on settings that their job gives them access to, which can restrict which research questions they can answer.
The most effective route is to get a Ph.D. in computing education research at one of the many Ph.D. granting universities in the world. Ph.D. students learn to conduct research over the course of multiple years (generally 4 to 6) under the supervision of an advisor. Many undergraduates participate in research to help them learn about research, which can also help with admission to Ph.D. programs (especially if you publish, which demonstrates your interest and ability in conducting research).
You need to find a university that grants Ph.D.s and has tenure-track faculty who do research in CER on a topic that you're interested in. The alphabetical list below contains some of the many faculty who advise Ph.D. students on computing education research. Find them online and see what kind of research they're doing. (This list may be out of date, as faculty sometimes move universities, retire, go to industry, or change research areas, so be sure to check their website for the latest information).
One note about selecting advisors: their disciplinary affilitation is just one indicator of the nature of the contributions they might make (people in CS departments might built learning technologies, people in colleges of education might focus on teacher training and pedagogy), but this is not a perfect indicator. Look closely at researchers' recent publications; and if their websites seem out of date, write them to ask what they're working on.
Another caveat: some of the faculty below have chosen their expertise descriptions, but others I had to extract from faculty websites wrote. I've put a * next to expertise that hasn't been chosen or agreed to by the researcher being described. These expertise tags are also likely to be perpetualy out of date, as researchers pursue new topics. The best thing to do is click on their name to visit their website and see what kinds of research they have published. That's the most direct indicator of their interests, the methods they use, and the types of contributions they want to make (other than just writing them and asking, which you can also do).
Name | Expertise | Unit | University | Country |
---|---|---|---|---|
Erik Barendsen* | pedagogy, literacy, computational thinking | Computing and Information Sciences | Open University | Netherlands |
Tiffany Barnes | inclusion, educational games, tutoring systems, teacher education | Computer Science | North Carolina State University | USA |
Austin Cory Bart | introductory computing, motivation | Computer Science | University of Delaware | USA |
Brett Becker | novices, programming, compilers, errors | Computer Science | University College Dublin | Ireland |
Tim Bell | CS unplugged, curriculum | Computer Science | University of Canterbury | New Zealand |
Matthew Berland* | digital media, data science learning | Curriculum & Instruction Computer Science |
University of Wisconsin-Madison | USA |
Paulo Blikstein* | project-based learning | Communications, Media and Learning Technology Design | Columbia University | USA |
Kristy Boyer* | intelligent tutoring systems | Computer Science | University of Florida | USA |
Karen Brennan | constructionism, creativity, K-12 classrooms, teacher learning | Graduate School of Education | Harvard | USA |
Jed Brubaker | how identity is designed, represented and experienced in socio-technical systems | Information Science | University of Colorado, Boulder | USA |
Cornelia Connolly | pedagogy, teacher education, computational thinking, design | School of Education | National University of Ireland, Galway | Ireland |
Steve Cooper* | program visualization, spatial reasoning | Computer Science & Engineering | University of Nebraska, Lincoln | USA |
Quintin Cutts* | pedagogy, assessment, work based learning and teacher learning communities | School of Computer Science | University of Glasgow | Scotland |
Joshua Danish* | how people learn through activity | School of Education | Indiana University Bloomington | USA |
Sayamindu Dasgupta* | youth, data science | School of Information and Library Science | University of North Carolina at Chapel Hill | USA |
Adrienne Decker | pedagogy, assessment, efficacy of outreach | Engineering Education | University at Buffalo | USA |
Paul Denny | collaborative learning, online learning, gamification, student-generated resources | Computer Science | University of Auckland | New Zealand |
Kayla DesPortes* | computing as a medium for expression | Learning Sciences | New York University | USA |
Sebastian Dziallas* | experiences in higher education CS | Fulbright University Vietnam | Vietnam | |
Betsy DiSalvo* | culture, informal learning | School of Interactive Computing | Georgia Tech | USA |
Brian Dorn* | HCI, informal learning, teacher education | Department of Computer Science | University of Nebraska, Omaha | USA |
Anna Eckerdal* | threshold concepts, MOOCs, learning in labs | Department of Information Technology | Uppsala University | Sweden |
Steve Edwards* | software engineering, formal methods, autograding | Computer Science | Virginia Tech | USA |
Barbara Ericson* | pedagogy, diversity | School of Information | University of Michigan | USA |
Martin Erwig | programming languages, visual languages, explanations, story programming | Electrical Engineering and Computer Science | Oregon State University | USA |
Katrina Falkner* | pedagogy, computational thinking | School of Computer Science | University of Adelaide | Australia |
Sally Fincher* | pedagogy | School of Computing | University of Kent | UK |
Casey Fiesler* | technology ethics | Information Science | University of Colorado, Boulder | USA |
Kathi Fisler | Programming languages, pedagogy, cross-disciplinary learning and transfer | Computer Science | Brown University | USA |
Diana Franklin | Equity, curriculum, and CS learning in K-8 | Department of Computer Science | University of Chicago | USA |
Armando Fox* | digital learning, programming systems, and software engineering | Electrical Engineering & Computer Science | University of California, Berkeley | USA |
Joanna Goode* | Access and equity for underrepresented students of color and females in computer science education | College of Education | University of Oregon | USA |
Tovi Grossman | HCI, software learning, interactive tutorials | Computer Science | University of Toronto | Canada |
Philip Guo | HCI, learning at scale | Cognitive Science | University of California, San Diego | USA |
Mark Guzdial* | pedagogy, curriculum, end-user programming, teachers, research instruments, theory | Computer Science & Engineering Engineering Education Research |
University of Michigan | USA |
Sarah Heckman | software engineering, automated grading, and help-seeking | Computer Science | North Carolina State University | USA |
Geoffrey Herman | conceptual change and student learning, assessment and measurement, pedagogy, and faculty development | Computer Science | University of Illinois, Urbana-Champaign | USA |
Felienne Hermans | K-12 education, misconceptions, teacher education, direct instruction, end-user programming | Computer Science | Leiden University | The Netherlands |
Nathan Holbert | constructionism, diversity | Mathematic Science and Technology, Teachers College | Columbia University | USA |
Peter Hubwieser | assessment | Computer Science | TU Munich | Germany |
Chris Hundhausen | social learning technologies and pedagogical approaches | Computer Science | Washington State University | USA |
Sridhar Iyer* | computing education research | Computer Science and Engineering | Indian Institute of Technology Bombay | India |
Yasmin Kafai | constructionism, educational games, electronic textiles, Scratch | Graduate School of Education | University of Pennsylvania | USA |
Dennis Kafura* | computational thinking | Computer Science | Virginia Tech | USA |
Caitlin Kelleher* | learning technology | Computer Science | Washington University in St. Louis | USA |
Scott Klemmer* | HCI, learning at scale | Cognitive Science | University of California, San Diego | USA |
Amy J. Ko | HCI, software engineering, pedagogy, learning at scale | The Information School Computer Science & Engineering |
University of Washington, Seattle | USA |
Shriram Krishnamurthi* | programming languages, pedagogy | Computer Science | Brown University | USA |
Celine Latulipe* | HCI, creativity, pedagogy | Software and Information Systems | UNC Charlotte | USA |
Michael J. Lee | HCI, educational games, diversity, learning technologies | Informatics | New Jersey Institute of Technology | USA |
Victor Lee | learning sciences, computational thinking with board games, early childhood computational thinking, maker education | Instructional Technology and Learning Sciences | Utah State University | USA |
Colleen Lewis | Understanding and optimizing learning; identifying and removing barriers | Computer Science | University of Illinois at Urbana-Champaign | USA |
Raymond Lister* | cognition, assessment, program understanding | School of Software | University of Technology, Sydney | Australia |
Dastyni Loksa* | Programming problem solving | Computer & Information Sciences | Towson University | USA |
Andrew Luxton-Reilly* | learning communities, game-based learning, debugging, automated assessment, gender and diversity in CS | Computer Science | University of Auckland | New Zealand |
Lauri Malmi | program visualization, algorithm visualization, automatic assessment | Computer Science | Aalto University | Finland |
Lauren Margulieux* | online learning in computing | Department of Learning Sciences | Georgia State University | USA |
Briana Morrison* | pedagogy, cognitive load | Computer Science | University of Nebraska, Omaha | USA |
Lijun Ni | K-12 computer science education, teacher education and professional development | Department of Educational Theory and Practice | University at Albany, State University of New York | USA |
Chris Orban* | high school physics and math CS integration | Physics | The Ohio State University | USA |
Eleanor O'Rourke | HCI, educational games, learning technology, growth mindset, motivation | Computer Science and Learning Science | Northwestern | USA |
Tapan Parikh | Data science, civic tech, equity | School of Information | Cornell Tech | USA |
Elizabeth Patitsas | Computing as literacy, educational/technical inequity, sociology of education, gender studies, disability studies, teacher development, educator practices, policy analysis, computing & society, science and technology studies (STS), diversity | School of Computer Science Department of Integrated Studies in Education |
McGill University | Canada |
Roy Pea* | learning science, informal learning | Education and Learning Sciences | Stanford | USA |
Arnold Pears* | pedagogy | Department of Information Technology | Uppsala University | Sweden |
Bill Penuel* | teacher learning and organizational processes | Education | University of Colorado, Boulder | USA |
Marian Petre* | software design, design pedagogy | Centre for Research in Computing | The Open University | UK |
Leo Porter | pedagogy, assessment, educational data mining | Computer Science and Engineering | University of California, San Diego | USA |
Thomas Price | educational data mining, tutoring systems, automated feedback | Computer Science | North Carolina State University | USA |
Mitch Resnick* | constructionism, creativity | Media Lab | MIT | USA |
Judy Robertson* | data science education, curriculum development, teacher professional learning and games-based learning | School of Education | The University of Edinburg | Scotland |
Anthony Robins | psychology of programming, language learning, first programming language, novice programmers, CS1 | Computer Science | University of Otago | New Zealand |
Ricarose Roque | constructionism, creativity, informal learning, family learning | Information Science | CU Boulder | USA |
Linda Sax* | diversity in undergraduate CS and STEM | Department of Education | University of California, Los Angeles | USA |
Cliff Shaffer* | digital education | Computer Science | Virginia Tech | USA |
Kristin Searle* | gender, culture, engagement with computing | Instructional Technology and Learning Sciences | Utah State University | USA |
Carsten Schulte* | pedagogy | Computer Science | Paderborn University | Germany |
Valerie Shute* | assessment | Education | Florida State University | USA |
Ben Shapiro* | constructionism, new media | ATLAS Institute Computer Science |
University of Colorado | USA |
Andreas Stefik | Human factors of programming language design, accessibility | Computer Science | University of Nevada, Las Vegas | USA |
Jakita O. Thomas | computational algorithmic thinking, intersectional computing, complex cognitive skill development, computer-supported collaborative learning | Computer Science and Software Engineering | Auburn University | USA |
Jan Vahrenhold | algorithms, non-cognitive factors, TA education | Computer Science | University of Münster | Germany |
Sepehr Vakil | sociocultural perspectives on learning and identity; ethics and politics of computing; social justice education | Learning Sciences | Northwestern University | USA |
Erin Walker | personalized learning environments, computer-supported collaborative learning, robotic learning environments | School of Computing and Information | University of Pittsburgh | USA |
David Weintrop | design of learning environments, computational thinking, K-12 Classrooms | College of Education & College of Information Studies | University of Maryland | USA |
Uri Wilensky* | computational thinking, science integration | Learning Sciences | Northwestern University | USA |
Michelle Wilkerson | Computing in K-12 science and math education; w/ focus on modeling and data | Graduate School of Education | UC Berkeley | USA |
Joseph Jay Williams | HCI, A/B experimentation, learnersourcing, personalization, multi-armed bandits/reinforcement learning, self-explanation, metacognition, motivation and social psychology interventions, cognitive science, mental health, learning at scale | Computer Science | University of Toronto | Canada |
Aman Yadav | computational thinking, teacher education, problem-based learning, teacher professional development | Educational Psychology and Educational Technology | Michigan State University | USA |
Haoqi Zhang* | learning ecosystems | Computer Science | Northwestern | USA |
Advisors differ on the criteria they use to select candidates. Personally, I look for 1) experience with research, 2) passion in the subject of computing education, 3) the requisite skills to persue that passion, and 4) an overlap with my interests. You can get experience by working with faculty at your own institution. That can be hard if you don't have faculty doing work in this area. The requisite skills depend a lot on the contributions you want to make. If you want to envision and build new learning technologies, can you code well enough to build them? If you want to investigate new teacher training methods, do you have teaching experience? If you want to do more theoretical work, how strong are your writing and analytical skills? All of these skills end up being important in some way to participating in CER discourse, just to varying degrees.
Working specifically in computing education isn't necessary to achieve the above. Perhaps you have undergraduate research experience in HCI, software engineering, or programming languages. That can be fine, as long as your passion is clear and the skills you have align with the questions you want to answer. Researchers are always investigating new questions, so it's perfectly normal to have experience from other related areas of computing and information science.
There are many places where global CS education-related jobs are posted:
- The #jobpostings channel on the CSforAll Slack:
- The CRA Jobs website
- The SIGCSE-jobs mailing list
- The Higher Ed Jobs
- EdJoin
- @CSFacultyJobs on Twitter.
- Evan Peck maintains a list of CS faculty postings from "PUIs" (primarily undergraduate institutions).
Monitor those closely for opportunities. The field is growing, but in unconvientional ways: there are tenure-track positions, teaching-track positions, professor of practice positions, postdocs, research and development positions in not-for-profits, and much, much more.
Yes! In the U.S., Ph.D. students are generally funded by the research grants their advisors obtain, and can also receive NSF Graduate Research Fellowships, which cover three years of tuition and stipend. Undergraduates can participate in NSF-sponsored Research Experience for Undergraduate projects that faculty sponsor. CER faculty can also apply for NSF CAREER grants on computing education research, or an NSF Research Initiation Initiative for new faculty. Most Ph.D. granting institutions also offer teaching assistantships. In the United States, there are also regularly programs that fund CER. This changes frequently, but here is a current snapshot as of 2016:
- NSF STEM+C. Funds a variety of research and implementation projects, some focused on the integration of computing into STEM subjects, and some on basic computing education research.
- NSF IUSE. Funds programs that improve the quality of and access to STEM education in undergraduate programs. Does not directly fund basic research.
- NSF ITEST. Funds programs that broaden participation in STEM. Does not directly fund basic research.
- NSF DRK-12. Funds projects that enhance the quality of and access to STEM education in K-12, including basic research.
- NSF Cyberlearning. Funds projects that enhance how learning occurs in technology-rich environments, including intelligent tutors, computer-based instruction, computational tools for learning, etc.
- NSF EHR CORE Research. Funds basic education research. Not CS specific, but it has separate tracks within its reviewing structure for CS and engineering.
- NSF IIS Cyber-Human Systems. Funds HCI research. Not CS specific, but is very supportive of educational technologies that advance the capabilities of human expression.
First, you need to know some computing yourself. That doesn't mean you need an entire computer science degree, but it helps to have learned to code a bit, and to understand what an algorithm and a data structure is. It can also help to understand the culture of computer science as an academic discipline. Taking the first few introductory courses in a CS department is usually enough to provide this content knowledge foundation, unless you want to do research on the teaching of more advanced topics in CS.
Beyond that, there is a substantial prior work to learn before you can make original discoveries. I've organized some of the major works into categories below, to focus your reading.
As computing education research is a discipline-based kind of education research, foundations in education research are key. Below are essential works for conducting research on learning and teaching:
- How People Learn: Brain, Mind, Experience, and School and How People Learn II: Learners, Contexts, and Cultures provide an essential foundation in the major discoveries and theories of learning sciences and education research. Anyone doing research on learning should know everything in these books.
- Power and Privilege in the Learning Sciences: Critical and Socialcultural Theories of Learning presents foundational theories of learning that powerfully shape who learns.
- Research Methods for Social Justice and Equity in Education presents key methods for conducting education research in equitable ways, but also about equity and justice.
While not specifically about computing education, these books critically examine the role of computing in justice. The ideas in these books are key to understanding the social implications of computing on society. I focus on race in particular because race, at least in the United States, has structured injustice more heavily than all other social categories, making it critical to understanding the effects of computing.
-
Race After Technology examines how racism is embedded in software and the role of computer scientists and the software industry in reinforcing racism.
-
Black Software: The Internet and Racial Justice, from the AfroNet to Black Lives Matter explores the long history of racial justice movements organized online and how the impact of their innovations have been erased with false narratives social media company innovation.
These works summarize bodies of knowledge in computing education research, helping you to more quickly learn what the field has discovered. All of these are essential reading.
- The Cambridge Handbook of Computing Education Research is a carefully edited synthesis of all of the major discoveries in computing education research since its beginning as a field 50 years ago up until 2018. I authored several chapters along with more than a dozen other leading researchers with the goal of creating the definitive introduction to the field. It is reflective of prior work, for better or worse, going deeply into pedagogy, but only briefly (but elegantly) addressing issues of racism, sexism, and inclusion. Therefore, it should not be viewed as a vision for the future of the field, but rather a reflection of it's past.
- Learner-Centered Design of Computing Education: Research on Computing for Everyone is a wonderful synthesis of computing education research, with a focus on pedagogy for anyone learning computing, rather than just computer science students.
- Computational Thinking in K-12 A Review of the State of the Field examines the state of discourse about "Computational Thinking", a contested idea that has spread broadly throughout K-12 CS education, despite its questionable soundness as an idea.
- Introductory programming: a systematic literature review. The result of an ITiCSE working group, analyzes the literature along many facets: students, teachings, the curriculum, and assessment, and surfacing directions for future research.
- A survey of literature on the teaching of introductory programming summarizes papers on classroom instruction in introductory programming courses in higher education.
- Constructing a core literature for computing education research presents an appendix of impactful papers published before 2005.
- Misconceptions in programming is a great review of the broad literature on misconceptions that people form about programming languages.
- Lowering the Barriers to Programming: A Taxonomy of Programming Environments and Languages for Novice Programmers surveys hundreds of programming languages and environments intended to support learning to code. There have been many more since its publishing in 2005, but before ever inventing one of your own, it's important to know what's been invented already.
- The State of the Art in End-User Software Engineering summarizes the literature on end-user programming, which is related, but not the same as novice programming. It synthesizes of all of the programming languages, environments, and tools that have helped people learn to code while automating a task.
Everyone working in CER should have read these books and understand their implications for research and practice.
-
'Underrepresented Minority' Considered Harmful, Racist Language is a short blog post that discusses the terminology we use when we discuss diversity in computer science.
-
Mindstorms: Children, Computers, and Powerful Ideas is a classic book that envisions a theory of learning grounded in the construction of knowledge through personally meaningful tinkering and creation, especially with computers. I summarized the book in a blog post.
-
Stuck in the Shallow End: Education, Race, and Computing illustrates the numerous racist structures, beliefs, and practices in K-12 education that systematically exclude students of color from CS education.
-
Unlocking the Clubhouse: Women in Computing examines how the culture of higher education CS systematically excludes and deters women from participating in CS education, and explores promising practices for changing this culture.
-
Epistemological Pluralism: Styles and Voices Within the Computer Culture presents a critique of academic computing culture for is exclusion of diverse interests and ways of knowing.
-
When Twice as Good Isn't Enough: The Case for Cultural Competence in Computing critiques CS departments for being uncritical of themselves, their curricula, and the software industry, advocating for cultural competence amongst faculty and students.
-
The Intersection of Gender, Race and Cultural Boundaries, or Why is Computer Science in Malaysia Dominated by Women? examines the inherent intersectional complexity of race, gender, and culture that shapes participation in computing education.
-
They can't find us: the search for informal CS education demonstrates how search engines, CS education terminology, and culture interact to connect educated White families to informal CS learning opportunities, while obscuring them from less privileged families.
-
Visions of Computer Science Education: Unpacking Arguments for and Projected Impacts of CS4All Initiatives analyzes the abundance of arguments for K-12 CS for All efforts, and how they intersect with varying political ideologies.
-
On Theory Use in Computing Education Research examines the use of theory in computing education and how it is often weaponized to prevent the publication of new ideas.
-
Ethics, Identity, and Political Vision: Toward a Justice-Centered Approach to Equity in Computer Science Education advocates for CS education researchers and teachers to more directly engage the sociopolitical context of CS education curricula and teaching.
-
Halving fail rates using peer instruction: a study of four computer science courses presents one of the few rigorously examined teaching methods that promotes improved learning, especially for students marginalized by CS education cultures.
-
African American men constructing computing identity examines how race, culture, and stigma can warp genuine interests in computing, and how informal learning interventions can counter these forces.
-
COMPUGIRLS’ Standpoint: Culturally Responsive Computing and Its Effect on Girls of Color illustrates the impact of culturally repsonsive computing on girls of color.
-
Digital Youth Divas: Exploring Narrative-Driven Curriculum to Spark Middle School Girls’ Interest in Computational Activities explores how to engage girls of color by centering their stories.
-
Becoming Technosocial Change Agents: Intersectionality and Culturally Responsive Pedagogies as Vital Resources for Increasing Girls’ Participation in Computing explores the importanc of intersectional views on culturally responsive pedagogy.
If you've read all of the above and are looking for more literature, be sure to follow all of the SIGCSE conferences, and other relevant education and learning science journals, monitoring the ACM Digital Library and the NSF funded website CSEdResearch.org, which surveys the broad expanse of CS education research, including article summaries and evaluation instruments.
While there are many books that provide guidance on teaching in general (e.g., Tools for teaching (Davis, 2009), How learning works: Seven research-based principles for smart teaching (Ambrose et al., 2010), Teaching what you don’t know (Huston, 2009), What Works Clearinghouse), there are only a handful of books written to guide CS educators (alphabetically):
- Coding as a playground: Programming and computational thinking in the early childhood classroom (Bers, 2017). A review of the opportunities in teaching younger children to code.
- Computer science K-12: Imagining the possibilities! (Bergman, 2018). Full of rich case studies, activities, projects, and practical guidance on organizing and managing CS classrooms.
- Computer Science Teacher: Insight Into the Computing Classroom (Clark, 2017). Focuses on secondary CS teaching and what the role entails, providing a rich set of case studies and quotes.
- Computational Thinking (Denning & Tedre, 2019). A historical introduction to computational thinking.
- Computer Science in K-12: An A-Z Handbook on Teaching Programming (Grover, 2020) includes 26 chapters featuring foundational programming concepts and practices, as well as well-researched pedagogies for teaching introductory programming. With chapter contributions from researchers and classroom teachers, the book shares concrete examples as well as abstract principles distilled from research studies and classroom practice along with many illustrative examples (in block- and text-based programming) that can be used in classrooms.
- Guide to teaching computer science: An activity-based approach (Hazzan et al. 2015). Includes detailed learning activities, curriculum reviews, CS education research, lesson planning, and course design. Some pre-service CS teachers find the concrete examples help; others find it jargony and overly complex.
- Connected code: Why children need to learn programming (Kafai et al., 2016). Argues for moving beyond computational thinking to computational participation, leveraging social networks and digital making. Discusses examples of youth participation with programmable toys, tools, and textiles and the ethical challenges that emerge in these social contexts.
- Computational thinking and coding for every student (Krauss and Prottsman, 2016). Includes strategies and activities for teaching computational thinking, with several lessons and annotated resources.
- Teaching Computing in Secondary Schools (Lau, 2017). Offers a framework for planning and delivering CS curricula.
- Computer science education: Perspectives on teaching and learning in school (Sentance et al. 2018). An edited book full of rich summaries about CS education research, but written less for teachers and more for those interested in research.
- Teaching computing: A practitioner's perspective (Walker, 2018). Full of teaching tips for higher education faculty teaching CS.
- Invent to learn: Making, tinkering, and engineering in the classroom (Martinez and Stager, 2013). A practical guide to bringing tinkering into the classroom via project-based learning.
- Teaching tech together. This is an informal survey of research useful for teaching programming. Greg put it together to help others become better teachers of computing.
Is one missing from this list? Let me know and I'll add it.
Most academic fields have exclusively academic venues for publication, with few practitioners participating in or reading the research that researchers produce. The CER community is unique (and I believe quite fortunate) in that practitioners are deeply involved in the academic research community (partly because most faculty conducting research are teachers themselves). Below I note several conferences and journals where you can publish computing education research (see SIGCSE for a broader list). Note that I separate the pure research venues from the venues that combine both research and practice since the combined venues are often dominated by practioners, which can make it hard to have focused research conversations and rigorous peer review.
-
ICER (the ACM International Computing Education Research conference) is the only academic conference that strictly publishes research. All of the reviewers who peer review submissions are trained researchers with Ph.D.s. ICER tends to focus on theoretically, methodologically, and empirically-rich work, advancing the science of computing education. It is held around the world but is generally in North America every other year.
-
TOCE (the ACM Transactions on Computing Education) publishes research, and is similar in scope to ICER, but in a journal format. Like ICER, the editorial board and reviewers are all trained researchers.
-
CSE (the Journal of Computer Science Education) publishes research and is similar to TOCE and ICER in its reviewing community and similar in research rigor and prestige. However, unlike TOCE and ICER, publications in CSE are generally expected to have more direct implications for teachers.
-
ICLS (the International Conference on Learning Sciences) does not strictly focus on computing education, but publishes high quality research on learning sciences. Accepts both qualitative and quantitative work, especially of mixed methods. Also tends to focus more on K-12 than the venues focusing strictly on CER.
-
JLS (the Journal of Learning Sciences) is one of the top education research journals and expects a strong connection to learning theory and mostly wants empirical work. It is not a journal that publishes HCI, so work must be connected to cognition, sociocultural context, or other theory, and not system design.
-
CSCL (the International Conference on Computer-Supported Collaborative Learning) focuses on issues related to learning through collaboration and promoting productive collaborative discourse with the help of the computer and other communications technologies.
-
IJCSCL (the International Journal of Computer-Supported Collaborative Learning), like CSCL, focuses on learning through collaboration.
-
L@S (the ACM Conference on Learning at Scale) is a computer science conference that focuses on techniques for scaling instruction. Some of the work published here concerns computing education, but many other domains are represented as well. Often focuses on MOOCs and other forms of online learning.
-
RESPECT (the IEEE Conference on Research on Equity and Sustained Participation in Engineering, Computing, and Technology) is a conference focused on engagement, participation, and equity in STEM fields. It has research and experience report tracks, and expects empirical papers grounded in theory.
-
IDC (ACM SIGCHI Interaction Design and Children) is an HCI conference with a focus on children, focusing on design artifacts for kids and enabling kids to be designers, with a special focus on participatory design as a methodology.
-
CHI (ACM SIGCHI Conference on Human Factors in Computing) is an HCI conference with a focus on any aspect of interactions between people and computers, including programming. As one of the largest and broadest ACM conferences, it's easily for research on learning to get lost here, but so does every other topic!
-
AERA (the American Education Research Association conference) has a division for engineering and computing education that publish papers on computational thinking.
-
JEE (the Journal of Engineering Education). High-quality but with few international collaborations (like the MIMN studies in CER). Occasionally has papers related to computing.
-
IEEE Global Engineering Education Conference. I know little about this conference; if someone has opinions to share, please send them to me!
-
IEEE Transactions on Education. I know little about this journal. Feel free to share opinions!
-
Journal of Education Computing Research. I know little about this journal. Feel free to share opinions!
- SIGCSE (the SIGCSE Technical Symposium on Computer Science Education) publishes both research and practice papers in a short format, bringing together researchers and teachers. This is the largest conference on computer science education and generally attracts teachers. There is a dedicated research track separate from experience reports, though the research track has a 6-page limit, making it unsuitable for many forms of research, such as qualitative work or more substantial quantitative work. Generally held in North America.
- ITiCSE (the Annual Conference on Innovation and Technology in Computer Science Education) publishes both research and practice papers, with a focus on practice. Generally held in Europe.
- Koli Calling (International Conference on Computing Education Research), held in Finland every year, publishes research and practice papers with a focus on qualitative research. A small but dedicated community.
- WiPSCE (Workshop in Primary and Secondary Computing Education) aims to bring together researchers and practitioners, and publishes both research and practice papers. It is generally held in Europe.
- ACE (the Australasian Computing Education Conference) is a regional conference with a mix of research and practice papers, bringing together education researchers and practitioners. Held in Australia or New Zealand, but welcomes attendees from anywhere.
- LaTiCE (the International Conference on Learning and Teaching in Computing and Engineering) publishes both research and practice papers. Held primarily in Asia.
- FIE (the ASEE Frontiers in Education conference) is more broad and more practitioner focused than SIGCSE and occasionally has CER work.
SIGCSE, like other ACM Special Interest Groups (SIGs), is an organization that focuses on a particular topic within ACM, namely computer science education. It sponsors ACM conferences (e.g., the SIGCSE Technical Symposium and ICER) and influences their structure and focus. Note that SIGCSE the group organizes SIGCSE the conference. I know, it's confusing, but aren't you glad you read this?
This is an important question, since many of the conference venues in the computing education community publish both. Unfortunately, the community hasn't developed much clarity about the differences between these. The result is that many papers published in the SIGCSE experience report track look like research papers, and many of the papers published in the SIGCSE research track look like experience reports. What's the essential difference?
In my opinion, the key distinction between research and an experience report is your audience, which implies your goals: are you writing to researchers, who aspire to build upon everything we know to advance theories about what we know about CS teaching and learning? In contrast, if you're writing to teachers, you're likely sharing practical knowledge, such as a interesting method you tried, a surprising experience, or a teaching method others might experiment with. The critical difference is that in research, trying to be certain that we know something, but it's okay if we don't know how to put that knowledge into action yet, whereas in practice, we're trying to learn how to teach something, even if we're not certain it will work. Another way to characterize the difference are some of the evaluation criteria. Research papers should be novel with respect to everything we know and sound, but not necessarily immediately useful. Experience report papers should be novel with respect to common knowledge (but not necessarily novel with respect to all knowledge), useful and interesting, but not necessarily sound.
I believe that both are valuable in their own ways. Research allows to build confidence in what we know, whereas sharing experience allows us to teach each other. We need both for a thriving practice of CS teaching and a thriving body of knowledge to inform that practice.
There are a few excellent blogs (in alphabetical order):
- Mark Guzdial's Computing Education Research blog has been active since 2009 and contains thousands of posts that explain computing education research to a broader community
- Felienne Hermans has a blog about programming and inclusion.
- Amy Ko's Bits & Behavior publication at Medium covers CER, software engineering, HCI, and broader issues in academia.
- Shriram Krishnamurthi's Parenthetically Speaking discussions a range of topics on academia, programming languages, and computing education.
- William Lau's blog on CS education and teaching more broadly.
- Lauren Margulieux's blog discusses learning sciences, discipline-based education reseach, and computing education.
- Alfred Thompson's Computer Science Teacher blog covers a range of computing education, research, and policy issues.
Is this list missing you? Let me know!
There are several online communities to join:
- The ACM ICER conference maintains a Discord server. Write Amy Ko ajko@uw.edu for an invite. It tends to be CER focused.
- The CS for All Consortium maintains a Slack team. Join as a member to access it.
- There's a private group on Facebook called Computer Science Education: Researchers and Practitioners
- Twitter is very active. Amy has a list of Computing Education researchers.