  Programming tutorials are often created to demonstrate programming tasks with
code examples. However, our study of Stack Overflow questions reveals the low
utilization of high-quality programming tutorials, which is caused task
description mismatch and code information overload. Document search can find
relevant tutorial documents, but they often cannot find specific programming
actions and code solutions relevant to the developers' task needs. The recently
proposed activity-centric search over knowledge graph supports direct search of
programming actions, but it has limitations in action coverage, natural
language based task search, and coarse-grained code example recommendation. In
this work, we enhance action coverage in knowledge graph with actions extracted
from comments in code examples and more forms of activity sentences. To
overcome the task description mismatch problem, we develop a code matching
based task search method to find relevant programming actions and code examples
to the code under development. We integrate our knowledge graph and task search
method in the IDE, and develop an observe-push based tool to prompt developers
with task-oriented API usage examples. To alleviate the code information
overload problem, our tool highlights programming action and API information in
the prompted tutorial task excerpts and code examples based on the underlying
knowledge graph. Our evaluation confirms the high quality of the constructed
knowledge graph, and show that our code matching based task search can
recommend effective code solutions to programming issues asked on Stack
Overflow. A small-scale user study demonstrates that our tool is useful for
assisting developers in finding and using relevant programming tutorials in
their programming tasks.
