Using Intelligent Tutors to Teach Students How APIs are Used for Software Engineering in Practice

Public Deposited

Downloadable Content

Download PDF


Attribute NameValues
  • 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: ©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 learning
Resource Type
Date Available
Date Issued
  • Krishnamoorthy, V., Appasamy, B., & Scaffidi, C. (2013). Using intelligent tutors to teach students how APIs are used for software engineering in practice. IEEE Transactions on Education, 56(3), 355-363. doi:10.1109/TE.2013.2238543
Journal Title
Journal Volume
  • 56
Journal Issue/Number
  • 3
Rights Statement
Peer Reviewed



This work has no parents.