nus-cs2103-AY2425S1 / forum

12 stars 0 forks source link

Share your AI-supported coding experience here #257

Open damithc opened 1 month ago

damithc commented 1 month ago

If you used AI tools (e.g., ChatGPT, GitHub Copilot, etc.), in the iP/tP or elsewhere, consider sharing your experience (both positive and negative observations) here. It can encourage other classmates to try such tools too, and can be useful for others trying such tools already but looking for ways to get more out them.

tata32000 commented 1 month ago

Use of AI Tools in the Project

What Works Well

GitHub Copilot is a great tool for generating code snippets for methods that are not implemented yet. It saves time and helps to understand the code better. For example, the parser method to extract the task description from the input string was generated by GitHub Copilot.

ChatGPT is a great tool for generating the task description for the task and Parser class. It saves time and helps to understand the code better. For example, the parser method to extract the task description from the input string was generated by ChatGPT. The tool is also very helpful for generating unit tests for the project. Javadoc is also generated using ChatGPT.

adipanda2002 commented 1 month ago

I used AI tools to complete tasks I consider menial because it is quite clear to me how it should be done and what standards should be maintained. Such tasks include writing Javadoc comments or assisting with considering edge cases for testing the to-do list application using Junit in the IP. It saves time, but also enables us to replicate real world programming in the modern day. In my experience so far, even full time SWEs use AI to complete similar tasks, so it makes sense to take advantage of the opportunity to train this practice in a SWE course.

kimxw commented 1 month ago

My applications of ChatGPT

1. Markdown File Generation

I've used GPT to create README files, AI acknowledgements, or other documentation. This has saved me time and made my documentation look neater.

2. Javadoc Skeletons

I used GPT to create javadoc comment skeletons that include necessary annotations like @link and other decorators to create cross-references within the code (that I did not know about actually). After generating the initial structure, I can then go back and change some details if needed,

3. Generating Repetitive Code

I also used GPT to generate repetitive code, like class constructors that involve multiple fields or long snums.

RezwanAhmed123 commented 1 month ago

I also used AI tools to do similar stuff as the above commenters, mainly Java docs and testing methods.

One other way I used AI tools, was to do some refactoring of longer methods to make the code more readable.

This was a hit or miss at times because sometimes it would just make the method more compact by combining multiple statements to one.

One way this was improved was by specifying the following:

keep the code as readable as possible while using SLAP as much as you can to break this method into parts:

Add method here

hooyushing commented 1 month ago

I used AI tools to aid me in autocompleting repetitive methods, some of those which looked very similar to other methods I written. This helped me to save a great deal of time in rewriting those code

I also attempted to use AI to refactor some of the code so it is more readable and neater, so as to utilise as much SLAP as possible

AI is a really useful tool and we should learn to utilise it to improve efficiency :D

hooyushing commented 1 month ago

For negatives, AI does generate wrong code and you have to spend time to undo the changes that may not be beneficial. This may result in more time than usual if there is over reliance. Hence, I wrote most of the code before using AI as a tool to support my learning!

Feng1231 commented 1 month ago

AI in resources:

rayray39 commented 1 month ago

could use it for code quality aspect for example, generating better names for classes and methods, better variable names for complicated boolean expressions to make the code more readable.

emmannyyy commented 1 month ago

Applications of AI

General experience

lavanyagarg112 commented 1 month ago

I used AI tools (ChatGPT) to generate the markdown for my UserGuide.

On the other hand, copilot was useful in cleaning up the code, and write javadocs.

JoanneHing commented 1 month ago

Use of AI Tools in the Project

(This is from my iP AI.md file)

Introduction

Several AI tools are used in the development of the project (Toothless Chatbot). The AI tools employed in this project are ChatGPT, Claude, and GitHub Copilot. These AI tools have enhanced the coding workflow, improved productivity, and raised quality standards in the project.

AI Tools Used

1. ChatGPT and Claude

These two AI tools are primarily used to enhance written communication, code explanation, and problem-solving for the project.

Applications

Things to Note When Using ChatGPT and Claude

2. GitHub Copilot

Copilot is mainly used as a real-time coding assistant to enhance the productivity of the project.

Applications

Things to Note When Using GitHub Copilot

Benefits of AI Integration in the Project

  1. Efficiency: Using these tools significantly reduces time spent on routine coding tasks, documentation, and problem-solving.
  2. Learning and Skill Development: Accelerates learning of new concepts and coding skills when the tools are used appropriately.
  3. Communication: Enhances the clarity and effectiveness of code-related communications.
  4. Reduced Cognitive Load: Handles low-level details and allows developers to focus on higher-level problem-solving.

Things to Note When Using AI Tools in Development of the Project

  1. Critical Review: Always review and understand AI-generated content before incorporation, as it may not always be correct or suitable for use. Reviewing and understanding the content also helps avoid over-reliance on AI for coding, which may hinder developers from gaining knowledge through the project.
  2. Use it as Augmentation, Not Replacement: Use AI to enhance the project development but not as a substitute for fundamental coding skills.
  3. Balance of using AI and Human Skills: Ensure to maintain a balance between AI assistance and human creativity to preserve the project's unique aspects and learning purpose in building the project.

Conclusion

The integration of ChatGPT, Claude, and GitHub Copilot has significantly enhanced my iP development process, especially in improving code quality, documentation, and overall productivity.