Try   HackMD

Exploration of AI tools for research software

GenAI4RS Workshop

Carlos, Halford and Fardad, RDS Team, TU Delft University Library

June 4, 2024

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

1. Workshop description

This workshop will explore the usage of generative AI in research, including code assistance, integration into research software development, and the exchange of experiences and best practices. The agenda covers essential topics: introducing LLMs, examining the impact of code assistants on research software development, and exploring responsible use and legal implications of generative AI tools like GitHub Copilot, concluding with a practical session using GitHub Copilot for software documentation.

Google slides


2. Agenda & Objetives

Duration: 50 min

Episode Topic
1 What is AI?
2 What is RSE and challenges?
3 How to use AI & RSE together?
4 Demo: Get started with Github copilot
5 Conclusion

Key Learning Objectives:

Understand how well the GenAI can aid automate the RSE process


Mentimeter:

https://www.menti.com/alxy1r19nrye

Image Not Showing Possible Reasons
  • The image was uploaded to a note which you don't have access to
  • The note which the image was originally uploaded to has been deleted
Learn More →


3. Collaborative notes

Attendees: (feel free to write your name here & affilation & email)


Episode 1: What is AI?

QUESTIONS: I did have a question about the latest ChatGPT 4o. It seems that it is able to search the website real-time, but do i understand correctly the training dataset is still limited? (e.g. up till 2022)


Episode 2: What is RSE and why AI & RSE together?

QUESTIONS:

Mentimeter

Mentimeter: Do you currently use AI tools in your RSE development process?

  • Yes
  • No, but plan to soon
  • No, and I don't plan to

Episode 3: How to use AI & RSE?

QUESTIONS:

Mentimeter

Mentimeter: Which AI-powered developer tools did you use regularly over the past year, and which do you want to work with over the next year? Select all that apply?

  • GitHub Copilot
  • Tabnine
  • AWS CodeWhisperer
  • Synk Code
  • Codeium
  • Whispr AI
  • Replit Ghostwriter
  • Mintlify
  • Adrenaline
  • Rubber
  • Duck.AI
Mentimeter

Mentimeter: For the AI tools you use as part of your RSE development process, what are the MOST important benefits you are hoping to achieve? Please check all that apply.

  1. Increase productivity
  2. Speed up learning
  3. Greater efficiency
  4. Improve collaboration
Mentimeter

Mentimeter: Which parts of your development RSE workflow will benefit from GenAI tools? Please select all that apply.

  • Writing code
  • Debugging and getting help
  • Documenting code
  • Learning about a codebase
  • Testing code
  • Project planning
  • Committing and reviewing code
  • Deployment and monitoring
  • Collaborating with teammates

Episode 4: Demo Github Copilot

  • Github copilot requirements and setup
  1. For students, follow the procedure of Github Education. Requirements:

    • Be currently enrolled in a TUDELFT degree.
    • Have a verifiable school-ussued email address or upload documents e.g., TUDELFT ID card.
    • Have a Github personal account.
  2. For teacher, follow the prodecure of Github Education. Requirements:

    • Be an educator, faculty member, or researcher.
    • Have a verifiable school-issued email address.
    • Upload documents that prove your school affiliation.
    • Have a personal account on GitHub.
  3. Verify Github Copilot: https://github.com/settings/copilot

  4. Download the Github Copilot extension in your IDE editor


Mini-demos:

1. How to best interact with Github Copilot:

Other tutorials:

2. Unit Test:

Today's demo is based on:

3. (Extra) Create folder repository following standards:

For those using currently Github Copilot

Goal:

Compare cookiecutter tool vs. chat Copilot outputs in generating folder structure for a project using conventions in the ML community.

Instructions:

  • Task 1: Install cookiecutter:

    • Find the tool [1]
    • Chose a template for ML projects
    • Open new repository in VSCode
    • Use cookiecutter functionality in command line
  • Task 2: Utilise Copilot Chat:

    • Check Github Copilot status
    • Ask Copilot Chat [2]
    • Execute suggested commands
  • Task 3: Examine and discuss outputs

Repo: https://github.com/carlosug/ai4rse-workshop-TUD-symp2024


Episode 5: Conclusion

Mentimeter: List the possible positive & negative impact of AI on RSE?

POSITIVE

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
:

  • Improving code documentation and reusability
  • Increasing productivity and efficiency in coding
  • Reviewing code in real-time, increasing quality of publicly available code
  • …

NEGATIVE

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →
:

  • may lack critical skills for assessing code - sloppy thinking
  • untrust AI assistant outputs
  • Deprecated suggestions software libraries or APIs which have since been deprecated, so that code dependencies no longer work, and neither does the code
  • …

Mentimeter: Thinking about how your workflow and process changes over time, how similar or different do you anticipate your workflow to be 1 year from now as a result of AI tools you are currently using?

  • very different
  • somewhat different
  • neither different nor similar
  • somewhat similar
  • very similar

Potential topics for future workshops:

[Add topics of your interest for the next Gen-AIforSE workshop]

  1. Version control, collaborative and Git:

    • Branching, merging and conflicts (ooooo)
    • Create a pull request and working with forks xxx
  2. Reproducible research software:

  3. Documentation: