Throughout this course, the use of AI has been very constructive to my education. Offering many insights into how to format software, debug code, and understand programming. Tools such as ChatGPT present information that can range from basic to in-depth. These models help to ground abstract concepts, like databases, with thorough instructions and excellent explanations. Coming out of my exploration of software development, I feel much more informed and clear on expectations within programming.
In terms of my reliance on LLM models throughout the course and assignments, I would use it as a solution key. For the most part, I would do the at home WODs once or twice by myself without any help. Then I would feed the chatbot with the instructions to create a sample solution to reference. Something along the lines of “Please write a solution from this set of instructions: ‘instructions.' " This in tandem with the video guide showed me the many possible ways to go about solving problems within web wpplications.
For the in-class WODs, I think that my use of AI was minimal. From what I could remember, I believe that I largely used AI to clarify certain instructions or fix syntax errors. I would prompt the LLM with something like, “Please explain this to me: ‘instructions segment.'" Or something along the lines of "Why did I get this error: ‘syntax error’?" But other than that, I did not use AI for the most part because I wanted to test myself on how well I could complete the assignment on time without help. When I would ask the LLM for help, I felt I was wasting time trying to comb through extensive responses.
However, I did integrated AI while performing the in-class WODs. I found the experience beneficial due to the time constraint of the assignments. I had largely used these models to debug my programming. I would ask the model, “Why is my program giving me this error?" Insert error: "inserts code." Additionally, I would ask the models for clarification on certain words or phrases that I was not familiar with. Instances such as "What is a wet bulb globe temperature?" This saved my coding time and effort spent on simple issues during critical assessments. Some short falls came up when the model would reiterate the same solution after I clarified it did not work or I gave it more specific instructions.
I did not use AI at all in my essays. I think that I am a relatively strong writer, and if I get really lazy, then I just use the speech-to-text function on my computer. As my reason for to not using AI, I found that it would be largely reductive. Ultimately, even if it gave me an outline, I would have to rewrite everything anyway, so why not just do it right the first time?
I found that AI was most useful whenever I was integrating the UI and the graphics into our final project. To be candid, the UI design was incredibly tedious and time-consuming. When it came to combing through my code and making adjustments, I did rely a lot on AI to guide me through certain issues. For instance, I could not figure out how to get the modal borderlines within the bodycard to change from gray to blue. To be more specific, I would ask ChatGPT, “Please help me fix the border color to ‘insert color’ on my modal: ‘insert globals.css’ ‘insert code.'" It was an issue that took me 30+ minutes, so rather than racking my brain, I asked ChatGPT to help me. I think the most significant downside to this was the sheer amount of code that got added to CSS globals. I felt that rather than reusing some of the older properties, we kept adding new ones with the same functionality. Resulting in our graphic variables being so extensive, repetitive, and muddled. Which meant that we kept adding even more code to the global variables, because we could not find what we were looking for. Creating a nasty and redundant feedback loop to our code.
I largely used AI within the context of tutorials to help me with setting up programs. Especially towards the later half of the in-class quizzes, there were certain setups that would take me hours and result in many errors. So having those tools was incredibly helpful. For instance, I would ask, “Why is this not creating my database?” However, once it got to the final project, I found that it was not as helpful. Due to my classmates having different ways of setting up our program, we would have conflict with the changes or setup that I had made on my end. In other words, I found it more productive just to ask my classmate how they did things. This cut down on merge conflicts and errors within our software.
To be honest, I largely opted out of answering or posing questions on Discord. I would just go to office hours for clarification and post it if we all had the same issue. I prefer a straight-to-the-source approach on those things.
I participated about as much in smart-questions, as I did in the 314 general discord. It was not because I didn’t care about my classmates. I just didn't really use Discord and would mute it. In other words, I mainly did not participate or earnestly try to add to the conversation.
As for coding examples, I mainly would ask ChatGPT to write sample solutions to at home quizzes. As well as draft references to solutions of the practice in-class qiuzzes. Other than that, I did not usually ask for coding examples.
I found that AI models were most beneficial whenever we were covering the TypeScript and JavaScript section of this course. They gave a very in-depth analysis of the functionality that came with a new language. As well as did a really good job of explaining the object-oriented qualities of these languages in software development. I had asked these models questions such as, "Please explain this section of code: ‘insert code.'" To which it then gave a line-by-line explanation of the various it's parts and modalities.
Tying into what I explained above, I largely used generated code as a reference for assignments at home. As well as code snippets to debug my programming. I would ask ChatGPT prompts, such as, “Please create a solution to these instructions: ‘insert WOD instructions.'" Or “Why is this not working: ‘code’? " However, to achieve my desired result it would at times take numerous prompts. Only when I was incredibly clear in my prompt would the code be completed as desired. although, this was rare.
Moreover, when I would encounter errors I would ask things like “why am I getting an ESLint error in my code: 'code here' .” As well as “Why is this not working: ‘insert code’ .” Most of the time, my issue would then be resolved within 1-2 prompts. Although, there were other times where I would get stuck in what felt like an infinite loop of prompts. When this would happen, I would need to step away and come back once I understood the problem better so I could refine my questions.
I do not recall prompting any AI to generate or document any of my code for this course. I know that it's a good practice to comment on code functionality. Though, if I'm writing it myself and nobody else needs to use it, I don't really feel that it's necessary to document. Moreover, especially on time assignments, I feel that it is a time sink. Though, on the project, I should have done this to make my work more clear to my team mates.
None, other than what is listed above. I try my best to limit my use of AI and will only turn to it as a last resort. Usually I will look issues up, watch YouTube tutorials, or ask someone who can help me. This is largely due to the water shortages that people are experiencing as summer approaches. So unless I am truly lost or do not have the time to figure it out, then I will use the LLMs. In other words, if I can do it myself, then I will.
In terms of AI's impact on my educational career, I found it to be incredibly effective in many areas. Specifically, AI allows me to ask questions about functionality and syntactical structuring while learning new languages. Enhancing my understanding of programming and providing me with a versatile repertoire. LLMs have improved my analytical eye for web development and functional programming. Moreover, the process of setting up programs and debugging programs becomes significantly more effective and time-efficient.
Currently, I work with Professor Chen on campus to aid him in AI annotation and detection. With my team, we run programs to analyze crop yields and direct workforces in times of worker shortages. Aiding in maximizing profits and reducing waste of goods. They are additionally doing work to develop models that will detect invasive insect species that harm indigenous flora and fauna. As well as developing models to better detect breast cancer.
I believe that the biggest challenge that I have encountered through my use of AI within this course is, firstly, the vagueness of responses at times. If you are not incredibly specific with what you ask the LLM, it will spit out very basic information that is almost irrelevant to what you are looking for. Though it is great to have an outline or to be pointed in the right direction, sometimes you have to spend a lot of time prompting it to get the information that you need. Then there's the flipside, where the model will spit out way too much information that is irrelevant to what you were trying to resolve. At times, prompts can be a bit of a dice roll and may slow you down in your work process.
Though, I do not deny my use of AI in this class and appreciate its many benefits, I do question how long I will retain the information that I have learned. I do believe that there is something to be said for needing struggle in the learning process to really make information stick. I have concerns that I will not, in the long term, remember all the information that I have acquired so far. Additionally, I do appreciate the many ways that these models have been able to provide me with additional resources and programming structures. But I do question the accuracy of the information that it provided me. As well as worry that the coding structures do not reflect industry standards.
When I think about the future and the use of AI and software development, I believe that the outcomes are largely dependent on the users. I believe that AI is a tool like anything else. That being said, depending on how you use it, what it creates can look very different from person to person. If I had to take a stab in the dark. I would say that AI will become even more integrated with the coding process. Allowing for quicker turnover of assignments and fewer hours spent searching for insights. Additionally, I could see the potential of AI proctoring WODs and grading assignments in the future. Moreover, possible issues that can arise from this are errors in scores and misrepresented results of the WOD. As for the student side, I believe that they may look to bots and AI models for aid instead of the instructors. For which there could be inaccurate information and poorer performance on assignments.
With that in mind, I would say that my overall experience with AI in this course has been a largely positive one. I find that integrating AI into the learning and development process adds clarity, fosters understanding, and saves time on being bogged down by minor issues. This emerging technology is a tool like anything else and your results are dependent on how you use it. That being said, AI is not a catch-all solution to the problems you experience in your coding. Instances such as ambiguous results, infinite loop prompting, and non-functional code are still prevalent issues for users of AI. That being said, the onus falls onto the person to discern how to best use the tool and the quality of the information presented.