Using AI in Software Engineering

16 Dec 2024

AI in Software Engineering

With the rise of Artificial Intelligence (AI), writing code has become a lot easier as entire websites can be built by entering just a single prompt. While this has many implications, particularily the looming threat of AI replacing software engineering jobs, I believe it is quite far from causing the extinction of human software engineers. Instead, AI is better used as a productive learning tool. In my Software Engineering class (ICS 314), we were encouraged to experience AI in different ways to learn how to use AI as a tool to further our education. I mainly used ChatGPT and sometimes Copilot.

Personal Experience With AI

Here is a breakdown of how I utilized (or did not utilize) AI in 314

Impact on Learning

Overall I think AI has greatly benefitted my learning because it provided an easy access to answers for any questions that I might have. While other sites like StackOverflow are great for providing answers as well, a pro of AI is that it is more personalized as I can ask it to simplify its explanation and provide analogies.

Practical Applications

At its current state, I think AI is a great tool to help software engineers address real-world problems, but still it still has major flaws that prevent it from being as effective as it can. AI struggles with more complex problems, especially math, and also sometimes has difficulty following any restrictions given in the prompt.

Challenges and Opportunities

A challenge I found with AI was that I needed to provide enough context to my problem or else it will generate code that is not quite what I am looking for. Integrating AI into education can be a challenge due to the fact that AI is currently developing at a rapid pace which can be hard to control, especially since it is a lot easier to cheat.

Comparative Analysis

Compared to traditional teaching methods, AI is more personalized and you can choose how you want the information to be presented to you. It is also more accessible as you can learn whenever you want. Because responses are feuled by user prompts, learning is more self-guided which can be difficult and overwhelming for newbies while traditional learning is more structured. Relying too heavily on AI can also trick you into thinking you fully learned a concept, however it is up to the user to practice what they learned.

Future Considerations

AI definitely has potential in improving software engineering education, but I think the overreliance of AI will be the greatest challenge that could prevent it from doing so. Users could trick themselves into thinking they understand more than they do from excessive use of AI, leading them to not know how to fix potential bugs after copying generated code.