AI - What's that??
21 Nov 2023
Created By: Gerardo Hernandez
Introduction
Our first few years of curriculum have largely involved learning to speak computer. Whether this is by algorithms, Java, C++, Meteor or security settings, learning this language has been no easy task. Artificial Intelligence can be summarized as a technology that reasons on input, explains on output, and processes both within the confines of language and context. Since it’s wide distribution for use, AI has been the center of many debates in terms of its role in education. Can students use AI to improve their learning process? Or can it only be used for cheating on assignments? In truth, it can be both. It can be neither. We will explore my personal experience with the more popular AI: ChatGPT, Google’s Bard, Dall-E, and Github Co-Pilot.
Personal Experience with AI:
“AI is a racehorse. You’re either on it, or you’re going to get run over by it” -Me, just now
- Experience WODs done at home, were often not helpful to be done with AI. I don’t think that I used ChatGPT for the at-home WODs. I found that the videos were more than helpful in being able to meet the requirements of applying the material within a given timeframe. I would often rely on watching the videos, and using AI did not make sense for these assignments. Also, the documentation for React/Bootstrap was useful as-written too, and I did not find myself seeking many other sources for these assignments.
- In-class practice WODs were good for practicing the prompts that you could type into GPT. Sometimes, knowing that the answer was available was enough to calm my nerves and let me know that I could have a fallback if I was truly struggling to find the answer. This was the case with the first few weeks of WODs. The use of AI in practice WODs once we got to react/bootstrap became more difficult. If I started my code in one manner, with a container for a Navbar on Murphy’s website, the GPT code waiting for me to “fall back on” did not use containers, and instead used a combination of rows and columns that made “using AI for debugging” useless. At about the end of Bootstrap remixing websites was where my journey with AI ended for in-class practice WODs.
- In-class WODs for Javascript 1, 2, 3. ChatGPT was helpful in terms of debugging. At the start of the WOD, I would copy/paste the prompt into ChatGPT, hit ENTER, then return to JSFiddle and work out the problem to the best of my ability. It was more productive, in my opinion, to have the “hey, don’t forget this” standing by to remind me when stuck. The alternative being that I would get hung up on one small syntax error, fail the WOD, and then wait a week for redemption. Having the appropriate level of feedback available If needed was very valuable to learning the material for the course. Once I got stuck on debugging, I would refer to the GPT result and fix the minor mistake that was keeping my code from running. Another point of added value to doing it this way was that the GPT response would often leave out one detail of what the prompt asked, such as outputting the final return in a certain format. If a student is dependent on GPT for the answer, then they wouldn’t catch these small errors in the code they generated using AI and copied/pasted without second thought.
- For Essays, I found myself searching for relevant images that could accompany my text. In doing a simple search, I found that many images are annoyingly watermarked, or put in an unusable format, or simply not what I was looking for. I turned to AI, specifically, Adobe Express’ Text to Image generator. This was helpful in creating images that I wasn’t worried about being sued for taking and using screen captures of. The rest of the text wasn’t necessary to go through AI. The essays posed to us are largely personal reflections and I don’t think AI would’ve captured any of the ideas and thoughts I had on the questions posed.
- Final project – Although this is still currently in progress, there has been no mention of using AI within the team, and I believe that we will largely get away without using it. There may be situations where it would make sense to try and have ChatGPT try to help debug some ESLint errors, but as of this writing, we have not had to do so.
- Learning a concept / tutorial. With the choice of material presented in this course, there is a sufficient amount of YouTube tutorials for accomplishing certain tasks (like loading Meteor or figuring out how npm and nvm work on your computer). I did not use AI for this, although I know of friends who have used prompts such as “explain concept xyz, as if I’m a 10-year-old.” I am aware of useful ways to rephrase concepts and generate procedures with AI but found myself not really using them for ICS 314.
- Answering a question in class or in Discord was not something I felt comfortable doing with lack of expertise. I did not even think to use AI to answer a question that I didn’t myself know the answer to, for fear of GPT providing incorrect data, and me not being able to catch it.
- Asking or answering a smart-question. I did not use AI for asking or answering smart-questions. I can see how this may have been useful, but it seemed too cumbersome to try and explain small details of my computer build and what steps I’ve already taken, before I got an error that I’m expecting ChatGPT to know and address.
- Coding example. I used AI when we were learning Bootstrap 5. There was code that I knew how to type in the previous iteration of code we had learned. I remember generating my code and entering the prompt “This is my code: «code inserted here». Please streamline this code using Bootstrap 5 syntax. The resulting code would help me understand how to shift my mode of thinking to be more in line with Bootstrap5’s mode of thinking.
- Explaining code. I did not find AI useful for explaining code. I did not think that it was time/energy efficient to explain the context of the code that needed explaining. Especially once our repos became larger. At this point the code would span several different pages/components/etc. and it was not worth the effort to copy/paste so much code for an answer I could get by trial and error.
- Writing code. My favorite use for using ChatGPT was in writing my code from Bootstrap to React UI. There was a learning curve for me to learn React UI and utilizing AI to bridge the gap and show me how I could translate one to another was very helpful in terms of getting the code written out, and in terms of showing me how to map things onto the new coding language.
- Documenting code. I don’t think I did a good job of documenting any of my code, and therefore did not utilize AI for this purpose either. It would be good in the future to use AI to insert notes on what each set of code does for the project.
- Quality assurance is a place where I can see myself utilizing Github Co-pilot in the future. I have used ChatGPT in the WODs to do last-minute debugging, and I feel like there was a lot of value in using GPT for that. However, if GPT took a different approach than I did, then debugging in the way I was approaching it did not work. Specifically, I would copy/paste the prompt into ChatGPT and leave it in the background while I worked on the WOD. Once I got to the end of the time, I would look to see what small error was keeping my code from running. In the future, I see how this is useful, although it would require modifying the prompt to ensure AI took the same approach as me and can help me debug.
- Other uses in ICS 314 not listed. I enjoyed using Dall-E and Adobe Express to generate pictures. Mostly this was for essays, but it could be used for any number of visualizations that is needed for our final project such as a mockup of a page.
Impact on Learning and Understanding:
AI, in my opinion, has enhanced my ability to learn. Where I would have struggled in understanding certain material, and would’ve given up, I utilized AI to fill in the gap and provide timely answers that helped keep my head in the game throughout the whole semester. I also know that I have that resource as an option to help me debug my code, and that helped with my confidence in coding at the start of the semester. I feel that because of the pace of the 314 course, I did not have the ability to rely on AI. It was faster and more efficient to learn the material myself, than to learn how to prompt engineer, AND learn the material.
Practical Applications:
AI in the real-world. AI can be used for any number of applications in the real-world. It is used for recognition of patterns and has done so very well. It is being used in the medical field to scan images for patterns and anomalies in patient data that doctors have not been able to find themselves otherwise. This is just one example, but the ability of AI to find patterns and apply context to simple input/output problems is astounding.
Challenges and Opportunities:
I found there to be limitations with the AI’s ability to keep up with the complexity of some of the prompts. I believe this is user-error as I did not find myself dedicating time to learning how to properly engineer the questions and prompts in a way that gave me an efficient answer.
Comparative Analysis:
One of the benefits of learning with AI is in how responsive it can be to changes in context. As someone who spent a lot of time in the Navy as an instructor, it was difficult to make changes to curriculum or even delivery approach and methods. AI can be prompted to take the context and difference in learning styles to deliver a useful and relevant product to students almost in real-time.