Why use AI?

06 May 2024

I. Introduction

AI has become an integral part of our modern education. More specifically, in software engineering, AI plays a crucial role in enhancing learning experience and the experience of software engineerin in general. Not only is it helpful when you have a bug that you can’t figure out, but it is also an amazing tool for learning as it provides answers to questions that cater towards the person’s needs and learning styles. The integration of AI in education offers several benefits for software engineering students and education in general. One benefit that I believe is the greatest is that through AI students can receive targeted support wherever and whenever they need it. In education in general and in ICS 314 one particular AI tool that I use is ChatGPT.

II. Personal Experience with AI:

I have used AI in class this semester in the following areas:

  1. Experience WODs e.g. E18

For the Experience WOD E51: Digits, Part 3 (Contacts Collection) I asked ChatGPT to debug my code and find out why the Contacts.userPublicationName wasn’t working. ChatGPT was very useful in this because it provided the outline of the code and the changes it made to fix it as well as an explanation of what was wrong. The benefit of using it was that by using ChatGPT it saved me a lot of time from scanning through each line to the code to see what was wrong. The cost is that it took me a couple specific questions to make sure ChatGPT was producing the correct answer.

  1. In-class Practice WODs For In-class Pratice WODs I didn’t use ChatGPT or any AI because since it was a pratice WOD I thought it was in my best interest to pratice and do it all on my own so I could best prepare myself for the real WOD.

  2. In-class WODs For In-class WODs I did use ChatGPT. Multiple times I asked ChatGPT to help me solve this specific feature and to debug my code whenever I had issues. I also used it a lot to fix my ESlint errors. ChatGPT was very useful in this because without it I don’t think I would have passed the WODs because me figuring out what was wrong or researching how to do a certain thing through the course website would have taken longer.

  3. Essays For Essays I did use ChatGPT to help me fix my grammar and spelling and to help me understand concepts. For example for the design pattern essay, I asked Chat GPT about the definition of design patterns and the concepts within it so that I could better understand it in order to be able to write an essay discussing it. For other essays in ICS 314, I have used ChatGPT to help me reword some sentences because sometimes I find it hard to articulate my thoughts into words and by using ChatGPT, I am able to reword sentences to make it easier to understand and articulate my thoughts better.

  4. Final project For the Final Project I did use ChatGPT for help with completing the final project. One example is when building the wishlist component for our Professor trading card web application, I used ChatGPT for help when implementing the search bar feature. More specifically, I ask ChatGPT about how I would go about implementing the search feature to filter out based on the first and last name of the professor/instructor.

  5. Learning a concept / tutorial I use ChatGPT for learning a concept/tutorial quite a bit. One recent example was the design pattern essay. Prior to writing this essay I had no idea what a design pattern was, so I asked ChatGPT to elaborate it for me and provide examples. I also use it for other classes and to review for tests. Sometimes I ask them to give me a test question so that I can pratice.

  6. Answering a question in class or in Discord I have not used ChatGPT or AI for this because I never really had a reason to or a necessity to.

  7. Asking or answering a smart-question I have not used ChatGPT or AI for this because I never really had a reason to or a necessity to.

  8. Coding example e.g. “give an example of using Underscore .pluck” For a Coding example, I did use ChatGPT to help me better understand certain code bits. One example I had was when I asked ChatGPT how to implement and use the _.map() function in Underscore. To that it gave me an example of an implementation of the map function as well as explain what it was doing and what the map function is in general.

  9. Explaining code For explaining code, I use ChatGPT quite a bit. It helps me better understand specific lines and how that plays a part in the entire code as a whole. One example where I have asked ChatGPT to help me explain code was in the digits pratice WODs, I used it to clarify some of the code to make sure that what my understanding of it was correct.

  10. Writing code For writing code, I use ChatGPT in small instances, like for example in the final project for the wishlist I ask ChatGPT how to implement a search feature for the wishlist. ChatGPT produced the code and incorpatined it into my existing code. Thus, it implemented and wrote the search bar feature code for me.

  11. Documenting code For documenting code, I have not used ChatGPT because I never had a reason to. When writing comments/annotations I know what the code is doing so I only write down minor comments to help me remember, thus I haven’t really found it necessary to use ChatGPT for it.

  12. Quality assurance I have used ChatGPT for quality assurance many times. In fact it is one of my favorite uses of ChatGPT because when there is something wrong with my code, sometimes it takes me quite a while to figure out what was wrong. By using ChatGPT to help me debug my code and figure out what is wrong, I save a bunch of time. I also use it to format my code, to make all the brackets clearly visible.

  13. Other uses in ICS 314 not listed above As for other uses in ICS 314 not listed, I have asked ChatGPT. One example is that I have asked ChatGPT for installation help if I ran into an issue. One instance where I used ChatGPT was downloading and running a lot of the software we needed in ICS 314 like Mongo for example.

III. Impact on Learning and Understanding:

Incorporating AI into my learning experience has been great so far. I feel like it has allowed me to learn better due to its personalized nature. Since we are able to ask specific questions to AI it is much easier to do that then to do research on Google, thus making using AI in my learning not only helpful but efficentiely since I end up spending less time researching for a specific topic or question. In terms of AI technologies in my understanding of software engineering, I believe that AI technologies have enhanced my understanding of software engineering concepts because it has allowed me to access vast amounts of information, allowing me to learn more complex software engineering topics. Whether it’s understanding algorithms or programming languages like JavaScript, A has provided me with comprehensive explanations and examples. It has allowed me to receive instant feedback and made the learning process more efficencent.

IV. Practical Applications:

As for practical applications, AI is used a lot in healthcare from what I’ve seen. I have read articles and seen that AI is being used for medical image analysis like for detacting abnormiatinlites in different scans like X-rays. Other than that I’m sure AI is used in all different fields, but I have not seen any place openly talking about utiziling AI, since it is still a touchy subject because some are unsure of its accuracy.

V. Challenges and Opportunities:

Some challenges and limitations I’ve encountered in the use of AI within ICS 314 include instances where the responses provided do not fully address the questions or concerns I have. Also, I have noticed that when asked to help with debugging or fixing code, I’ve notices that a lot of responses reiterate the same code without addressing the underlying issue which can be frustrating. Some things I think that can be improved so that AI can be helpful and be further integrated into AI in software engineering education is training AI models specifically on software engineering concepts and common coding issuesas well as provided more detailed explanations of errors and suggesting fixes. I also think something that would be neat would be that for coding, AI gives multiple options on how to implement or debug the code.

VI. Comparative Analysis:

Traditional teaching methods in the context of Software Enginerring education often relies on lectures and textbooks. As for engagement levels in traditional teaching methods, I have found that there is very little engagement and interactivity with the student, whereas AI enhanced approaches utilize interactive and personalized learning. As for knowledge retention, in traditional teaching methods it emphasizes exams, note-taking, and reptition, whereas in AI enchacned approaches, it infovles adaptive learning techniqlues by providing immediate feedback. As for practical skill development, traditional teaching methods involve doing assignments and project, whereas AI-enchanced appeoraction offer suggestion during coding exercises. Thus overall, we can tell the AI-enchanced approaches offer a more interactive and personalized education.

VII. Future Considerations:

In my opinion, I think AI in software engineering will evolve and I think it will be used by more and more indivuidauls in software engineering and in general. AI will continue to enable personalized learning experiences tailored to individual student needs, preferences, and learning styles. I think the only challenges would be the ethics behind it and humans’ concerns with ethical use. I think the only thing that can be improved is just making AI more detailed and accurate.

VIII. Conclusion:

Overall, the incorporation of AI has signifcciantly enhanced my learning experience in software engineering because of its ability to provide personlized feedback and be interactive. There is room for improvement in AI’s occasional inability to address complex questions or provide effective debugging assistance. While the use of AI in the Software Engineering course has yielded significant benefits, there are opportunities for further optimization and improvement.