Design Patterns for CS Education/Our Story

The Connected Learner is a re-orientation of undergraduate computing education. The goal of this project is to rethink the lecture, lab, assignment model and focus on active learning in the classroom where students are actively engaged with their peers, the profession, and a socially relevant purpose. Learning how to learn from others, building strong collaborative and communication skills, and being part of a community of computing professionals is as important as learning the knowledge, skills and theory of computer science. This project builds on the concept of lightweight teams, flipped classroom strategies (Maher et al 2015), and service learning for community projects.

The project will develop taxonomies and design patterns for knowledge and assessment to facilitate scaling and disseminating educational innovation in computing. Additionally, the project will examine the key factors in building a sustainable practice of educational innovation, which includes faculty attitudinal shifts and infrastructures to support and sustain learning practices. The project will evaluate and disseminate pedagogical practices and lessons learned. This book provides examples of course materials, pedagogical design patterns, and assessment strategies so that others can change their approach to teaching computer science.

This project is funded by the NSF Revolutionizing Engineering Departments. The project is funded for 5 years with $2M to create organizational change around teaching innovation. The Principle Investigators on this project are Mary Lou Maher, Bojan Cokic, Larry Mays, Celine Latulipe, Jamie Payton, Audrey Rorrer, and Steven Rogelberg. We are the authors of this book and we invite you to follow, like, share and comment on the page contents.

In this book we identify emerging design patterns from our experiences with active learning in CS education. The patterns provide education strategies and tactics that can be adopted to solve problems in a classroom, such as, how to make the class more interactive, how to ensure every student's participation, how to learn abstract concepts with active learning, how to make learning more social. The design patterns are intended to support educators in any institution while teaching a Computer Science Program.

Examples of strategies included in our Design Patterns:

  • Flipped Classroom strategies
  • Leveraging social interaction and peer instruction
  • Active Learning
  • Pair Programming with frequent partner switches
  • Use of Clicker Quiz in class room
  • Game like methods to create competition
  • Different role playing in the class room
  • Creating online material to complement or replace textbooks
  • Lecture-On_Demand: Covering topics in response to students' understanding or misunderstanding


Maher, M.L., Latulipe, C., Lipford, H. and Rorrer, A. (2015). Flipped Classroom Strategies for CS Education, Proceedings of the 46th ACM Technical Symposium on Computer Science Education. pp. 218-223. Doi:10.1145/2676723.2677252