org.activemath.studentmodel2.simulation
Class StudentSimulator

java.lang.Object
  extended by org.activemath.studentmodel2.simulation.StudentSimulator
Direct Known Subclasses:
EvalSimulator

public class StudentSimulator
extends Object


Field Summary
protected  List concepts
          A list of concepts that will be taken into account for the simulation
protected  int evidenceCnt
          Number of evidences to be created for each concept
protected  List exercises
          List of exercises generated (for later rerun)
protected static Logger log
          Logger service
protected  Map masteryEstimates
          A Map of estimated Masteries for the assessed concepts
key: userId value: -> Map with: key: ConceptId
value: Integer[] - containing the masteries after k-th evidence
protected  boolean rerun
          Is this a rerun of an existing simulation?
protected  String simBaseDir
          Base directory for simulation data
protected  String simulationId
          The name of a simulation setup/configuration for easy replay and later reference
protected  int simuleeCnt
          Number of students to be simulated
protected  Map simulees
          The map of simulated Students key: studentName value: the simulee objects
protected  boolean useXLMStyleDifficulty
           
 
Constructor Summary
StudentSimulator()
           
 
Method Summary
 SimulationReport createReport()
          Create a Report using the results of the current simulation - the report calculates metrics for assessing the results of the simulation, like average errors and standard deviation etc.
 List getConcepts()
           
 int getEvidenceCnt()
           
 List getExercises()
           
 String getSimBaseDir()
           
 String getSimulationId()
           
 int getSimuleeCnt()
           
 Map getSimulees()
           
 void init(String simulationId)
          Initialize a new simulation
 boolean isAdaptiveDifficulty()
           
 boolean isRerun()
           
 boolean isUseContentDifficulties()
           
 boolean isUseXLMStyleDifficulty()
           
 void runSimulation()
          Actually start the simulation, i.e. generate ExerciseSimulationEvents for all concepts applicable with the proper responses of the simulees.
 void setAdaptiveDifficulty(boolean adaptiveDifficulty)
           
 void setConcepts(List concepts)
           
 void setEvidenceCnt(int evidenceCnt)
           
 void setExercises(List evidences)
           
 void setRerun(boolean rerun)
           
 void setSimBaseDir(String simBaseDir)
           
 void setSimulationId(String simulationId)
           
 void setSimuleeCnt(int simuleeCnt)
           
 void setSimulees(Map simulees)
           
 void setUseContentDifficulties(boolean useContentDifficulties)
           
 void setUseXLMStyleDifficulty(boolean useXLMStyleDifficulty)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

log

protected static Logger log
Logger service


useXLMStyleDifficulty

protected boolean useXLMStyleDifficulty

simBaseDir

protected String simBaseDir
Base directory for simulation data


simulationId

protected String simulationId
The name of a simulation setup/configuration for easy replay and later reference


rerun

protected boolean rerun
Is this a rerun of an existing simulation?


simuleeCnt

protected int simuleeCnt
Number of students to be simulated


evidenceCnt

protected int evidenceCnt
Number of evidences to be created for each concept


simulees

protected Map simulees
The map of simulated Students key: studentName value: the simulee objects


concepts

protected List concepts
A list of concepts that will be taken into account for the simulation


exercises

protected List exercises
List of exercises generated (for later rerun)


masteryEstimates

protected Map masteryEstimates
A Map of estimated Masteries for the assessed concepts
key: userId value: -> Map with: key: ConceptId
value: Integer[] - containing the masteries after k-th evidence

Constructor Detail

StudentSimulator

public StudentSimulator()
Method Detail

init

public void init(String simulationId)
Initialize a new simulation


runSimulation

public void runSimulation()
Actually start the simulation, i.e. generate ExerciseSimulationEvents for all concepts applicable with the proper responses of the simulees. The achievements are generated using IRT (item response theory) probabilities. Generate the Evidences for each simulee and refeed them into the system. The selection of a new exercise is based on the system assessed (LM) estimation of the mastery, such that a hopefully quick convergence of the mastery estimate towards the real mastery will be achieved.
Steps:
  1. Get an exercise that is a bit more tempting as the current mastery would suggest, if initially no mastery estimation exists, choose one that is not too hard - difficulty in [0,0.25], i.e. CompetencyLevel I
  2. Create a ExerciseSimulationEvent with an achievement value based on the given Mastery of the simulee (which is a priori known)
  3. Dispatch the event to the system
  4. Give the system some time to calculate the new mastery and loop over this list until a defined number of evidences has been created (default is 10)
This procedure will be run for all concepts and simulees.


createReport

public SimulationReport createReport()
Create a Report using the results of the current simulation - the report calculates metrics for assessing the results of the simulation, like average errors and standard deviation etc.


getSimuleeCnt

public int getSimuleeCnt()
Returns:
the simuleeCnt

setSimuleeCnt

public void setSimuleeCnt(int simuleeCnt)
Parameters:
simuleeCnt - the simuleeCnt to set

getSimulees

public Map getSimulees()
Returns:
the simulees

setSimulees

public void setSimulees(Map simulees)
Parameters:
simulees - the simulees to set

getSimulationId

public String getSimulationId()
Returns:
the simulationId

setSimulationId

public void setSimulationId(String simulationId)
Parameters:
simulationId - the simulationId to set

getConcepts

public List getConcepts()
Returns:
the concepts

setConcepts

public void setConcepts(List concepts)
Parameters:
concepts - the concepts to set

getEvidenceCnt

public int getEvidenceCnt()
Returns:
the evidenceCnt

setEvidenceCnt

public void setEvidenceCnt(int evidenceCnt)
Parameters:
evidenceCnt - the evidenceCnt to set

getExercises

public List getExercises()
Returns:
the evidences

setExercises

public void setExercises(List evidences)
Parameters:
evidences - the evidences to set

isRerun

public boolean isRerun()
Returns:
the rerun

setRerun

public void setRerun(boolean rerun)
Parameters:
rerun - the rerun to set

getSimBaseDir

public String getSimBaseDir()
Returns:
the simBaseDir

setSimBaseDir

public void setSimBaseDir(String simBaseDir)
Parameters:
simBaseDir - the simBaseDir to set

isUseXLMStyleDifficulty

public boolean isUseXLMStyleDifficulty()
Returns:
the useXLMStyleDifficulty

setUseXLMStyleDifficulty

public void setUseXLMStyleDifficulty(boolean useXLMStyleDifficulty)
Parameters:
useXLMStyleDifficulty - the useXLMStyleDifficulty to set

isAdaptiveDifficulty

public boolean isAdaptiveDifficulty()
Returns:
the adaptiveDifficulty

setAdaptiveDifficulty

public void setAdaptiveDifficulty(boolean adaptiveDifficulty)
Parameters:
adaptiveDifficulty - the adaptiveDifficulty to set

isUseContentDifficulties

public boolean isUseContentDifficulties()
Returns:
the useContentDifficulties

setUseContentDifficulties

public void setUseContentDifficulties(boolean useContentDifficulties)
Parameters:
useContentDifficulties - the useContentDifficulties to set