Working with Curie

I am a Ph.D. candidate at the University of Washington Information School, advised by Prof. Amy J. Ko in the Code & Cognition Lab. My research interest is in developing mixed-initiative interactions to enable more equitable intelligent learning technologies.

My vision is to computationally model how people learn programming to develop personalized online learning experiences where the learner is in control.  I want people to see themselves not as quantified objects, but as qualified and qualifying selves.

Along with pursuing my PhD, I was also the Director of the Learning Co-op for the non-profit Seattle Data for Good and an instructor for an introductory course on data science to undergraduates (INFO 370). Prior to attending UW, I was a student at MIT advised by Hal Abelson, researching how developing apps with MIT App Inventor relates to learning computational thinking skills.

I am a National Science Foundation (NSF) Graduate Research Fellow and was previously an MIT EECS-Google Research and Innovation Scholar.

For more information, please contact me! Or have a look at my publications and CV.

Research Interests

  • human-computer interaction
  • interactive intelligent tools
  • computing education
  • artificial intelligence in education


  • Ph.D. 2016-2021 (expected)

    Information Science

    University of Washington

  • M.Eng. 2015-2016

    Electrical Engineering & Computer Science

    Massachusetts Institute of Technology

  • S.B. 2011-2015

    Computer Science & Engineering

    Massachusetts Institute of Technology

News & Updates

Active Projects

  • Developing a mixed-initiative tutor for CS1 (6/2017-)

    Developing a mixed-initiative tutor for CS1 (6/2017-)

    Supporting novice programmers by developing a transparent and interpretable intelligent tutor

    This work contributes to the long-term vision of supporting introductory computer science courses by providing individualized tutoring at scale.

    The rapid surge in enrollment for introductory CS courses has led to challenges in providing personal feedback to learners. We are developing a mixed-initiative tutor to teach program semantics and design patterns. This tutor will be able to negotiate initiative/authority with the student, provide relevant feedback to support learning, and show the learner their progress in an interpretable way.

    This work is in collaboration with Professor Min Li (UW College of Education) and is supported by an NSF Cyberlearning Grant.

  • Improving CS assessments (5/2017-)

    Improving CS assessments (5/2017-)

    Supporting CS educators and test designers as they improve assessments by analyzing response data

    This work contributes to the long-term vision of making more valid and reliable interpretation of CS test scores.

    In our current day and age, test scores matter. We interpret test scores to determine grades and advanced placement. But perhaps more importantly, learners’ interpretation of test scores can affect their sense of mastery and identity. So, it is important to ensure our interpretation of test scores are “good,” that they accurately reflect measuring the knowledge they’re designed to measure for a target group of test-takers. By doing so, we can ensure test score interpretations are meaningful and improve upon our tests for future use.

    Thus far, I have used Item Response Theory to evaluate ~500 learners’ response data of the SCS1 assessment, identifying potentially problematic questions and proposing solutions (SIGCSE 2019). I wrote an accompanied blog post which describes our 3 step psychometric evaluation process (Medium blog post).

    My future work involves understanding educators’ motivations, processes, and barriers for improving assessments and building frameworks and tools to support them.

  • Explicit Instruction of Introductory Programming Skills (3/2017-)

    Explicit Instruction of Introductory Programming Skills (3/2017-)

    Improving introductory programming education with explicit instruction to support learning specific skills.

    This work contributes to the long-term vision of understanding and improving the process in which novices comprehend code.

    Introductory computer science courses often focus on teaching the syntax and semantics of programming, but often fall short of teaching students how to apply this knowledge. I believe that explicitly teaching novice programmers strategies that reflect how computers execute code and how they can use code to problem solve can result in better learning outcomes.

    Thus far, I have found that explicitly teaching a strategy which involves tracing line-by-line and explicitly writing out variable values can improve students’ tracing ability (SIGCSE 2018). I have developed a theory of instruction for introductory programming skills and found that learning materials based on this theory can be more effective (CSE 2019).

  • Teaching data science as a decision-making process (5/2017-)

    Teaching data science as a decision-making process (5/2017-)

    I frame data science as a thinking process which uses data to make/inform decisions

    The long-term vision of this work is to develop data science pedagogy such that it is focuses on a thinking process rather than tools which will become out-dated.

    We define data science as an iterative process of augmenting human thinking with computational tools to use data to make decisions in/about the world. We emphasize that data science happens within a decision and social context. By doing this, we believe we can help train people to think about data science as a very human endeavor.

    Course Homepage (INFO 370)

    Working with Greg Nelson (UW CSE PhD Student).