AI

16 Dec 2024

The role of AI in education

Over the past couple of years AI has reshaped how higher learning can be done especially in the software engineering field. It is important to note that it is not a replacement for higher learning but rather a new tool that can further learning. The goal of computer science classes has never been to teach specifics for every coding language. That is simply impossible. My father, who has been in the field for probably around 25 years, is constantly learning new things because new things are being created every day. Concepts have always been the focus of computer science classes and learning concepts is the key to properly utilizing AI for computer science. My experience in using both ChatGPT and Github Copilot has taught me that you do not need to know how specific lines of code work to use them. You just need to know how the pieces fit together to create something.

My experience with AI

Experience WODs

For E18 I copied the instructions into ChatGPT and then asked it to write out the totalDegrees function. If I recall correctly it wrote it out perfectly the first time I asked.

In-class Practice WODs and WODs

I cannot point to a specific time but during the webpage WODs Github Copilot would frequently give me a write out for large chunks of the page after I wrote out a few things. It would often need to go back and modify things a little but it was usually a great starting point that saved me a lot of time.

Essays

I never used AI to write out essays because I think it is faster to write them out myself if I am trying to get out something genuine. I feel like AI would just write out something very robotic that does not feel right.

Final project

I did not use AI in the final project because it was not really necessary. The bulk of the project was done by the rest of my group for the HACC and so my contributions were minor and involved modifying existing code which I feel AI still struggles with.

Learning a concept / tutorial

For the Island Snow React assignment I provided my bootstrap version of the homepage to ChatGPT in sections and asked it to modify those sections into react format. I usually needed to clarify something once or twice eacxh section but otherwise it worked very well.

Answering a question in class or in Discord

I never used AI to answer a question in class or on discord. I never answered any questions on discord and I preferred asking the professor over AI for in class questions.

Asking or answering a smart-question

This one does not apply to me as I do not ask or answer smart-questions online.

Coding example e.g. “give an example of using Underscore .pluck”

I never used AI for a general example of something. I would ask for specific scenarios but not a general example.

Explaining code

When something was not working I would often copy a chunk of code into ChatGPT to ask it to explain what was happening and what might be broken.

Writing code

For E18 I copied the instructions into ChatGPT and then asked it to write out the totalDegrees function. If I recall correctly it wrote it out perfectly the first time I asked.

Quality assurance e.g. “What’s wrong with this code (code here)” or “Fix the ESLint errors in (code here)”

I can’t remember the assignemnt but I was having problems importing pictures using react and so I highlighted the code in VSCode and clicked the fix option using Copilot. It had to be asked several times but eventually a fix was given.

The impact of AI on learning

My use of AI in ICS 314 has been extensive but to really examine it I have to go back to my ICS 111 class last year. I knew most everything that occured in that class already because I had taken quite an extensive list of computer science classes in high school. We were encouraged in that class to utilize AI particularly ChatGPT as that is the way of the future for computer science but I was resistant to change a coded all of my assignments by hand because I felt like AI was kinda cheating. Then I took ICS 211 and things changed. Suddenly there was a lot of knew concepts and code to be learned that took a while to learn. I did not have a lot of free time on my hands so I started using ChatGPT. What I came to realize was that I was not cheating by using AI. It was a tool that I used but I still needed to know the concepts I was applying or else I would not know why things where not working. And now going into ICS 311 and 314 this semester I started out with a much different perspective on AI that has drastically shaped how I went about school work. I probably could not hand code out any of the functions utilized early in 314 or the webpages that we focused on later but I could get any function we talked about written out in typescript in about a minute using AI. I also could tell you how those functions worked in a general sense (though likely not line by line).

Practical Applications of AI

I regularly use AI in my ICS 311 class. I would create an outline for how I wanted to do a project and write out the basic structure. Once that was finished I would copy the files into ChatGPT and then ask it how I could do something and get it to write out code for that. I would generally hand modify the small things and get ChatGPT to make the big steps. ChatGPT was great at getting me like 90% of the way to completion and complete dog poo and getting the last 10%. But overall I saved a lot of time by getting those big steps written out by ChatGPT. I also frequently give ChatGPT chemistry problems that I am struggling with to see the steps in how they are completed.

Challenges and limitations of AI

The way I see it there is 2 main limitations of AI. One is it is only as smart as the questions asked and two is that it hates to be unable to provide. The first limitation is pretty self explanitory, AI is not a human and you are not having a conversation with it. You have to be very specific in what you want out of it or it will not give you what you want. The second limitation is a little less clear. Now this may only be a ChatGPT problem as that is the AI I primarily use but ChatGPT will never tell you it does not know something. It will instead generally make something up or do something wrong so it can provide something. And it will not warn you that what it provides could be wrong which is the big problem. Learning how to work with these limitations is the key to properly utilizing AI.

The difference between traditional computer science teaching methods and AI driven learning

I do not think there is a big picture difference. For someone who has grown up always having the internet when learning computer science AI is really just the next step. As I have made clear AI is just a tool in which to utilize concepts of computer science. Before AI that was the internet. You never know everything and you will have to constantly look up new code. AI is just a faster way of accessing this information.

Future considerations on the use of AI

The end result of integrating AI into software engineering courses should be making a human writing code obsolete. There will definitely be a decrease in the comprehension of lines of code but that really should be the goal. Coding languages can all be boiled down to binary. No one codes in binary anymore because it is faster to code in the coding languages. If you gave a software engineer a binary file I highly dought they would no what it does. But if you gave them the same file in java they would probably be able to tell you. Does that mean java is bad? Of course not. AI is not an exact analogy to this but the principle is the same. Increasing the speed and ease at which people can code. As AI improves it should take a greater focus. Classes should be geared towards how to properly use AI and where its shortcomings are.

Wrapping things up

Currently AI is a tool that can be used to help write code. Eventually it will become the platform for writing code. Just like modern coding languages it will have its problems and courses should teach them accordingly. Focusing on where AI should not be used is just as important as learning where it can be used.