AI in ICS 314: Did You Really Learn Anything?

20 Nov 2023

Introduction

Technology has evolved so much over the years and it’s only going to get better. One of the many things that have resulted in this evolution is Artificial Intelligence, also known as A.I. We have incorporated technology and A.I. into our daily lives that it has become our personal assistant to lend a helping hand. The use of A.I. is so abundant that it is found in most cars, phones, chatbots, and even our homes. As for Software Engineering, A.I. has been used to help us code faster and make our lives easier. Some applications that I have used that have A.I. are ChatGPT, Grammarly, and CoPilot. But here is why I try to avoid using A.I. in my coding journey and for WODs.

Personal Experience with AI

1. Experience WODs

When doing experience WODs, I don’t usually find myself needing to use any kind of A.I. like ChatGPT or CoPilot. This is because I find the assignments and screencasts to be straight forward most of the time. If I ever ran into any errors or get confused, then I would ask my friends, classmates, or go straight to the #smart_questions channel in the ICS 314 Discord server.

2. In-class Practice WODs

During in-class practice WODs, I try not to use any A.I. because I want to test my skills and really solve the WODs on my own. These in-class practice WODs also didn’t count to my grade so I found it a great opportunity to practice and prepare for the actual in-class WODs. In-class practice WODs also gave me some insight of what to expect for the actual in-class WODs.

I did try CoPilot once during one of the in-class practice WODs, but it didn’t go as planned. It would make suggestions but didn’t give me the exact code/output that I wanted. I only found CoPilot helpful when finishing a line or two of code but afterward, it would get messy since CoPilot doesn’t really know what it is trying to do unless you give it an example output. CoPilot has just made me more overwhelmed and wasted even more time trying to solve simple problems so I turned it off altogether.

3. In-class WODs

I never used A.I. for in-class WODs because I wanted to test my skills and see how much I’ve improved. I know that using A.I. is allowed and is encouraged but I always feel guilty afterwards as if I just cheated. I don’t know why that is, it could be because many of my other Professors don’t allow the use of A.I. so I just never really used it.

I feel like if I were to use ChatGPT to do all my in-class WODs for me then I wouldn’t be able to learn anything and take with me in the future. So I’m thankful that I didn’t use any A.I. since I now know more about Software Engineering and achieved some of my goals that I had set for myself at the start of the semester.

4. Essays

Writing an essay for any class is one of the few times I use A.I. I use Grammarly to help me with my grammar and correct any spelling mistakes. I have the Grammarly Google extension installed so I use it when I’m writing an email, essay, or even a discussion post for any of my other classes.

When it comes to writing essays for ICS 314, most of the time I write whatever comes to mind. But recently in the past month or so, I turned on CoPilot to help me write my essays. It is helpful and most of the time it knows what to write but I always have to read over it in case it writes something random. I also find it annoying that CoPilot would recommend a lot of text and the suggestions always pop up whenever I stop typing for a few seconds. But overall, it is great as finishing your sentences and spell checking.

5. Final project

So far I have not used any A.I. for any of my final projects especially for ICS 314. If there is ever an opportunity for my to test my coding skills, then I will take it instead of cutting corners and having A.I. do all the work for me. Doing the coding myself makes me feel more accomplished and proud of my hard work.

6. Learning a concept / tutorial

Using A.I. when learning a concept or tutorial is my last resort. I always use the resources given to me first, such as videos, articles, slides. I found that asking ChatGPT to explain something like ‘An introduction to the role of AI in education and its specific relevance to Software Engineering. Present an overview of the key concepts or tools related to AI.’, it would give a large explanation and I end up not reading it since it is too long.

7. Answering a question in class or in Discord

Whenever we have discussion in class and a question or concept is brought up that I don’t quite understand, I just simply look it up on Google. But if I don’t find an answer that I’m looking for or need more explanation then I would ask the same question in ChatGPT. It would give a long explanation but I’m able to get key points and get a better understand fast.

8. Asking or answering a smart-question

If I had a question or faced a problem at home, I usually look at the #smart_questions channel on Discord to see if anyone has ran into a similar situation. Most of the time I’m able to find someone who had the same error and I read upon what others have said on how to fix it. I don’t end up having to look it up or ask ChatGPT since I am able to find my solution in Discord.

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

I find the documentation the most helpful when needing an example. If the documentation doesn’t satisfy my needs then I would look up an example on Google or find a video that shows how to implement different concepts. But I have yet to use ChatGPT to give me an example code.

10. Explaining code

Most of the code that I write and use, I’m able to understand and explain to others. But if I ever need more explaining or get confused, I usually refer back to the screencast or assignment that uses the same or similar code.

11. Writing code

I try to writing most of my code so that I’m able to go back to it and understand what I wrote. Letting A.I. writing my code would make me confused in the future or could throw some errors. A.I. such as ChatGPT mostly use different variable names so it would be hard to understand what the code is doing. I just find it easier to write my own code and understand from the start rather than having to go back and try to understand what the A.I. wrote.

12. Documenting code

I found that using A.I. to comment code can be very helpful and saves me time. But I don’t use all of the suggested comments that ChatGPT or CoPilot gives me since they end up being unnecessary. The A.I. would create comments for code that is self-explanatory and I end up deleting them. I only use A.I. to comment code that is hard to understand or explain to someone who may not know what the code is doing.

13. Quality assurance

I have not used ChatGPT to fix my code before. I usually have ESLint running that I use it to fix the formatting of my code like indenting and spacing. I do plan on trying out ChatGPT if it is able to identify the various errors and know how to fix it.

14. Other uses in ICS 314 not listed

Like I mention before, I don’t really use A.I. especially during this semester in ICS 314. I always want to challenge myself and actually learn something rather than making A.I. do it for me. Knowing that I haven’t used A.I. that much, I am more confident going into future CS courses or creating my own projects with the acquired knowledge that I have gained from this class.

Impact on Learning and Understanding

I found that A.I. can be helpful in certain situations but it still has a ways to go. It is not perfect but I believe it is getting better everyday and we are going to see more of it in the future. I do find it interesting and want to learn more about A.I. and how it works.

Practical Applications

For my group’s HACC project, we used A.I. to create a chatbot that would replace the current UH ITS AskUs keyword search. With the use of A.I., our chatbot Hoku, was able to scrape files and websites, create a summary, and give a quick response to ITS related questions. Although A.I. is not perfect and can be easily manipulated by the user, our team has implemented prompt injection classifiers to prevent this from happening. This ensures the safety of our users and the integrity of our chatbot.

Challenges and Opportunities

I do look forward to using A.I. and pushing its capabilities to its limit. I do want to limit my use of A.I. so that I can gain more knowledge and experience on my own. But I do want to test the capabilities of A.I. and do simple tasks with it.

Comparative Analysis

A.I. does hold a lot of answers but I wouldn’t rely on it too much. It is not perfect so not everything that it spits out is correct or true. I suggest doing your own research first and if you need more clarification then use A.I. for help. I do believe that A.I. will keep evolving and get better over time so I am excited to see what it has to offer in the future.

Future Considerations

A.I. has made a big impact in the Software Engineer community, allowing us to code faster and more efficiently. But I don’t think A.I. should replace any of the Professors teaching CS courses or the courses themselves. There is a lot of room for error when it comes to A.I. we should continue to teach these concepts in school. For crying out loud, we made it, we should know how it works and how to implement it.

Conclusion

Although A.I. is becoming more and more popular, not just with Software Engineering, but also in our daily lives. It is not perfect and we shouldn’t use it for everything. But be prepared to see more A.I. be incorporated into more things. I am excited to see what the future holds for A.I. and how it will impact our lives.