Artificial Intelligence, or AI, has been around for a while and it’s been getting smarter and smarter. AI can be used to help you find information or figure out a problem. In some places, using AI is considered unethical since it’s almost like cheating. As for me, I have used AI to aid in my software engineering, but to a certain extent. Some of the tools I have used were ChatGPT and the AI assistant provided by IntelliJ.
I have used AI in class this semester in the following areas:
Experience WODs e.g. E18
I rarely used AI to do any of the experience WODs. When we made the switch to using IntelliJ, I would get some help from the AI assistant provided by IntelliJ. All it would do was bring up a list of terms each time I would type something. Choosing one of the options would autocomplete what I was typing and add imports if it was necessary.
In-class Practice WODs
This is pretty much the same as the experience WODs. I only ever used the AI assistant from IntelliJ to autocomplete my terms and that’s pretty much it.
In-class WODs
For the in class WODs I promised myself that I wouldn’t use AI and I fulfilled that promise… If you don’t count the AI assistant as I mentioned in the previous areas. Since the in-class WODs were the ones that tested our abilities, I didn’t want to use AI like ChatGPT or GitHub Copilot. I wanted to use my own brain to figure it out and not get help from someone, or I guess in this case, something. Plus these were timed and I didn’t want to waste time thinking about how to ask the question.
Essays
I have used ChatGPT to help write an essay. I only did it for one essay and it was used for research purposes. The essay was my reflection on using design patterns and one of the questions I asked were “What are design patterns” and “Common types of design patterns.” It provided a lot of good information, and reinforced what I already knew.
Final project
I have tried to use ChatGPT to help with my final project. It didn’t work. It gave me answers that did not help at all.
One of my issues was to add some sort of functionality that allowed users to send requests to other users and those users can accept or deny them. Sending a request was easy, but accepting/denying the request was difficult. I had every request added to a collection. I wanted it so that if the user responds, it would remove the request from their page, which means removing it from the collection. For some reason I could only remove documents from a collection via an ID. I proceeded to ask ChatGPT how to write the code, but it didn’t help. A lot of what I saw was code that didn’t look like how we were writing. Luckily one of my group members did something similar so I just copied and refactored it and it worked.
Learning a concept / tutorial
I have used ChatGPT to learn concepts. As mentioned earlier, I used ChatGPT to learn about design patterns as well as learn about bootstrap react.
Answering a question in class or in Discord
I have not used AI to answer a question in class or in discord. Mainly because I never tried to answer any questions that anyone has asked. If I were to have answered one, I wouldn’t want to use AI to do it. If I can use AI to answer someone else’s question then they should be able to use AI to figure it out themselves.
Asking or answering a smart-question
I never asked or answered a smart-question so obviously I never used AI for this. My reasoning would be similar to answering questions in class or in discord. If I want to get an answer, or give an answer, I wouldn’t want AI to be involved. In fact, someone with a similar experience that has found a solution is the best person to ask.
Coding example e.g. “give an example of using Underscore .pluck”
I have used ChatGPT for coding examples. Some were good, but others were definitely not. I mentioned earlier I used it to help with my final project but it didn’t work. I wanted to see an example of removing a document from a collection and the syntax did not help.
Explaining code
I never used AI to explain code for me. Though that may be a lie. Sometimes when I ask for coding examples in ChatGPT it would explain what the code does. I never read them though. I just look at the syntax and I can pretty much understand what’s going on.
Writing code
I’ve mentioned this for the WODs but I have used some sort of AI to help with writing code. Whenever I type something out in IntelliJ it would give me terms and I would take advantage of that to speed things up.
Documenting code
I don’t believe I used ChatGPT to document my code. If I wrote the code then I should know what it does so I shouldn’t need AI to help write it down.
Quality assurance
I never used AI for quality assurance. As I write my code I’m very meticulous. I check to see that what I write is working and I don’t need the help of AI for that
Other uses in ICS 314 not listed above
Each time I have used AI has already been mentioned above.
AI is like a double edged sword. It can help you in a time of need but in the long run, it may just hurt you. Relying too heavily on AI can prevent you from learning and understanding the concepts which can hurt your skill development. I don’t think AI has helped me out at all in enhancing my understanding of software engineering concepts. When I used the AI Assistant, it would import what I need but I never learned what the syntax looks like. I never bothered to check
I have seen AI used to generate a very good impression of voices. You’ve probably seen it on YouTube. They would call it AI covers. The idea is to choose a random fictional, or nonfictional, character/person and have them sing a song in their voice. There are websites where you can do this, but it takes a few days to get results. However, the results can be amazing.
One of the challenges of using AI is knowing how to use AI. When you ask it a question you’ll probably get vague answers that may not be helpful at all. Giving it a smart-question would probably help getting a better answer.
Using traditional teaching methods for software engineering may help with knowledge retention but engagement may not be so great. You would probably spend more time trying to learn the concept than actually doing them but the knowledge may last longer in your brain. With an AI-enhanced approach, you can get examples a lot more efficiently. Though you won’t be able to learn much. If you type it out yourself you might be able to learn the syntax but not necessarily understand the actual concept. Both methods are pretty much even at that point but taking to account practical skill development, traditional teaching methods would surpass AI-enhanced learning.
Right now, I feel like AI in software engineering education may not be a good thing. Our technology has come this far and AI never had a significant role with its development. It was all made using the human mind. However, my opinion may change in the future. Our technology is developing further and further. Take a look at our computers. It never looked like this in the past. When computers were first created, they were huge and had limited functionality. Nowadays we have laptops that are small enough to carry around in a bag, and desktops that can be upgraded to run multiple things at once. What I’m saying is that in the future, AI will develop even more and get a lot smarter and probably replace the way we learn software engineering.
When you use AI, keep in mind that it may not be very helpful to your learning depending on how you use it. Getting information and examples may be helpful but having it give you the answers will hinder your development. I would suggest that if AI is used in assisting with writing code, it should be mentioned in your code, like as a comment, that it was used to write it.