# Using Bayesian Networks in Adaptive Online Skill Training

We are faced with the need to assess students while they are learning programming skills. We can assign exercises to students and automate testing of results. But can we automate advice about what to do next? How to fix a problem? What to review before trying a new exercise? Or what to study next?

To construct online adaptive learning of programming, it would be useful to understand how student performance on a lab exercise can be used to assign subsequent instruction or exercises; this can cover

- correcting problems by offering a review of material,
- reinforcing marginal performance on skills by assigning similar exercises, or
- advancing to the best new topic if the skill is more than adequately demonstrate by the performance of the student.

Bayesian networks have been used to perform tasks such as analyzing diseases and symptoms. Think of an error in a programming exercise as a symptom and a missing skill as the disease. Efficient algorithms exist to perform inference and learning in Bayesian networks. This opens the possibility of collecting data from student performance on programming exercises along with an analysis of the cause for the error to build a Bayesian network that could be used in an adaptive online learning system. If we automate offering advice and measure its effectiveness, the data collected can adjust the Bayesian network to improve the performance of the advice.

The student should have a basic understanding of probability and programming, be adept in understanding mathematical models, be proficient in decomposing a problem into manageable pieces, and be comfortable working independently analyzing problems, doing research, and seeking solutions.

We will have a population of students leaning programming and attempting exercises to provide experimental data. The REU student will have to learn to collect, organize and manage this data. The REU student will not only learn about experimental data collection but also learn about powerful theories and tools used in AI, namely Bayesian models, Bayesian networks, probabilistic inference, and machine learning in Bayesian networks.