The Technology Ren-AI-ssance

20 Nov 2023

Using AI within an educational setting is often stigmatized. Most educators view AI as a cheating or plagiarizing tool. However, AI can be a helpful tool when one is trying to learn more about a subject and is unable to find helpful resources by his or herself. Utilizing AI as an educational tool is especially helpful in Software Engineering when learning new coding concepts or debugging code, as a simple Google search may not give a simple explanation of a coding concept and cannot help debug code.

In ICS 314, I have used ChatGPT a few times to help debug code or understand how to solve part of a coding problem.

Personal Experience with AI

Experience WODs

I did not use AI to help with the Experience WODS because I didn’t think it would give useful results. The Experience WODs that incorporated Bootstrap or React seemed extremely specific to the point where I didn’t think AI would give a workable result, as figuring out the problem on my own would’ve most likely taken less time than trying to get a workable result with AI. Instead, I tried to find an answer on my own or ask peers for help. When provided, I also watched the solution video when I got stuck on a certain part of the WOD and passed the suggested DNF (did not finish) time.

In-class Practice WODs

Most of the time, I did not use AI to help me with in-class practice WODs. I wanted to attempt the WOD on my own since I knew the in-class WOD may be similar to the in-class practice WOD, and I wanted to make sure I knew what I was doing during the in-class practice WOD as a way to prepare for the timed in-class WOD. However, there were times when I utilized ChatGPT to help me with in-class practice WODs that I didn’t know how to start.

For example, I used ChatGPT to help me solve part of the Green Jobs in-class practice WOD. A function called jobsWithKeyword needed to return a list of job titles containing a keyword in a dataset. Since I was unfamiliar with Underscore functions, I was unsure of which Underscore functions I needed to use, so I asked ChatGPT to write an Underscore function using the instructions provided in the in-class WOD. I compared the code I already had with ChatGPT’s answer and asked ChatGPT to explain the _.filter and _.pluck Underscore functions to understand why I needed to use those functions instead of a different Underscore function like _.uniq.

In-class WODs

Most of the time, I did not use AI to help me with in-class WODS. The night before an in-class WOD, I would make sure that my in-class practice WOD from the previous class period along with my Experience WODs were completed with the correct result, as we were allowed to use past WOD materials to help us during the in-class WOD. During the in-class WODs, I opted to use my previous practice WODs to help me when I didn’t know how to solve a part of the in-class WOD.

However, I used ChatGPT during WOD: JavaScript 3 because I was still unfamiliar with Underscore functions, which the WOD utilized, and didn’t think my previous practice WODs were helpful. In the WOD mentioned, I needed to implement a function that took a dataset of CO2 levels and a year as parameters. Said function would return true if that year’s CO2 level was greater than 350 ppm on average. Although my function seemed correct, I received incorrect outputs when testing the function, so I used ChatGPT to help debug my code by comparing my code with ChatGPT’s solution. Without ChatGPT, I would not have finished the in-class WOD in time since I didn’t know what was wrong with my code until I used the AI website. Although I initially did not understand why my code was wrong, I read through ChatGPT’s explanation to understand ChatGPT’s answer.

Essays

When writing essays for ICS 314, I only used Grammarly to check my spelling and grammar mistakes but wrote the essays on my own. Since each essay prompt always encouraged me to “write for the world”, I decided to follow the essay prompts but also add my own experiences and additional thoughts to my essay. By keeping in mind that my essay didn’t have to follow strict guidelines, I had fun and an easier time writing the essays since I was writing for myself rather than the professor. After getting marked off for a minor grammatical error, I decided to use Grammarly to double-check my essay for misspelled words or awkward sentences. Moreover, I didn’t want to use generative AI such as ChatGPT to write my essays because the essays wouldn’t have felt like my own work and I wouldn’t be proud of my essays.

Final Project

Although my group and I are still working on our final project, I haven’t used any AI. If I became stuck while implementing my parts of the project, I asked my group mates for help or looked on Stack Overflow to see if anyone else had the same question as me. Furthermore, I haven’t used AI because I don’t think it will give a helpful answer.

Learning a Concept/Tutorial

As mentioned before, I have used ChatGPT to learn more about Underscore functions and how to utilize it to implement a certain function. I found it more useful to ask ChatGPT to explain various concepts or implement a certain function than scouring the internet for a simple explanation that’s easy for me to understand. Googling a concept would often bring up complex explanations that were hard to understand. However, ChatGPT usually gave simple explanations along with examples to explain a concept, and if I didn’t understand part of ChatGPT’s explanation, I could ask ChatGPT to further explain what it was talking about.

Answering a Question in Class or on Discord

If I don’t know the answer to a question asked in class or Discord, I don’t answer the question. I’ve also never thought about using AI to answer a question in Discord since I figured the person asking the question would want an answer based on my experience, not from generative AI.

Asking or Answering a Smart-Question

Similar to the point above, I have never used AI to ask or answer a question in the #smart-questions channel. I figured generative AI probably did not give a workable answer or the person who asked the question didn’t feel like generative AI would be helpful in their situation. Furthermore, the person asking the question most likely wants to hear from others who may have experienced the same problem and would like to hear how another person figured out the bug or issue. I’ve also seen questions that relate to clarifying an assignment’s instructions, something AI can’t help with.

Coding Example

As mentioned before, I’ve asked ChatGPT to give me coding examples for Underscore functions. Although the Underscore documentation provides an explanation and a simple example of how to use the Underscore function, I don’t find the documentation helpful. Asking ChatGPT to implement a certain Underscore function for an assignment has helped me have a better understanding of the different Underscore functions and when to use one function over the other.

Explaining Code

I’ve asked ChatGPT once to explain a portion of code to me but didn’t receive a clear explanation. As a result, I don’t ask AI to explain code to me and instead try to figure it out on my own or ask peers for help instead. Moreover, by figuring out what the code does on my own, I have a better understanding of what the code does.

Writing Code

As mentioned before, I’ve asked ChatGPT to implement a function that took a dataset of CO2 levels and a year as parameters for the WOD: JavaScript 3. However, when I ask ChatGPT to write code for me, I make sure that I understand ChatGPT’s answer in case I need to apply the same concepts again in the future to a similar problem or function. Using generative AI to do my homework without understanding the reasoning behind the answer doesn’t teach me anything and won’t help me in the long run.

Documenting Code

I don’t use AI to document code because I would rather comment on lines of code using my own words. By using my own words, I’ll be able to understand what a line of code is doing if I revisit said code in the future. Since comments are meant to clarify what a piece of code does, Generative AI code documentation is also most likely not helpful since it’ll give a technical explanation that may not be easy to understand for someone who isn’t extremely familiar with concepts used in the code.

Quality Assurance

I’ve never used AI to actively help debug my code. Instead, I’ve copied and pasted an assignment’s instructions and compared my code with the AI’s generated code. I didn’t ask AI to tell me what was wrong with my code because I figured I wouldn’t get a workable answer or would’ve received a technical answer that I wouldn’t understand.

Other Uses of AI in ICS 314 not Listed

I haven’t used AI for other parts of ICS 314 that were not already mentioned. Overall, I mainly used AI to explain a concept to me, help debug code, or generate code for a portion of an assignment, like the practice in-class WODs, that I didn’t know how to start.

Impact on Learning and Understanding

AI software like ChatGPT has positively influenced my learning experience and has definitely enhanced my understanding of software engineering concepts. When an internet explanation of a concept became too technical for me, I received a simpler, easier-to-understand answer from ChatGPT. Furthermore, if I had questions or confusion about ChatGPT’s explanation, I could ask it to further explain the parts I was confused about. When doing my assignments late at night, asking AI for help with my code was also my next best alternative since I couldn’t ask others for help during this time. For the most part, ChatGPT can provide a helpful solution to a given coding problem or almost any issue in general. However, it’s still not perfect and occasionally does not give helpful or workable solutions.

Practical Applications

Today, AI can be found almost anywhere and is incorporated into our daily lives. For example, rather than having to check my credit card statement every day to make sure no fraudulent charges were made that day, my credit card company sends me an automated fraud alert if a certain amount is charged to my card, protecting my account. Additionally, instead of manually inputting a password, face detection software helps unlock my phone or other smart devices within a second. This adds another layer of security to my phone, as I don’t have to input my password in front of others who may be looking at my phone screen.

Challenges and Opportunities

Although AI is helpful with generating or debugging code, it’s not always accurate and sometimes provides an unhelpful solution. As a result, I would need to turn to Google to figure out how to fix my bug or error message, which took more time to do. Another limitation of using AI within the course is the temptation to use AI to do my work without understanding the reasoning behind the correct answer. With the correct answer at the click of a button, it’s tempting to ask AI like ChatGPT to provide the answer for me instead of coming up with a potential solution on my own. However, by doing so, I wouldn’t be learning concepts that may come up in future courses or interviews, which will only hurt me in the end.

With many different AI tools available, I can’t think of ways to further integrate AI into software engineering. We have generative AI resources like ChatGPT, Bard, or Co-Pilot that can help debug or generate code for semi-difficult problems such as the WODs in ICS 314. Furthermore, we have software like ESLint that helps us follow coding standards, alerts us when we have an unused variable, import, or a mismatched data type, and provides solutions on how to fix said issues.

Comparative Analysis

Compared to traditional teaching methods, AI-enhanced learning is an extremely helpful teaching method and tailors the learning experience to a person’s needs and current knowledge of a subject. If a student is not as knowledgeable in coding or software engineering terms as their peers, they can ask AI to explain various concepts to them in a way that’s understandable to them or provide code for an issue they’re unable to solve on their own. If a student is also confused by the professor’s explanation, they can ask AI to further break down the explanation in simpler terms.

However, when using this approach for learning, it is up to the student to make sure they understand the code or explanation AI provides. Yes, AI usually provides a helpful, workable solution, but it’s not perfect. AI can and will occasionally provide an unhelpful solution. It is then the programmer’s responsibility to figure out how to obtain a solution through other means or on their own. Furthermore, if a future issue comes up that builds off another issue, a programmer may not know how to solve the problem or even how to obtain the right solution if they solely rely on AI for their solutions without understanding why the AI-given solution is workable.

Future Considerations

AI will definitely further weave itself into the educational world. I could see generative AI programs like ChatGPT or GitHub CoPilot being further developed to produce more accurate results. Though it’s already been discussed, I could also see AI replacing certain educational jobs such as tutors, as students can ask for help and receive a detailed explanation within a matter of minutes from AI software.

However, software engineers will still be needed to catch bugs or identify new ways to improve AI that will be helpful for users. Although AI software could be developed to the point where it could figure out how to further improve itself, a human software developer’s perspective is still needed to determine what is most helpful for users and what could be improved upon. Furthermore, though I could see AI getting to this point in the future, most AI software cannot identify and fix its own bugs.

Conclusion

Utilizing AI in ICS 314 has been tremendously helpful in various ways. When asking generative AI like ChatGPT questions, I receive straightforward answers within a matter of seconds instead of needing to Googling for answers on my own and sorting through piles of information. Furthermore, using AI to help debug code is also a time saver, as I don’t have to manually analyze each line of code when debugging.

Although using AI in the classroom is often taboo, there are many benefits of incorporating AI within an educational environment. AI allows students to learn at their own pace and clarifies confusion on complex concepts, as AI can break down technical or complex concepts into simpler terms. AI can also be a time saver for low-level issues such as grammar checks or finding minor coding bugs. Knowing how to use and ask AI for help on various types of issues can be a powerful learning tool inside, outside, and beyond the classroom.