A.I Takeover

06 May 2024

I. Introduction

As A.I technologies become more prevalent within our society, more people begin to be exposed to these tools. Whether it be from directly utilizing L.L.M models like chatGPT, copilot, bard. To interacting with A.I assistants such as, samsung’s bixby or apple’s siri.

With my experience using ChatGPT, it has been a helpful tool to find errors or try to find the purpose behind the structure of code. I do think it is important that users of these LLMs understand that they can be wrong and you wouldn’t know it because they provide these answers with such confidence it can be deceiving. So, they need to utilize these reponses with due diligence to ensure it is accurate. In order to do this then they need to already have a good foundational understanding of the topic first.

II. Personal Experience with AI:

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

  1. Experience WODs e.g. E18:

    I never used A.I for the experience WODs since it was preparing me for the in-class WODs and mainly utilized the tutorial video and did multiple attempts to get a good understanding of react,mongoDB, html, and whatever concept we were learning at the time.

  2. In-Class Practice WODs:

    On WOD days it was a mixture of emotions going in. I wasn’t anxious but more so had a feeling of the unknown. What if the WOD had a task that I haven’t fully understood yet or was completely different to the experience modules. But most of the time they were similar and I could work through it. I never had a need or wanting to use chatGPT. This is because I felt that it would waste more time debugging and trying to make the code work rather than building it myself.

  3. In-Class WODs:

    On WOD days it was a mixture of emotions going in. I wasn’t anxious but more so had a feeling of the unknown. What if the WOD had a task that I haven’t fully understood yet or was completely different to the experience modules. But most of the time they were similar and I could work through it. I never had a need or wanting to use chatGPT. This is because I felt that it would waste more time debugging and trying to make the code work rather than building it myself.

  4. Essays:

    I never did have a particular enjoyment for writing but it never became so bad to the point of using A.I to write any of my essays. The way A.I writes looked robotic to me, which makes sense since it is a virtual robot. But I’m glad to say that in my entire educational career I’ve never used A.I to write an essay for me. Spelling and grammar checking is a whole different story though.

  5. Final Project:

    For the Final Project I did utilize copilot as a shorthand and chatGPT as an debugging tool. Sometimes stackoverflow didn’t have the particular answer I was looking for so I would look to chatGPT to provide a solution to why certain functions or implementations were working as intended.

  6. Learning a Concept / Tutorial:

    Some concepts were a little convoluted to understand through the provided tutorial video. So, I would try to ask chatGPT to give me a “simple as possible step by step explanation” for concepts such as when learning REACT.Some concepts were a little convoluted to understand through the provided tutorial video. So, I would try to ask chatGPT to give me a “simple as possible step by step explanation” for concepts such as when learning REACT.

  7. Answering a question in Class or in Discord:

    I wouldn’t only answer a question in class or Discord if I had personally had experience in what was being asked or encountered the same error that the person is talking about. Otherwise I wouldn’t even attempt to answer to prevent wasted time on an answer that I’m not fully confident on.

  8. Asking or Answering a Smart-Question:

    The need to ask a smart question was never needed. If I had a problem with a certain topic I could usually figure it out on my own given some time and perseverance.

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

    For coding examples, I would refer to the man pages or the documentation as it is much easier and more often than not would provide examples of their own for me to look at and understand.

  10. Explaining Code:

    Yes and No. If it was code I have written, then I have a pretty good understanding of it since I’m the one that wrote it. If it was someone else’s, then I would look to ChatGPT to provide me with a simple explanation to help me save time with understanding it.

  11. Writing Code:

    When I don’t understand something, then I will look to ChatGPT to show me an example, and sometimes I attempt to replicate it.

  12. Documenting code:

    When I just can’t be bothered, then I will copy and paste my code into ChatGPT and ask it to comment on my code for me. But, I see it as one of the ways AI was meant to be used: to save the user time from monotonous work.

  13. Quality Assurance:

    Using ChatGPT is unreliable due to weird formatting errors. ESLint is all you need to use for formatting corrections.

  14. Other uses in ICS 314 not listed above:

    Using AI to fulfill monotonous tasks like data formatting and creation.

III. Impact on Learning and Understanding:

The utilization of A.I tools in an academic setting comes with its pros and cons. One pro is that it can be a very useful tool in breaking down and understanding difficult to grasp concepts that a student finds difficulty with. But, a reliance on constantly using these tools can lead to a lack of understanding and dependence on shortcuts. In the long-term this may diminish critical thinking skills and originality from students. Which could cripple the future work force if using A.I in a negative way continues to trend.

Another problem we face is the reliability these A.I tools provide. More often than not the work that these tools provide is completely wrong and indistinguishable from being so. If the user does not understand the concept originally then they may have no idea that the A.I is providing them with a completely non-functional code. Causing future problems and countless hours of troubleshooting.

So, integrating A.I tools into education is a serious topic. It requires a considerable amount of planning to ensure it compliments rather than obstructs learning.

IV. Practical Applications:

A.I tools are made to aid and assist users from time consuming tasks to explaining difficult concepts. Some of these tasks include: Automation: Asking chatGPT to provide you a .json file takes your data and structures it into a set format. Ease of explanation: Taking difficult to read code and breaking it down to the basic foundation of what the code is trying to do. Second opinion or oversight: When you need to get a second opinion on not just your code but idea. But, you don’t have an available peer.

V. Challenges and Opportunities:

Using AI in software engineering education has its challenges and opportunities. One major challenge is that students might rely too much on AI, which could affect their critical thinking skills. Also, AI-generated content isn’t always accurate, so students and teachers need to verify it carefully. Ethical issues like plagiarism and bias also need consideration. Despite these challenges, AI offers benefits such as personalized learning and streamlined tasks like code generation saving time from performing monotonous tasks, which can help students focus on complex problem-solving. Properly integrating AI can enhance learning and better prepare students for their future careers.

VI. Comparative Analysis:

Traditional teaching focuses on hands-on practice, critical thinking, and teamwork, while A.I tools offer quick information, personalized help, and can automate simple tasks. However, too much dependence on A.I might reduce deep understanding and discourage solving problems on one’s own. Thus, mixing traditional methods with AI features is important to develop well-rounded software engineering skills.

VII. Future Considerations:

The future of A.I in software engineering education seems promising. As the LLMs continue to improve and are fed more data than their responses, the future considerations and improvements should focus on improved accuracy with provided code and ensuring it has proper syntax and functionality. In addition, security should be a major consideration if the implementation of it interacts with sensitive data or contains any security vulnerabilities leading to any security breaches of sensitive information.

VIII. Conclusion:

AI tools like ChatGPT are changing how we teach software engineering. They make learning easier and more efficient, but they also bring challenges like dependency and accuracy issues. By using these tools wisely, educators can improve their benefits and reduce their drawbacks. Looking ahead, smart use of AI in education could greatly improve learning for future software engineers.