Research

This page provides possible research topics (for BS, MS, or PhD level). Students interested in working with me might be able to think possible solutions to one of these problems. English skills is required for any of them (reading at least).

  1. Understanding software licenses usage in open-source software?
    Questions: How often open-source software do not declare a license? How common are dual-license software? Why developers use two+ licenses?
    Skills: script programming (e.g., Python, Lua, Ruby, etc)

  2. Understanding Students Behavior in Open-Source Communities
    Questions: What kind of contributors are made by students? Are they working for some classroom projects? summer job? hackathons?
    Skills: script programming (e.g., Python, Lua, Ruby, etc)

  3. Personality traits of casual contributors
    Questions: Are casual contributors casual in many/few/other projects? Where are they based/from? Skills: script programming (e.g., Python, Lua, Ruby, etc)
    Related work:

  4. Energy consumption of data-oriented software
    Questions: How can we decrease energy consumption without hurting performance? Skills: system programming (e.g., Go, Java, C, etc)

  5. A virtual assistant to guide energy-aware programmers
    Questions: How can a tool help programmers to create energy-aware software? Skills: Java programming

  6. What practitioners say about software engineering research?
    Questions: What are the practitioners’ perception about SE research? Skills: script programming (e.g., Python, Lua, Ruby, etc)

  7. What are company’s motivations behind the transition from proprietary to open-source software?
    Skills: English communication

  8. Automatic test generation for partial programs
    Question: How can we test partial program?
    Skills: system programming (e.g., Go, Java, C, etc)

  9. An educational online environment to teach concurrent programing
    Question: Can online environment improve concurrent programming learning?
    Skill: JavaScript and Java programming

  10. Understanding DevOps culture
    Questions: what are the DevOps’ practices? how these practices impact agile development?
    Skills: English communication

  11. A large scale study on data races
    Question: investigating the evolution of data races on complicated benchmarks over a larger variety of programs.
    Skills: system programming (e.g., Go, Java, C, etc)

  12. An energy-aware adaptative system.
    Skills: system programming (e.g., Java, Scala)

  13. Issues Smells
    Skills: script programming (e.g., Python, Lua, Ruby, etc)