5 research outputs found
Recommended from our members
Evaluation of collaborative filtering and content based filtering recommenders in jTutors (an online intelligent tutoring system)
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
Recommended from our members
Using Intelligent Tutors to Teach Students How APIs are Used for Software Engineering in Practice
Computer science courses typically incorporate integrated training in software engineering, which includes learning how to reuse existing code libraries in new programs. This commonly presents a need to use the libraries’ application programming interfaces (APIs) during project-based learning activities. The students learn these APIs with little support from the instructor. Instead, they primarily learn from whatever code examples they find on the web—a scattershot approach that is slow, frustrating and sometimes fruitless. Preliminary work investigated an improved approach that provides students with intelligent API tutors. This interactive educational content walks students through code examples selectively harvested from the web. This approach increased students’ knowledge of API method names, but a key pedagogical challenge remained: students still lacked an understanding of common problems and surprises that they might encounter when using APIs in practice. Perhaps even more crucially, the prior statistical study provided no information about how students would perceive and accept the intelligent tutor approach, when given a choice. Therefore, the current paper presents an enhanced approach that augments intelligent tutors with selected information from online FAQs and online open source code, thereby providing more explanation and context about how to use APIs in practice. A qualitative study assessed student perceptions of the system’s usability as well as suggestions for improvement, revealing that 100% of students considered the approach to be useful. A key implication is that providing information from online FAQs, related articles, and open source code could facilitate computer science students’ learning how to use APIs.This is an author's peer-reviewed final manuscript, as accepted by the publisher. The published article is copyrighted by IEEE-Institute of Electrical and Electronics Engineers and can be found at: http://ieeexplore.ieee.org/xpl/RecentIssue.jsp?punumber=13. ©2013 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other users, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works for resale or redistribution to servers or lists, or reuse of any copyrighted components of this work in other works.Keywords: Application programming interface, Software libraries, Software engineering, Computer science education, Electronic learnin
Método para la evaluación de usabilidad de sitios web transaccionales basado en el proceso de inspección heurÃstica
La usabilidad es considerada uno de los factores más importantes en el desarrollo de productos
de software. Este atributo de calidad está referido al grado en que, usuarios especÃficos de un
determinado aplicativo, pueden fácilmente hacer uso del software para lograr su propósito. Dada
la importancia de este aspecto en el éxito de las aplicaciones informáticas, múltiples métodos de
evaluación han surgido como instrumentos de medición que permiten determinar si la propuesta
de diseño de la interfaz de un sistema de software es entendible, fácil de usar, atractiva y agradable
al usuario. El método de evaluación heurÃstica es uno de los métodos más utilizados en el área de
Interacción Humano-Computador (HCI) para este propósito debido al bajo costo de su ejecución
en comparación otras técnicas existentes. Sin embargo, a pesar de su amplio uso extensivo durante
los últimos años, no existe un procedimiento formal para llevar a cabo este proceso de evaluación.
Jakob Nielsen, el autor de esta técnica de inspección, ofrece únicamente lineamientos generales
que, según la investigación realizada, tienden a ser interpretados de diferentes maneras por los
especialistas. Por tal motivo, se ha desarrollado el presente proyecto de investigación que tiene
como objetivo establecer un proceso sistemático, estructurado, organizado y formal para llevar a
cabo evaluaciones heurÃsticas a productos de software. En base a un análisis exhaustivo realizado
a aquellos estudios que reportan en la literatura el uso del método de evaluación heurÃstica como
parte del proceso de desarrollo de software, se ha formulado un nuevo método de evaluación
basado en cinco fases: (1) planificación, (2) entrenamiento, (3) evaluación, (4) discusión y (5)
reporte. Cada una de las fases propuestas que componen el protocolo de inspección contiene un
conjunto de actividades bien definidas a ser realizadas por el equipo de evaluación como parte
del proceso de inspección. Asimismo, se han establecido ciertos roles que deberán desempeñar
los integrantes del equipo de inspectores para asegurar la calidad de los resultados y un apropiado
desarrollo de la evaluación heurÃstica. La nueva propuesta ha sido validada en dos escenarios
académicos distintos (en Colombia, en una universidad pública, y en Perú, en dos universidades
tanto en una pública como en una privada) demostrando en todos casos que es posible identificar
más problemas de usabilidad altamente severos y crÃticos cuando un proceso estructurado de
inspección es adoptado por los evaluadores. Otro aspecto favorable que muestran los resultados
es que los evaluadores tienden a cometer menos errores de asociación (entre heurÃstica que es
incumplida y problemas de usabilidad identificados) y que la propuesta es percibida como fácil
de usar y útil. Al validarse la nueva propuesta desarrollada por el autor de este estudio se consolida
un nuevo conocimiento que aporta al bagaje cultural de la ciencia.Tesi