AI is a Tool, Not a Dependency!

04 May 2024

I. Introduction

Artificial Intelligence is the concept and application of humanlike intelligence, used via machines, computer systems, software, and other worldwide/known applications. Over time, AI has been incorporated more and more into education, growing in popularity and serving as a powerful resource and tool. However, while AI can be extremely useful, due to its nature, it can have some very negative and devastating effects if used incorrectly.

II. Personal Experience with AI:

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

  1. Experience WODs e.g. E18
    • For Experience WODs, I sometimes used AI such as ChatGPT when I was confused about either syntax or for general code explanation when I was unsure what something in the Experience WOD template, or whatever specified area the experience was on:
    • Explaining how to correctly formulate the underscore functions with the correct syntax.
    • Explaining the subscription and publish functionality within meteor-related experience WODs (MongoDB).
    • Understanding the implementation of React functions.
      • While I only sometimes used AI for the Experience WODs, I would say that when I did, it was quite helpful and useful.
  2. In-class Practice WODs
    • For in-class Practice WODs, I would use AI whenever I was stuck on something during the practice. Sometimes I would forget how to use the right syntax when using react, underscore, etc., and I would pull up ChatGPT to potentially help me (and sometimes completely do a line of code for me), just so I can try to stay on time and hopefully finish before time ran out. For these specific WODs, whenever I was completely stuck, I would rely on ChatGPT for ideas, but not complete code sections.
  3. In-class WODs
    • For the actual in-class WODs, I would use AI mainly like I used it in the Practice WODs. Since these in-class WODs were the real deal, I tried to be as prepared as possible, going to as many TA practice sessions, and redoing previous class Practice WODs so I wouldn’t have to rely so much on AI. However, there were numerous times during those intense 30-55-minute WODs when I completely forgot how to do something as I was in potential danger of DNF’ing, thus using AI to make up for these moments.
      • One specific example was when we had to use the underscore library, having to pick which underscore function would do what the WOD specified to do. With there being an abundant amount of underscore functions, AI helped to narrow down potential picks.
    • While AI has helped me on some occasions during the in-class WODs, it has also been a great hindrance at times, even leading me down the wrong rabbit hole which inevitably led me to fail a WOD early in the semester.
  4. Essays
    • For Essays, I rarely used AI for anything other than creating headers for me (because in all honesty, I’m not the most creative), as well as helping me with some conclusion ideas for our previous essay on design ideas.
      • I would generally ask AI: “Can you give me creative headers for my essay,” and would copy and paste my already done essay into ChatGPT for it to generate some ideas of headers based on what I have written already.
    • Other than that, I have not asked ChatGPT to write out any essay completely, as for me feels like it violates my code of ethics.
  5. Final project
    • For the Final Project, I used ChatGPT to help whenever I was stuck, on either front-end HTML, CSS, and React components (as I am not the biggest fan of front-end) or back-end MongoDB-related issues. We had an issue with our project, where depending on how you sign up for our website (either a vendor or a user), you were supposed to be given a specific role, and that role would be updated in the Mongo database under user-assigned roles. This wasn’t covered in class, as the roles we worked with during practice, and experience WODs, were predefined in the default settings.json file. I used ChatGPT to try and help with this and problems that were similar. Often used ChatGPT to explain error messages, and why certain things (such as our vendor’s collection) were not being updated.
      • Question asked AI: “Why is my vendor collection not being updated? The error message says……”
  6. Learning a concept / tutorial
    • Using AI was not my first option upon learning new concepts. I would turn to YouTube, as well as talk to the professor before going down the AI rabbit hole. However, when I did turn to AI, it did help me learn and explain to me various aspects of software development. I just had to make sure my questions were direct and niche enough for the AI, to not send me down a spiraling pit of hullabaloo and nonsense. ChatGPT has helped me learn React, Underscore, and many different Meteor and Mongo applications and uses, which I paired with my regular online learning (videos, documents).
  7. Answering a question in class or in Discord
    • I did not use AI to answer questions in class or inside Discord.
  8. Asking or answering a smart-question
    • I did not use ChatGPT to ask or answer smart questions. Rather, if I saw someone have the same question as me, I would try to solve it on my own, even redoing my process, in hopes of retracing my steps to the core issue. Most of the time this worked.
  9. Coding example e.g. “give an example of using Underscore .pluck”
    • I have used AI to provide code examples, using correct syntax to help me get an idea, and better understand certain coding functionality. An example of AI giving coding help is when we were first learning about MongoDB and were tasked to sort a collection of names alphabetically. With AI, I asked “How do I sort my collection alphabetically, by last name in MongoDB? Here is my collection: db.people” to which AI was able to direct me to the right answer.
  10. Explaining code
    • For explaining code, I have used AI especially when first starting out understanding the material we have gone through, throughout the semester. Topics such as React and underscore functions, and recently, using AI to help me understand the subscribe and publish client and server-sided collection data functions. Utilizing AI to explain code enabled me to understand more about how these various functions worked within my code, furthering my knowledge and skill both with back-end and front-end programming.
  11. Writing code
    • In terms of writing code, I tend to not directly straight up ask AI to create code for me to use but rather try to code things myself, and if I run into any errors, seek help through outside resources, and then AI uses my code as a focal point to work with. With this, if AI gives a result altering the code that I provided, I will try to compare what it has changed with my original code, and then either make the changes or use the ideas to formulate and troubleshoot my errors. I feel that completely asking AI to write out straight code with a given prompt, etc. is just not good practice and will not make you a better software developer at all. Efficient use > Overuse.
  12. Documenting code
    • I did not use AI to document my code. I did not think of using ChatGPT to document my existing code. For me, using AI was more of a “help I’m stuck, do you know what to do?” type of thing, but using it for documenting code is something that I can see myself starting the use.
  13. Quality assurance
    • Quality assurance was one of the main uses of AI for me throughout this class, and especially during the Final Project. For practically all of my assignments and WODs, I have tried using my practice and previous assignments when working on newer projects and work, before turning to AI. However, when needed, I ask AI to suggest solutions to problems I have in my existing code.
      • For the Project, I was tasked with implementing a role assignment and updating a collection upon first-time signing up to our website and was running into an error of the collection not correctly grabbing the submitted data. I asked AI “Why is this not adding to my vendor collection? Here is my code: Meteor.methods({ ‘Vendors.add’({ storeName, image, storeLocation, storeHours, owner, storeMenu }).”
  14. Other uses in ICS 314 not listed above
    • Outside of the listed sections above, I utilized ChatGPT to help with my volta and node packages, when I was running into issues with it not initializing the correct packages upon my installing of certain needed files.
      • I was having problems with the Meteor Up (mup) installation and asked AI for help.

III. Impact on Learning and Understanding:

AI is a brilliant and (occasionally) helpful tool that can be used alongside learning, as it is often a faster and more direct alternative, to searching outside resources for the same information. However, it can be detrimental if used incorrectly and can destroy the learning experience and environment, something that I try to stray away from.

Throughout this semester, I have used AI to help me better understand materials that I didn’t fully understand, even after doing extensive research on the topic. I would say, “Could you please explain __ with a provided example,” to which it would more likely than not, generate a cohesive and easy explanation and example. Not only explaining things, but AI has helped me to debug, and correct my incorrect syntax and logic, behind my code.

While AI is helpful, I try to stray away from it as much as possible, as solely relying on it will negatively affect my comprehension and problem-solving abilities of said topic I am learning. I feel that having a strong foundation with the fundamentals of software development first will allow for a better learning experience if you decide to use AI later. So understanding what I am working on/learning first before turning to AI software will engage my learning more, rather than hindering it not understanding anything.

Over the past 4ish months, AI provided another venue for sourcing information and has proved to be pretty beneficial alongside my other learning resources.

IV. Practical Applications:

Outside of ICS 314, I have used AI in helping me understand other classes such as Chemistry (which I suck in) asking to explain certain topics such as anodes and cathodes, but also in my Grey Hats cybersecurity Club. Recently, we had a cybersecurity team competition, and I used ChatGPT to try and help me with digital forensics, finding a certain flag in a zip file. Personally, the use of AI in this field was kinda helpful to me as a beginner to the Linux operating system. While I am still learning the Linux command line fully, it showed me potential tools to use within Linux that would help with forensic recovery, as well as the syntax for using things such as hashcat, and xxd.

V. Challenges and Opportunities:

For me personally, some of the challenges come from the ease of using ChatGPT and AI. All it takes is a simple Google search, and you’re brought to a program that can practically answer all of your questions (although sometimes not well), instantly.

To go forward with this, AI occasionally will give you answers that are just flat-out blatantly wrong but will preach and push it as the correct answer. If someone was unfamiliar with the topic, and trusted AI 100% without question, this would hinder learning completely, as it pushes a completely wrong agenda.

I feel that, within education, as we grow as software engineers, we must learn to properly integrate AI as just another tool in our arsenal, rather than the big end-all solution. AI is an ever-growing resource that will be utilized not just by engineers, but students and people alike. Thus, learning how to properly utilize this resource rather than completely banishing it, will be most beneficial to students, etc. in the long run.

VI. Comparative Analysis:

Traditional teaching tends to rely on in-person interactions in a classroom setting, utilizing lectures and resources such as videos, textbooks, notes, etc. This teaching method tends to be more “general” for traditional settings, topics are already preset, and based on the student’s proficiency and dedication to the led discussion, it’s mainly up to the students to not be left behind. The teacher won’t stop for you if you aren’t grasping the information. Students would have to do external research, learn via videos, or come into office hours (basically learning outside of the classroom). However, you are more likely to retain this information as you are actively keeping engaged, learning inside(and out) of the classroom, or through external resources through self-learning.

With AI, it’s more personalized, as you can say exactly what it is you need help with. AI offers examples of your specific problems with feedback. The thing is, AI, is artificial. How will you know the information you are “learning” is correct, if you don’t know the material yourself? AI, while it is convenient when it comes to understanding information, certainly can’t fully replace a teacher. It’s like the blind leading the blind if used incorrectly. A person is only gonna be hurting their learning experience, if there is no foundation beforehand.

You are much more likely to remember information and develop skills through actively learning through videos and searching external resources, as well as learning from teachers because it takes longer. You will be engaged with the material more, making it retain for longer, rather than simply searching for your AI service of choice and instantly getting your solution. You become too reliant on such.

VII. Future Considerations:

AI will continue to evolve and get more and more advanced, playing a greater role in software engineering education for not just students, but also educators. As AI continues to get better, students will feel more reliant on such, serving so much as a dependency for some. To combat this, I think students need to be regulated on what exactly they can use AI for. There’s no way to stop students from using AI, so trying to regulate it through encouraging healthy use of AI as a sort of resource and tool, rather than depending on it as a code-writer.

As AI gets stronger, I think for the future we should educate students on the ethics of using AI. Yeah, it’ll write your ICS 111 homework for you, but later in the future, it is going to be working with you on some pretty important projects (if you continue to be an engineer). Professor Moore said something in class the other day, and it was something along the lines of “We create things that can change the world,” so as we continue to learn as students and as future engineers, we must not allow AI to take the reign over our education and career goals. We must regulate it!

VIII. Conclusion:

Throughout this semester, I have used AI in different aspects of this course, and as AI continues to gain popularity and influence in education, it is certainly right to say that it is here to stay.

AI is a powerful resource that has helped me to learn alongside traditional teaching methods, and being able to educate students on how to efficiently use AI in their education, to strengthen their fundamentals rather than to be dependent on such, will allow students to expand their skill set. AI is only going to get better, so understanding the advantages and disadvantages that come with AI, will set students up for success, by properly utilizing this powerful resource!

AI is a tool, not a dependency.