AI in Practice: Insights and Applications from ICS314

16 Dec 2024

I. Introduction

AI enhances the learning experience by offering personalized learning, automating administrative tasks, and improving overall teaching efficiency. In software engineering, AI plays a pivotal role by aiding in code development, debugging, testing, and optimization. It allows for automation of repetitive tasks, provides insights based on data analysis, and contributes to innovations such as AI-driven development tools and software that are more adaptive and intuitive. One of the most notable AI tools I have used is ChatGPT. This conversational AI tool provides support for a range of tasks from answering questions to writing code snippets and debugging. For example, in ICS 314, ChatGPT has been helpful in answering complex questions related to software engineering principles, explaining coding errors, step by step so I would understand and follow each step and providing insights into best practices for project management and software development. It even helped me with a question that was unrelated to coding itself, like “how to transfer this file” which was very helpful since not all the instructions were shown on the assignment website and I didn’t have to ask around every time I needed help.

II. Personal Experience with AI:

1. Experience WODs e.g. E18

For the WOD experience I tried to avoid using an AI as much as possible since there’s no time limit. I try my best first but if I get stuck then that’s when I would use the help of an AI by asking what I need to do next.

2. In-class Practice WODs

When I was working on in class group WOD: Murphy’s Bar and Grill unlike the island snow practice WOD it didn’t have a solution video so when I was stuck on putting the murphy’s logo, chat gpt gave me solution to create a public folder and helped so It would navigate to the logo.

3. In-class WODs

For the in-class WOD there were times I didn’t need AI and when I needed to use it. When doing WOD aloha beer, I had problems putting text over images and chatGPT was helpful in answering what to write.

4. Essays

Using ChatGPT on essays is also helpful to me whenever I do not know how to start on a specific sentence. It would give me basic guidelines and fix my grammar.

5. Final project

When working on my final group project “corponector” I faced a problem deploying it and I had errors connecting to the server database. Whenever I had these problems I would first ask chatGPT what I could do to fix and it gave me multiple options to possibly fix the solution. I was able to follow the step by step guide and fix the problem deploying.

6. Learning a concept / tutorial

ChatGPT helped me break down complex topics into parts I could understand. I used it to learn TypeScript tips, specific npm/npx commands. The command I learned was when trying to modify a .env file I would use source ~/.bashrc and nano.env command.

7. Answering a question in class or in Discord

I didn’t really answer a question in class or discord but most of the coding questions on discord were answerable through help of ChatGPT.

8. Asking or answering a smart-question

The only question I asked on discord was the code writing style guide on this class which was beyond the help of AI. Other than that, all my questions were answered through AI so I didn’t really utilize discord smart questions.

9. Coding example e.g. “give an example of using Underscore .pluck”

I had a program to fix the ESLint errors so I didn’t need help on that but when I had a problem on a certain coding area I asked what’s wrong with this line and can you see if I can improve on this code for the quality assurance.

10. Explaining code

When following the code during reading, and when I wanted a specific explanation on why this certain sentence was used I would use chatGPT to ask why this specific sentence was used.

11. Writing code

I didn’t entirely depend on AI on this as I wrote the code to myself but after doing so I always ask chatGPT on how to enhance my code quality.

12. Documenting code

I used an AI to ask step-by-step instructions on each line of code and how this works, why it needs to be used, which was helpful to learn.

13. Quality assurance

I had a program to fix the ESLint errors so I didn’t need help on that but when I had a problem on a certain coding area I asked what’s wrong with this line and can you see if I can improve on this code for the quality assurance.

14. Other uses in ICS 314 not listed

I used chatGPT on what to study in order to enhance my coding knowledge & have better writing skills.

III. Impact on Learning and Understanding:

The incorporation of AI into my learning experience has had a profound impact on my comprehension, skill development, and problem-solving abilities, particularly in the context of software engineering. AI tools like ChatGPT have significantly enhanced my understanding of complex software engineering concepts. For instance, when I encountered difficulties in comprehending certain algorithms or software design patterns, ChatGPT was able to explain the concepts in simpler terms and offer alternative explanations, which helped solidify my understanding.

IV. Practical Applications:

Outside of ICS314, I used an AI to write the lyrics to a song. AI technology has significantly improved in recent years, and now there are many AI-generated cover songs. AI can be used not only to write lyrics and create beats, but also to generate voices, enabling fully AI-composed music. Beyond music, AI is being applied in various fields such as healthcare, where it assists in diagnosing diseases and predicting treatment outcomes, and in finance, where it helps analyze market trends and manage investments. AI’s ability to process vast amounts of data and learn from patterns makes it an invaluable tool in industries ranging from entertainment to scientific research, showcasing its growing role in our daily lives and work.

V. Challenges and Opportunities:

While AI has significantly enhanced my learning experience, there have been challenges in its integration into the course. One challenge is over-reliance on AI tools. It’s tempting to rely on AI for generating code and solving problems, but this can lead to a lack of deep understanding of the underlying concepts. In software engineering, it is essential to balance AI assistance with critical thinking and the ability to independently troubleshoot issues. Even AI tools sometimes provide solutions that are not fully applicable to specific problems, especially when working with complex, non-standard systems. In these cases, the AI might generate code that is syntactically correct but lacks optimal efficiency or does not address the problem in a contextually appropriate way.

VI. Comparative Analysis:

In comparing traditional teaching methods with AI-enhanced approaches, there is a difference in practical skill development. In software engineering, practical skills are crucial, and AI tools like GitHub Copilot and ChatGPT offer hands-on assistance that traditional methods do not. These tools help students solve real-world problems, write code, debug, and optimize solutions, all of which contribute to more effective skill development. Traditional teaching methods might focus more on theoretical knowledge, while AI-powered tools bridge the gap between theory and practice.

VII. Future Considerations:

Looking to the future, AI is poised to play an even more prominent role in software engineering education. AI could also be used to simulate real-world projects, allowing students to collaborate and tackle complex software engineering problems in virtual environments. However, there are challenges to consider. Over-reliance on AI tools could hinder the development of critical thinking and independent problem-solving skills. Ensuring that students remain engaged in the learning process without becoming dependent on AI will be essential. It will be important for educators to adapt their teaching methods to incorporate AI effectively, balancing the use of AI with the development of fundamental software engineering skills.

VIII. Conclusion:

The integration of AI into the Software Engineering course has significantly enriched my learning experience. Tools like ChatGPT and GitHub Copilot have enhanced my understanding of key software engineering concepts, facilitated problem-solving, and accelerated skill development. While AI tools offer tremendous benefits, challenges such as over-reliance and occasional mismatched solutions remind us of the importance of balancing AI assistance with independent critical thinking.