In my time with ICS 314, AI was a big player always there for homework or tackling any problems I had. AI’s a mixed bag, you know? It’s like this super smart buddy, but if you’re not careful, it can throw you some major curveballs. In the education scene today, especially in fields like Software Engineering, Artificial Intelligence is somewhat controversial. During my time in this class, I’ve dug into some key AI tools that shaped how I see things, both in the grand scheme and specifically in the world of ICS 314.
Experience WODS: Using AI was never a problem with the experience WODs because it was recommended that you do your best to understand the content and keep retrying until you got a score you were satisfied with. For example, if you got a DNF there’s no penalty in trying again to get a better score. If anything, the more you tried the better you would understand the content.
In-class Practice WODs: I never really leaned on AI for those in-class practice WODs; I liked testing my knowledge. But if I ever got stuck, I’d use it as a reference to tweak and shape my code based on what it offered. But, for the most part, these practice WODs were pretty straightforward to complete given no time constraints and the help we could receive.
In-class WODs: During the in-class WODs I would only ever turn to AI if I was completely stumped. For example, in the beginning-ish part of the semester where we learned about underscore functions, I was completely overwhelmed with all this new information and just could not comprehend any of the material we learned so I did use ChatGPT to help me understand the content. Instead of relying on AI to complete my code entirely, my approach was to strive to comprehend the intricacies of why and how the code functioned.
Essays: AI serves as a valuable tool for refining sentence structure and adding that extra flair to your writing. In the context of essay writing for ICS 314, the informal nature of the assignments has allowed me to express my voice without sounding robotic. However, when faced with more formal tasks such as research papers, AI becomes a go-to resource for helping me structure the initial ideas of the paper.
Final project: As of right now, in the beginning phase of our final project there is no need for the use of AI because I could just reference back to our previous experiences to see how and why the code works. But, I can foresee me using it in the future milestones when we get into the nitty-gritty of the functions that we have not learned.
Learning a concept/tutorial: I used AI to try to understand the underscore functions. I just could not grasp the content but when I had ChatGPT break down why and how underscore functions worked, things started falling into place. It gave me a solid foundation, and soon enough, I had a handle on it.
Answering a question in class or Discord: I personally never used ChatGPT to answer a question in class or Discord. If I never had the answer I would kind of second guess myself and wait for someone else to answer to reinforce my understanding of the question. This practice is quite a bad habit of mine but, it serves as a strategy to solidify my comprehension of the question at hand.
Asking or answering a smart question: I have never done this but I could assume using AI to make the question at hand a ‘smart’ question or just answering a question, proves to be highly beneficial. It’s essential to ensure that the approach doesn’t come across as silly or dumb.
Coding example: The underscore functions WOD was the only instance where I found myself leaning on AI. While I had grasped the core of the code, the intricacies of the underscore functions had me stumped. I’ll admit to turning to AI to help with that section of the code. However, I gained a true understanding of it once I could visualize how and why it was implemented in that particular manner.
Explaining code: As mentioned above, using AI to explain how and why the code was implemented proves to be an invaluable tool, particularly for individuals struggling to grasp the underlying concepts.
Writing code: There was never an instance where AI was needed to write code for this class. Instructions for any and almost every experience were very clear and if you were to have any trouble starting the code, one could always just refer to the instructor’s video.
Documenting code: I’ve never relied on AI to document my code. Instead, I’ve always adhered to the best practice of documenting code. This practice is to ensure that if others were to review my code, they would find it comprehensible and easily understandable.
Quality assurance: There is no need to use AI for this because within IntelliJ I could just refer to ESLint errors.
Other uses in ICS 314 not listed: I have used AI for other classes whether it’s generating idea lists or directly assisting me in determining potential solutions for specific problems.
AI, particularly ChatGPT, has significantly improved my learning in software engineering. When online explanations got too technical, ChatGPT provided simplified answers, and I could seek clarifications on confusing parts. Late-night coding assistance was invaluable, offering a reliable alternative when human help wasn’t available. While ChatGPT is generally helpful, it’s not flawless and occasionally provides less useful solutions.
Leveraging AI for daily tasks holds immense value. As highlighted earlier, AI becomes particularly valuable in instances where human assistance is unavailable. From a software engineering perspective, AI serves as a valuable tool for code refinement and overcoming obstacles when faced with creative blocks.
AI aids in code generation and debugging, but its reliability isn’t guaranteed, often yielding unhelpful solutions. Overreliance may lead to delayed issue resolution and hinder learning. Instead of depending solely on tools like ChatGPT, cultivate independent problem-solving skills. Despite assisting in debugging and code generation, integrating AI tools like ChatGPT into software engineering poses challenges. Balancing their use with a deeper understanding of coding concepts is crucial for success in courses like ICS 314 and interviews.
AI-enhanced learning, in contrast to traditional methods, customizes the learning experience based on an individual’s knowledge, particularly in coding and software engineering. Students can leverage AI for explanations or code solutions when facing challenges. However, students need to grasp the provided code or explanations, as AI solutions, while generally useful, may have occasional limitations. Students need to take ownership of understanding solutions, avoiding overreliance on AI, as this self-reliance becomes crucial for addressing issues that may build on earlier problems, ensuring a thorough understanding beyond AI-generated solutions.
As technology advances, the synergy of human knowledge and AI capabilities holds immense potential, particularly in coding. This collaboration can make individuals valuable assets to employers. While AI might replace certain educational roles, such as tutoring, by offering quick and detailed explanations, software engineers will remain essential for bug detection and identifying avenues for AI improvement. Despite the potential for AI to self-optimize in the future, human developers bring a crucial perspective in determining user needs and addressing software bugs, a capability most AI currently lacks.
In conclusion, I believe that AI is a valuable tool that everyone should familiarize themselves with. While there is the potential for misuse and the development of negative habits, it also brings significant benefits to those who approach it with an open mind. Instead of boycotting AI in the education system, we should actively encourage its use. This way, it can serve not only students but also the general population, aiding in understanding a wide range of inquiries.