Record Details
Field | Value |
---|---|
Title | Evaluation of collaborative filtering and content based filtering recommenders in jTutors (an online intelligent tutoring system) |
Names |
Appasamy, Bharatwaj
(creator) Scaffidi, Christopher P. (advisor) |
Date Issued | 2014-03-14 (iso8601) |
Note | Graduation date: 2014 |
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. |
Genre | Thesis/Dissertation |
Access Condition | http://creativecommons.org/licenses/by-nc/3.0/us/ |
Topic | Recommender Systems |
Identifier | http://hdl.handle.net/1957/46855 |