A05: Student advisor

This assignment helps you practice designing and using an expert system. Your task is to write rules for the Drools rules engine for a student advisor expert system. A student advisor system would guide students on class selection based on their major (and corresponding major requirements), the classes they have already taken and their grade, and their interests. For this assignment, we’ll restrict our focus to CSCI majors, the system will only need to suggest classes for the next semester, and we’ll ignore non-major classes and general education requirements.

Template projects

These templates include all the Drools libraries (JAR files), plus example Java code and a DRL rules file.

Knowledge base


Every fact has a type, i.e., a class. (You can create types in your DRL file using declare MyType, but these cannot be referenced in your main Java code.) Ultimately, you’ll probably want at least these types:


Refer to the Stetson Catalog for the requirements for a CSCI degree.


Your advising system should ask the user for some basic facts (which courses they’ve taken, what grades they earned, etc.); it should make some inferences about preferences; and it should give a selection of courses the student should take in the next semester based on this information.


Submit all your source code and DRL files.

Grading rubric

Out of 5 points:

CSCI 431 material by Joshua Eckroth is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. Source code for this website available at GitHub.