An intelligent tutor for teaching software design patterns



How to teach students to design in the classroom? When is experience crucial to do design? In particular, how to teach design patterns to students who are beginning to know the importance of a good design? Experience is essential to understand and apply patterns in an effective way. Generally, novice users are not good at working in real experiences while they are good at learning new techniques and methods for designing. In this work, we show the results of teaching patterns using an artificial intelligent assistant that helps novice developers during the design process. Our assistant is an interface agent that observes novice users working, and when it detects that a design pattern can be applied, it makes a suggestion justifying its opinion. Thus, students understand when and where a pattern could be applied.© 2011 Wiley Periodicals, Inc. Comput Appl Eng Educ 22:583–592, 2014; View this article online at; DOI 10.1002/cae.20582