Sure, Here's an Essay About AI: AI in The Classroom

16 Dec 2024

Intro to AI in the classroom

Artificial Intelligence has become a savior to many, particularly those in education. They allow me to add to my learning experience via the tools that they offer. Within the scope of Software Engineering, they are a boon to any programmer through means of debugging, supporting or revisioning code, and breaking down and even explaining them within certain coding environments like Co-Pilot in VSCode. Within 314 specifically, I've used ChatGPT and Co-Pilot to varying degrees of success. They gave me a new outlook on programming while also breaking down concepts in ways that I can actually understand.

Personal Experience with AI:

The following are specific examples for when I have or have not used AI:

Experience WODs

I would try on first attempts to see what I can manage alone. Only on repeats after having DNF'd the first time would I implement AI like ChatGPT to explain and break down concepts while also watching the video. It was like an uber-explanation of what I was watching. For the most part, the videos were enough and the AI would only reiterate what was shown in the video, albeit sometimes using other methods I wouldn't have thought of. However, towards the latter half of the Experience WODs, especially digits, I'd have started to use ChatGPT and Co-Pilot. This was when there were certain niche codes that I had to ask for, such as those relating to a specific color of a navbar element which used a format I haven't seen.

In-class Practice WODs

For the sake of practice, I would do my best without having used AI. I'd use the AI to code the portion that I knew what to do but not how to implement. Other times, though, I'd be stuck, then I would try to reference on the experiences for that topic. And only then would I resort to an outline of what to do. More and more though, as I'd do repeat WODs, I'd have AI make a template for me to skip the fodder parts. I would, however, not use AI as much as I would for in-class wods as these were purely for practice and not for a grade. The mindset is a bit more lenient but I wouldn't use AI for everything.

In-class WODs

WODs were very high stress mostly due to the grade associated with them and times like this I refer to AI as a double edged sword as it saved my grade in certain instances but sometimes hampered my learning. In the beginning, I would use AI incessantly-explain this, code that, answer this-which I found out to be a horrible way to learn as I wasn't feeling the pressure I was supposed to. It got better as I stopped using AI to do everything, instead, using it to do debugs and checkups on my code. It didn't cost me any grade, but I needed to practice the methods on my own outside class. AI was particularly useful for making sure I didn't have much DNFs, but my initial over reliance definitely was problematic. One of my main examples of horrid use was in the WOD relating to functional programming where the code I was asking for was much too specific and that really showed me that AI cannot solve all so I just practiced instead and got the hang of it. For the HTML related WODs however, I used AI only for the correcting part. Only when I knew what I had to do but just didn't have enough time to finally do it, I'd have AI whip it up. In the end, I told myself I'll use it, I just need to understand the solution. Towards the later end, it was mostly "Move this to the middle of the page" and "Fix this real quick".

Essays

Surprisingly, I didn't pull any "Give me a rough outline" or "Write me an essay but in dumb terms" and paraphrase. I didn't use AI much in the development of my essays except for the naming of "Spaghetti Code No Longer", I reworded the original it gave but I definitely used it in creating a cool title. The title of this is a direct reference to asking AI to whip up an essay and just copy pasting without even checking, hence "Sure, Here's an essay about--" as AI will often start off with that. I do also use it for grammar and spellchecks, though I think I'll use grammarly for this essay instead.

Final Project

AI definitely played a large role in my personal involvement with my final project. From giving me ideas for new 'issues' to helping figuring out the problem with my code. The biggest example of my AI use was trying to find new issues or features to add and even explaining the what I was missing from my AddClubForm.tsx file. Delving deeper into that latter part, I had most things, except conflicting variable conditions within the submitHandler which kept the info from my AddClubForm from getting to the schema or dbActions. It was incredibly frustrating and I was grateful that AI could explain what was wrong. Furthermore, AI helped with the creative block that I was facing in creating new features or brainstorming them as far as asking "Features to add that don't include database actions".

Learning a concept / tutorial

My usage of AI in learning a concept or going through a tutorial was definitely the highest among any other field here. Asking for a quick explanation of what I was going to learn about helped in priming my learning. It really cut down my reading time and helped me get into the concept and understanding rather than reading tons and tons of documentation. It really fits with the experience-based learning instead of memorizing everything.

Answering a question in class or in Discord

I personally did not use AI in helping in online or in class discussions or questions. Most of the time, I'd be asking for help instead of dishing it out.

Asking or Answering a Smart-Question

I didn't use ChatGPT to ask questions on my behalf or to answer them either. Not every problem I had was able to be search on StackOverflow or whatever site had my niche problem, so I would ask in the questions chat and just put it simple in my question.For Example, in the Smart Questions chat I asked "When I run the command " createdb nextjs-application-template " I am prompted to enter my password but I'm not sure what it is and it is not for my postgres" as this is a problem that I found specific to this class instead of asking ChatGPT or Co-pilot which I used more for actual code than these type of commands.

Coding Example

AI was crazy useful for making a bunch of code examples. The best example I had of this was learning the different uses of functional programming and the different methods to do things. Asking AI to create an example of a standard iterator algorithm for an array and one using a map() function. It was crazy to see the comparison of how little lines of code I had to use. It was like learning what recursion was and realizing I did not have to have multiple nested for loops and dozens of lines of code. This was also useful when creating a template for the final project, asking "Create an example schema and component for Adding pages", which I used from the digits experience but also asked AI to see how it would make them.

Explaining Code

For a large majority of the latter portions of code, especially pertaining to anything database related or anything to the next.Js template used on the final project, I had to use AI to explain certain functions to me, like what "What is a submitHandler?" or "Explain what the '| undefined' in 'website: integer | undefined' meant. I used this a lot in understanding just the basics of the very foreign looking code. I did this less and less for the functional programming or anything related to actual coding in the first half of the semester. My use of AI in explaining code was mainly in the dozens of different functions and methods in the final project and HTML related codes.

Writing Code

For situations where I knew what I needed but not the syntax that was used, I would often consult the online materials and resources for what I needed. In cases where I didn't want to go searching through it, I would ask AI to whip up a quick fix. In cases where it was a very minor coding endeavor, I would do it myself or just keep trial and error-ing my way through but I would rely on AI if it got too time consuming. I would use AI for outlines or skeleton codes so that I wouldn't have to go through the constant retyping of everything. When it came to typing certain things through, however, where I had no idea how to syntax type, I would ask AI to write it for me and for it to explain what it just wrote so that I wouldn't be left in the dark.

Documenting Code

I did not use AI for documenting much if at all. I wouldn't document much, either, only putting comments to portion off code and explain what was happening in this block like "For the Description of the Club" or something along those lines. However, It is an interesting thought to ask AI what it sees in my code and to document from there. Kind of like a teacher checking your work.

Quality assurance

AI was as useful as ESLint was in assuring that my code was the best it could've been. For situations where I couldn't do a 'Fix all auto-fixable errors' I would have to consult AI on what my issues were, this was usually just a click of "Explain this" prompt under the error.

Other uses in 314

Everything should have been covered in all these above cases.

Impact on Learning and Understanding:

I won't lie, I will admit the negative effects that AI had in my learning experience. In the beginning, I relied on it to much, using it as a crutch instead of actually learning or reinforcing my learning, AI was my learning, which was beyond problematic. I took up to asking it every question without properly consulting my own brain, thinking like a developer. Instead, I thought like a lazy person. For the first few weeks and experiences, it definitely harmed my learning, understanding, and especially my problem-solving abilities. I treated them as a get-out-of-jail-free card instead of a tool and I bit the bullet via my understanding. As the semester went on, however, I relied on it less and less and got to really understand my code, especially the HTML side of it.

Practical Applications:

AI was helpful in my collaborative activities, namely, the HACC. It gave us many things: A breakdown of roles, A number of features to implement, A progression of the site's creation, and much more. AI gave us a rundown for how a project should be handled but that was about as useful as it got. Even in something like the code challenge, AI wasn't as helpful as we thought it to be. When having to develop code, a database, and the creative vision of MULTIPLE people, AI shows its limitations. So while it can definitely 'manage' to some degree, it's not the best for actual development.

Challenges and Opportunities:

With my experience in this class, I can definitely see the challenges that AI must face. I'm sure that there are very advanced AI models out there than can create whole databases or programs that can work, but seeing the troubles that AI has in creating programs tailored to a specific use or purpose, We don't need to worry about AI 'replacing' programmers. As for challenges, getting out of the 'AI solves all' mindset can be pretty grueling, especially if you're really into finding out on the spot, but many times, that long process is what you need for understanding. When it comes to opportunities, I'd say you can capitalize on AI's faults. Specifically, using AI as a opportunity to NOT be anything like it because let's face it, the code that it gave us is not up to coding standard and can be really hard to implement when all they give you is a solution that doesn't sink well into the additional code.

Comparative Analysis:

Traditional teaching methods really go into the nitty-gritty and the ugly parts of learning something such as programming. Training the problem-solving capabilities can be very exhausting and daunting, but it 'builds character' for a programmer. Traditional methods are for comprehensive understanding and application along with the experience to implement that knowledge while AI-enhanced approaches may opt out for very very fast understanding, yet lacking on the depth, trading it for a quick solution. Engagement, knowledge retention, and practical skill development get thrown out the window if all that's used is AI, as AI is only to explain and cannot give you the actually experience of going through something yourself, going through those ' ah hah!' moments that keep us sucked in nor make us think, instead, doing all of the thinking for us, robbing us of any skill development. AI should only be used as a supplement to our learning, not a replacement. Kind of like exercise in weight loss. It's a great help in losing weight, but it shouldn't replace a calorie deficit.

Future Considerations

The implementation of AI within the learning environment can allow for insane breakthroughs in ease of learning and understanding of a concept. Posting AI summaries or prompting students to seek out a summary of the topic before really exploring the content can be a good way to suck in the student into learning instead of throwing lots of random gibberish at once. Furthermore, it can further streamline the learning process, creating learning models to learn from instead of mindlessly coding, working towards mastery.

On the other hand, AI must be kept at an arms length away from being the main source of teaching. As said before, AI trades depth for breadth, making for a shallow understanding of what's presented. By allowing for a system where both teaching methods are actually implemented, I belive that major improvements can be made in educating software developers.

Conclusion

I went through the path of over reliance on AI in my Software Engineering journey and I have thoroughly paid my price in terms of understanding. It has surely been a great asset to me in terms of keeping a decent grade, but dealt a solid blow to my learning. I still use AI, but sparingly as to not get lazy in my own learning again. It's played a crucial part in my learning, not only as a Software Engineer, but also in other classes as well, summarizing and helping accelerate my growth. It's implementation in this class as another tool and not something to be brushed off the shoulder definitely helped in my learning, as AI is just another tool to help in our learning, like Grammarly, well, sorta. Correct use of AI in Software Engineering can allow us to minimize the lows of learning while maxing out on the highs while holding the integrity of everyone that uses them.