My research group is actively recruiting participants for multiple studies! Those studies include different focuses on human aspects in software engineering and related fields. We firmly believe in the value of human aspects in software engineering and we aim to understand programmers' behaviors and cognitive processes to design better tools, management, and training strategies. Overall, we want to support our programming community :)
Your participation is greatly appreciated! We would love to share with you our research findings. We will also compensate your time and contribution. Our studies aim at a full range of progammers from new learners to programming to professional develoeprs.
For more information about our studies and recruitment contact, please visit our human study recruitment website: Human Study Recruitment for Huang Research Group.
My first name "Yu" can be confused as "You" sometimes. So people around me may also call me "HuangYu" together :)
My group's work focuses on software engineering and human factors, including user cognition, software infrastructure, sustainability for open source software, AI for software engineering, and computer science education. Broadly, we solve problems to understand and improve the effectiveness and efficiency of software engineering activities. Our work spans software, hardware, medical imaging, eye tracking, and mobile sensing, collaborating with researchers from Psychology and Neuroscience, and research labs in CS industry. We also work on social aspects in software engineering community.I received my PhD in Computer Science at University of Michigan in 2021. My advisor was Prof. Westley Weimer. I received my MS in Computer Engineering at University of Virginia in 2015 and my BS in Aerospace Engineering from Harbin Institute of Techonology in China in 2011.
Most of my research is interdisciplinary and involves many domains. I am particularly interested in improving the efficiency and effectiveness of computational activities. I like learning and using different techniques to solve impactful and interesting problems no matter it is within my nominal areas of expertise. My work has involved AI, program analysis, embedded systems, mixed-methods studies, medical imaging (fMRI, fNIRS), eye-tracking, cyber human systems, and software-hardware co-design.
My primary research interest is to understand how developers carry out computer science activities and thus help improve software engineering productivity and guide the use and development of supporting tools and environment. Previous studies have helped explore how programmers conduct computing activities, such as code comprehension and code review, but they rely on traditional survey instruments, which may not be reliable, rather than an understanding of fundamental cognitive processes. Advances in medical imaging and eye tracking have recently been applied to software engineering, supporting grounded neurobiological and visual explorations of computing activities. My research is among the first that leverages various objective measures to provide a systematic solution to understand user cognition in programming activities. I focus on understanding the role of spatial ability, fundamental processes and stereotypical associations in software engineering activities by combining medical imaging, such as fMRI and fNIRS, and eye tracking.
I believe that understanding the cognitive processes in software activities is exciting and essential for modern software engineering and education, because it allows us to adapt knowledge from other domains (e.g., Psychology, Biomedical Engineering) to design interventions to enhance the effectiveness in software engineering and computer science pedagogy. My research presents a systematic solution that (1) measures relevant factors objectively in computing tasks, (2) is based on rigorous cognitive (neurological and visual) evidence, (3) helps understand semantically-rich and industry-related software engineering activities (e.g, data structure manipulation, code writing and code review) and (4) provides guidance for actionable mitigations across different demographic groups. Along this line of research, I have worked on:
I strongly value replication of research. Medical imaging studies can be costly and I would like to share our de-identified data with researchers in the community. Our data includes all the medical imaging signals (fMRI and fNIRS), eye-tracking coordinates, stimuli design, experiment interface, training videos, IRB protocols, and survey data. You can find the data and contact infomation at our main project website:
I am working with Dr. Denae Ford and Dr. Thomas Zimmermann at Microsoft Research, Redmond, on investigating chracteristics and trajectories of Open Source Software (OSS) that aims at solving societal issues.
Open source software is not only for building technical tools to support the developers. Many open-source developers use their technical skills to benefit a common societal good. An example can be medical and resource platforms for tracking COVID-19. However, this special community has been in demand but overlooked. We bring in the notion of Open Source for Social Good (OSS4SG) and present the first study to investigate the basic characterizations of this community. After conducting interviews and surveys with over 500 OSS developers and 1000 projects, we find that OSS4SG covers a very wide range of social topics, it is also distinct from traditional "technical good" OSS on many aspects, including contributors' motivations, factors to consider for project selction and evaluation, and current challenges. We also present implications for researchers, sponsors, and the OSS community to better support OSS4SG.
Ths work is featured in the GitHub Octoverse Report 2020. Currenlty, according to this work, GitHub Social Impact Sector and the Digital Public Goods Alliance are working on the nomination, identification, and verification on open source projects that aim for social good. Want to lend a hand? Contribute here: Community Sourcing Digital Public Goods
Autonomous vehicle systems (AVS), such as quadcopters, are facing the software engineering challenge of providing failure transparency, or the extent to which failures are invisible to users and applications. The failures can be caused by software bugs, environmental changes, and security attacks. Failure transparency is especially imporant for AVS. For example, if some security attack happens when a quadcopter is flying during a mission, how can we repair the system vulnerability and apply the repair immediately while keeping the quadcopter remain its status and resume the mission later? Furthermore, when mission resumes, how can the quadcopter system continue the mission instead of starting the mission from the beginning (i.e., fly to the home base first)?
To provide such failure transparency for AVS, I designed a type-guided selective checkpointing and restoration algorithm that allows system updates on the fly , maintains critical mission states, minimize space and time overhead compared to failure-free execution, and thus the applications can resume after failures without carrying over tainted data.
This work is under the umbrella project supported by the Air Force Research Laboratory to increase system resiliency for autonomous vehicles.
Research in Psychology has shown that mental health problems (e.g., social anxiety or depression) are highly associated with impairment in academic functioning and relationships. Such mental health disorders also see a continuous increase in silicon valley. However, only a small portion of people suffereing from mental health problems seek for help. The goal of this work is to provide a non-invasive solution to monitor humans' mental health and help with real-time intervention delivery.
My work leverages the ubiquity of smartphones to measure and monitor the mental well-being of end users via a specially-designed mobile application: Sensus. I use sensing data from modern smartphones (e.g., GPS, accelerometers, text messages, phone calls) and build a framework for integrating and analyzing users’ mobility patterns, micro-behaviors and communication patterns based on linear dynamic systems (LDS). This approach also considers the social context of users' behaviors. This line of research is done in the colaboration with Dr. Laura Barnes and psychologists at the University of Virginia.
Sensus is availale in both Apple App store and Google Playstore:
Before my PhD on software engineering, I worked with Prof. Benton Calhoun at the Univeristy of Virginia on low power VLSI design. I have taped out low power FPGA and level converter chips using IBM130. This series of research inlcudes new CLBs, interconnections and the dynamic voltage scaling mechanism for low power FPGA dsign, as well as an ultra low level converter design that can be applied to energy harvesting systems.
Our lab welcomes undergraduate students, graduate students, postdocs, visiting scholars, and anyone that is excited about software engineering and relevant interdisciplinary research. Everyone in my lab conducts amazing work and I am very honored to work with them :)
I would love to meet with students to discuss their research interests and career plans. Unfortunately, faculty's schedule is not always open (in fact, most of the time we are busy with who knows what is going on). So please check my calendar below for potential meeting slots: I really prefer putting such meetings on Monday, Tuesday and Thursday so that I can focus on other work on Wednesday and Friday. Please only consider Wednesday/Friday if that is your only choice.
My calendar can be viewed here.
If you want to meet with me, please find one or multiple open slots that work for you on my calendar and email me the slots, meeting purposes and whether it is in person or zoom. If I didn't reply your email within a week, please feel free to send another email to remind me.
For undergraduate and master students who are interested in research, you are very welcome to schedule a meeting with me. Please send me your CV when you schedule the meeting with me.
For potential PhD students, please send me an email first with your CV and research interests. Then over emails we will talk about next steps (i.e., if we should schedule a meeting).
Please read the FAQ below first before contacting me.
Yes. You can register CS2860, CS3860 and CS3861 for research credits. You can also use undergraduate research to fill your Immersion requirement.
No. The system requires my approval anyway. But more importantly, I only take undergraduate researchers that are motivated and willing to commit to our project plans: to evaluate if it is a good fit, you need to schedule a meeting with me first.
In theory, it is never too late/early to try research as long as you are interested. In practice, I suggest students to consider it after (or at least when you have started) taking CS2201 Data Structures. Also, I suggest you consider it no later than the begining of the second semester of your junior year especially if you want to apply for graduate school.
No. You don't have to do research to get that type of job. But yes, the experience you gained from your research project can speak for your capabilities. But I personally don't think undergrad research is more appealing to recruiters than getting an industry internship in this context.
Our lab is open to remote collaboration. Please email me first about your interest.
In general, it depends on my grant situation. But it is case by case. So please email me first.
My students usually call me "Dr. Huang" or "Prof. Huang". This is not because I care about the title that much, but more about "this person's first name (Yu sounds like You) is a disaster in conversation". In general, you can call me "Yu, HuangYu, Dr. Huang, Prof. Huang" or whatever as long as I can tell you are trying to talk to me.
For my undergraduate advisees (i.e., I am assigned as your academic advisor), I usually schedule meetings with all of you (as needed) at the beginning of every semester. Please try your best to make those meetings if you want to discuss your course plans. If you cannot make that meeting or have other questions during the semester, please feel free to email me and/or schedule a meeting as needed.
I collected some FAQs for my undergrad advisees. Please read them below first when you have a question (because you can probably find an answer really fast):
Here you can find all the documents and resources for CS: Course Requirement.
Here you can find most of information for undegrad advising: Engineering Academic Advising.
This is a good starting point: Study Abroad.
All the forms are listed here: Forms for Students.
Sadly I don't have any permission to edit anything in YES associated with your audit. For such requests, you will need to contact the Engineeging OAS via email: engineering-oas at vanderbilt.edu.
Sadly I don't have any permission to add a studnet to a full class. If you really need this course (e.g., "I really need to take this course this semester, otherwise I won't be able to graduate on time."), please email the instructor and me about your situation.