ChiQat: An intelligent tutoring system for learning computer science
Authors: Fossati Davide 
Published: November 2013

Foundational topics in Computer Science (CS), such as data structures and algorithmic strategies, pose particular challenges to learners and teachers. The difficulty of learning these basic concepts often discourages students from further study, and leads them to lower success. In any discipline, students' interaction with skilled tutors is one of the most effective strategies to address the problem of weak learning. However, human tutors are not always available. Technology can compensate here: Intelligent Tutoring Systems (ITSs) are systems designed to simulate the teaching of human tutors. ITSs use artificial intelligence techniques to guide learners through problem solving exercises using pedagogical strategies similar to those employed by human tutors. ChiQat-Tutor, a novel ITS that we are currently developing, aims at facilitating learning of basic CS data structures (e.g., linked lists, trees, stacks) and algorithmic strategies (e.g., recursion). The system will use a number of effective pedagogical strategies in CS education, including positive and negative feedback, learning from worked-out examples, and learning from analogies. ChiQat will support linked lists, trees, stacks, and recursion. The ChiQat linked list module builds on iList, our previous ITS that provenly helps students learn linked lists. This module provides learners with a simulated environment where linked lists can be seen, constructed, and manipulated. Lists are represented graphically and can be manipulated interactively using programming commands (C++ or Java). The system can currently follow the solution strategy of a student, and provides personalized positive and negative feedback. Our next step is to add support for worked-out examples. The recursion module provides learners with an animated and interactive environment, where they can trace recursion calls of a given recursive problem. This is one of the most challenging tasks students face when learning the concept of recursion. In the near future, students will be aided in breaking down recursive problems into their basic blocks (base case and recursive case) through interactive dialogues. ChiQat employs a flexible, fault-tolerant, distributed plug-in architecture, where each plug-in fulfills a particular role. This configuration allows different system types to be defined, such as all-in-one applications or distributed ones. The system is composed of separate front and back ends. The back-end will house the main logic for heavy computational tasks such as problem knowledge representation and tutor feedback generation. The front-end (user interface) collects users input and sends it to the back-end, while displaying the current state of the problem. Due to this flexible architecture, it will be possible to run the system in two modes; online and offline. Offline mode will run all client and server components on the same machine, allowing the user to use the system in a closed environment. The online mode will allow running the back-end on a server as a web service which can communicate with a front-end running on the client machine. This allows wider and greater reachability for users using lower powered connected devices such as mobile devices, as well as traditional laptops and desktop computers which are connected to the Internet.