Graduate Thesis Or Dissertation
 

Evaluation of collaborative filtering and content based filtering recommenders in jTutors (an online intelligent tutoring system)

Public Deposited

Downloadable Content

Download PDF
https://ir.library.oregonstate.edu/concern/graduate_thesis_or_dissertations/76537487g

Descriptions

Attribute NameValues
Creator
Abstract
  • Software engineers often need help with discovering and learning how to use APIs. For example, software engineers who are starting to learn Java, and they want to implement a certain feature in a program, they might want to reuse existing APIs in order to save time versus rewriting it themselves from scratch. The most widely-used method for discovering APIs is to search for APIs. Unfortunately, the search results typically take users to a collection of code, documentation, and examples, none of which is collected together in a form that is optimized for making a given API understandable. In our research group's previous work, we created the jTutors system, which bundles the materials related to an API together into an interactive tutor that has been shown to help people learn an API faster. Yet jTutors has not had a facility to help programmers learn a sequence of tutors, for the common situation where software engineers want to learn a combination of APIs. This thesis describes a new system that provides tutor recommendations to discover APIs in a sequence that users consider to be relevant and well-timed to their needs. The system integrates two internal algorithms to determine, for a given user at a given moment in time, what API tutors to recommend for that user's consideration. One of the algorithms is a content-based recommender (CBR), which builds a graph reflecting the relationships between APIs (as reflected in how they call or refer to one another) to determine the most commonly used APIs with respect to a given API and also the order in which it makes sense to learn the APIs. The other algorithm is a standard collaborative filtering (CF) algorithm, which identifies which users tend to give similar ratings as one another, and then uses the ratings of one person to recommend a sequence of tutors for other people. In an empirical study, 25 novice programmers used the system, learned from recommended tutors, and gave ratings to the tutors. The study tracked which of the internal algorithms gave each recommendation, so that we could determine which algorithm tended to give tutors that got higher ratings. The study showed that ratings of CBR-based recommendations were significantly higher than ratings of CF-based recommendations. Further analysis of study data suggested that the reason for this difference is that CBR's recommendations were more relevant and provided at points in time when the study participants felt more ready to learn a given API. These results are important because they show how to more effectively teach a sequence of APIs.
License
Resource Type
Date Available
Date Issued
Degree Level
Degree Name
Degree Field
Degree Grantor
Commencement Year
Advisor
Committee Member
Academic Affiliation
Non-Academic Affiliation
Subject
Rights Statement
Publisher
Peer Reviewed
Language
Replaces

Relationships

Parents:

This work has no parents.

In Collection:

Items