WatChat: Explaining perplexing programs by debugging mental models