Design Patterns for CS Education/Active Learning

Active Learning can be defined as anything that "involves students doing things and thinking about what they are doing" (Bonwel and Eison, 1991).

Flipped classrooms and active learning promote the use of in-class activities for students as an alternative to long lectures and have been successfully implemented in introductory CS courses [2, 3]. In active learning the class time shifts from passive lecture-style learning to active practice-style learning in which students apply concepts introduced prior to coming to class. Class time serves to test student understanding of concepts, address gaps in that understanding, and apply newly learned concepts on more and more complex problems [4]. Motivations for creating an active learning classroom in CS education are to provide a rich interactive environment, foster better student engagement, involve students in collaborative and cooperative problem solving, and promote computational thinking [2]. In an active learning classroom, assessment is integrated into all stages of the learning process in contrast to the traditional lecture classroom in which assessment occurs after lecture and reading.

In an active learning class, students typically work in teams, in recognition that peer discussion encourages students to come prepared and engages students in explaining while learning. Team based learning is valuable to student success, even when the peers initially did not understand the concepts [4].

Active Learning has the following properties:

  • Students engage in active, high-impact classroom learning experiences.
  • Students are doing things and thinking about what they are doing.
  • Learning occurs through the use of problem-solving exercises, informal small groups, simulations, case studies, role-playing, and other activities.

In this book we focus on creating design patterns for bringing active learning into the classroom experience and move passive learning such as reading the textbook or listening to lectures to the preparation before coming to class. The following are principles of active learning that guide the emergence of design patterns in CS education:

  1. Provides context setting for learning concepts and principles.
  2. Encourages students to come to class prepared.
  3. Encourages feedback from students for continuous improvement of teaching.
  4. Does not reduce quality of learning when adapted to larger classes.
  5. Leads to classes that are more fun and more meaningful.
  6. Encourages peer to peer learning and community building.
  7. Students makes friends.


1- Bonwell, Charles C., and James A. Eison. Active Learning: Creating Excitement in the Classroom. 1991 ASHE-ERIC Higher Education Reports. ERIC Clearinghouse on Higher Education, The George Washington University, One Dupont Circle, Suite 630, Washington, DC 20036-1183, 1991.

2- Hakimzadeh, H., Adaikkalavan, R., Batzinger, R. 2011. Successful implementation of an active learning laboratory in computer science. Proceeding of the 39th ACM Annual Conference on SIGUCCS - SIGUCCS ’11, 83.

3-Jesse M. Heines Heines, M. J. 2015. Panel on flipped classrooms, SIGCSE 2015 Proceedings of the 46th ACM Technical Symposium on Computer Science Education, 174-175.

4-Lasserre, P. 2009. Introduction to Team-Based Learning. WCCCE '09: Proceedings of the 14th Western Canadian Conference on Computing Education, 77-78.