Computational Methodologies for Understanding, Automating, and Evaluating User Interfaces