Use the Tool to Learn the Tool

01 May 2024

I. Introduction

The rise and development of AI has taken the world by storm with concerns of plagiarism and academic dishonesty worries on the rise. Although most news articles and some educators will be worried about how AI can be exploited to create essays with very little effort, AI can also take on a positive role in education. In regards to Software Engineering specifically, AI can have a wide variety of applications in which it can assist and educate a student studying that field. For example, ChatGPT can take in big blocks of code and produce a simple summary of the structure and application of that code. The student can then ask further questions as to what specific pieces of code do for the overall program. This is just one of the many examples that AI can be utilized to further a motivated student’s study tactics.

II. Personal Experience with AI:

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

  1. Experience WODs e.g. E18 One of the ways I incorporated ChatGPT into my learning is by using it to merely debug. During the Experience WODs, while learning new concepts, I would often neglect to catch common silly mistakes like forgetting semicolons or mistyping specific variables. Using ChatGPT to spot those mistakes overall saved a lot of time and stress from building up while learning about new concepts.

  2. In-class Practice WODs Since the class had a focus on collaboration at the beginning of the semester, I actually refrained from using any form of AI during the In-class practice WODs. I would just try to ask for help when I could.

  3. In-class WODs Similar to my line of reasoning with the In-class Practice WODs, I did not use any form of AI in doing the In-class WODs. I wanted to challenge what I knew and really seep myself into the stressful environment.

  4. Essays I didn’t end up using any AI for essays.

  5. Final project I used ChatGPT extensively for the final project. Since it was a collaborative project, communication was a key part of the experience. However, This communication would vary from having some communication to none at all. As a result, I used ChatGPT to take in the pieces of code that my peers had made and explained it to me in order to save time. In doing so, I could effectively implement their components into the page that I was working on. Also, many different concepts that we wanted to implement into our website were completely new to me. I personally have a hard time reading through documentation and trying to figure out how to implement stuff so I asked ChatGPT to make pieces of code demonstrating the features.

  6. Learning a concept / tutorial I have a hard time learning how to do stuff via lectures in general, so I used ChatGPT extensively in figuring out things like Underscore and why it was needed.

  7. Answering a question in class or in Discord I did not use any AI in answering questions in class/Discord.

  8. Asking or answering a smart-question I did not ask many smart-questions and also did not use AI in making any of it.

  9. Coding example e.g. “give an example of using Underscore .pluck” Coding examples I used were by asking ChatGPT on how to format a website the way I wanted it to. I would often ask how to make the background take up the whole page, or how to do an inline style for a container.

  10. Explaining code Usually when I get a huge block of code, I will try to skim over it and see if I’m familiar with most of the functionality of what’s inside it. However if it looks too foreign I always copy and pasted the block of code into ChatGPT going over one-by-one everything that seemed unfamiliar to me.

  11. Writing code As for writing code, I experimented a little bit with how ChatGPT would program something, but quickly realized that it doesn’t test its own code. Therefore I didn’t really use ChatGPT in that regard.

  12. Documenting code I didn’t think of using ChatGPT to document my code, but I probably will start now.

  13. Quality assurance I usually used ChatGPT to make me a bunch of test cases for new concepts that I wasn’t really familiar with. Additionally, I used ChatGPT to make me a list of values that could be copied and pasted very easily into my IDE.

  14. Other uses in ICS 314 not listed above Other than the things listed above, I didn’t really use AI.

III. Impact on Learning and Understanding:

AI has definitely had a huge positive impact on my learning and understanding of all aspects of Software Engineering. It helped me get familiar with new concepts by showing me examples of how it’s implemented and why it is important as opposed to other alternatives. However, I will say that without discipline in using AI while doing homework, it’s very easy to fall into a slippery slope of relying too much on AI to do assignments.

IV. Practical Applications:

The amount of practical applications that AI has had outside of ICS 314 is innumerable. One infamous example is the cost-saving practice of firing artists in favor of generative AI that can just create images. Although AI art can be differentiated with a proper look, it has still been used extensively among small, medium, and large corporations.

V. Challenges and Opportunities:

One of the challenges of using AI would definitely be its overconfidence, specifically ChatGPT. Perhaps it’s because of a bad prompt, but ChatGPT would often be overly-confident in a blatantly wrong answer. The worst part is that the line of reasoning that it gives to back up its answer goes against the answer that it has given. Potential opportunities for AI for integration in Software Engineering education could be a small lesson in giving prompts to use AI more effectively. I often find myself unable to get ChatGPT to understand exactly what I am asking of it so this would be useful.

VI. Comparative Analysis:

One key difference between traditional teaching methods and AI-enchanced approaches is the fact that you can tailor your learning using AI. Most of the time in classroom settings, the teacher would have many other students that need to be tended to. However, regardless whether the student is excelling or falling behind, AI can be used to tailor their learning experience. I think that the educator can also use AI to make tailored learning for these students as well. Additionally, I feel like sometimes listening to a lecture is boring, however asking ChatGPT about a certain topic will give a quick summary and its uses. From that point forward, more questions can be asked if it is interesting enough or if the foundation of understanding has been established.

VII. Future Considerations:

In the future, AI can just be used to make tailored lesson plans for students who are open to learning about anything in the world. One of the things that I enjoyed from ICS 314 was the quick crash-course modules from free codeacademy on html, css, and javascript. Incorporating AI in order to make it more comprehensive would be a boon for students.

VIII. Conclusion:

In conclusion, AI has been a huge positive influence in my software engineering education. Using the AI in order to get quick summaries and code examples was a great way to learn the material hands-on. Also it has increased the efficiency of my learning as well. Debugging is a frustrating process which almost always is because of a silly mistake, which AI promptly helped accelerate. Furthermore, AI has also given me many different ways to approach problems, whether they are more complicated or even concise.