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 wileyonlinelibrary.com/journal/cae; DOI 10.1002/cae.20582

[1]  Finn V. Jensen,et al.  Bayesian Networks and Decision Graphs , 2001, Statistics for Engineering and Information Science.

[2]  G. Boulton‐Lewis Teaching for quality learning at university , 2008 .

[3]  Diane J. Litman,et al.  Responding to Student Uncertainty During Computer Tutoring: An Experimental Evaluation , 2008, Intelligent Tutoring Systems.

[4]  Martha W. Evens,et al.  CIRCSIM-Tutor: An Intelligent Tutoring System Using Natural Language Dialogue , 1997, ANLP.

[5]  Pattie Maes,et al.  Agents that reduce work and information overload , 1994, CACM.

[6]  Antonija Mitrovic,et al.  KERMIT: A Constraint-Based Tutor for Database Modeling , 2002, Intelligent Tutoring Systems.

[7]  Sylvia Stuurman,et al.  Experiences with teaching design patterns , 2004, ITiCSE '04.

[8]  Shane Sendall Gauging the Quality of Examples for Teaching Design Patterns , 2002, OOPSLA 2002.

[9]  Chuin-Shan Chen,et al.  A prelab tutoring system for Strength of Materials experiment , 2004, Comput. Appl. Eng. Educ..

[10]  Manuel Contero,et al.  Educational software for teaching drawing‐based conceptual design skills , 2004, Comput. Appl. Eng. Educ..

[11]  Analía Amandi,et al.  eTeacher: Providing personalized assistance to e-learning students , 2008, Comput. Educ..

[12]  Steven J. Plimpton,et al.  Massively parallel methods for engineering and science problems , 1994, CACM.

[13]  Ian Warren Teaching Patterns and Software Design , 2005, ACE.

[14]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[15]  Antonija Mitrovic,et al.  An Intelligent SQL Tutor on the Web , 2003, Int. J. Artif. Intell. Educ..

[16]  Trude Heift,et al.  Web Delivery of Adaptive and Interactive Language Tutoring: Revisited , 2016, International Journal of Artificial Intelligence in Education.

[17]  Fu-Shing Sun,et al.  Teaching Design Patterns Through Computer Game Development , 2008, JERC.

[18]  Brandon Goldfedder,et al.  A training experience with patterns , 1996, CACM.