Modeling Learners' Programming Skills and Question Levels Through Machine Learning