Li, Xingjun2021-08-122021-08-122021-08-122021-08-09http://hdl.handle.net/10012/17207Code search is an important and frequent activity for developers using computational notebooks (e.g., Jupyter). The flexibility of notebooks brings challenges for effective code search, where classic search interfaces for traditional software code may be limited. In this thesis, we propose, NBSearch, a novel system that supports semantic code search in notebook collections and interactive visual exploration of search results. NBSearch leverages advanced machine learning models to enable natural language search queries and intuitive visualizations to present complicated intra- and inter-notebook relationships in the returned results. We developed NBSearch through an iterative participatory design process with two experts from a large software company. We evaluated the models with a series of experiments and the whole system with a controlled user study. The results indicate the feasibility of our analytical pipeline and the effectiveness of NBSearch to support code search in large notebook collections. As one important aspect of the future directions, the search quality of NBSearch was further improved by incorporating the impact of markdowns in notebooks, and its performance was evaluated by comparing to the original implementation.enSemantic Search and Visual Exploration of Computational NotebooksMaster Thesis