Reject Tradition, Embrace Moderninity: AI in Education
15 Dec 2024
I. Introduction
With the rapid popularity of artificial intelligence (AI), using AI within educational contexts has become a growing medium to help students learn in addition to conventional learning methods. Although some people think AI diminishes the quality of learning, I believe that it benefits students when used correctly. During my time in ICS 314, AI tools such as ChatGPT have tremendously supplemented my learning when it came to understanding specific Software Engineering concepts on a deeper level, especially for topics such as Databases (PostgreSQL) and Application Design (Next.js).
II. Personal Experience with AI
Throughout my time in ICS 314, I have used AI on multiple occasions to help clarify specific concepts or work around challenges I was unsure how to handle. Here are some examples of my personal AI experiences:
- Experience WODs: For experience WODS, I did not rely on AI heavily because the demonstration screencasts would usually break down the solutions clearly, so I referred to those videos multiple times when I was stuck on a solution.
- In-Class Practice WODs: Since we were given plenty of time during in-class practice WODs, I would usually try to refrain from using AI and work on solving the problems myself. However, when I was stuck on a problem for too long, I would use AI to help me improve the code I’ve already written. For example, I would paste the question and my existing code into ChatGPT and ask it “Here is the code I have so far for the problem provided. Am I heading towards the right track? If not, what could I do to improve my existing code to solve the problem efficiently?” This would give me an idea of what to improve on and clarify the part of the problem I was stuck on.
- In-Class WODs: Since the in-class WODs were graded on an “all or nothing” scale, the added stress made it difficult to think. Also, due to the time limitations of the in-class WODs, using AI was paramount in getting me to complete the WODs within the given time frame. At first, I would try to solve the problem on my own, but after 2-3 minutes, I would ask ChatGPT questions in the same question format as the in-class practice WODs.
- Essays: For essays, I would only use ChatGPT sparingly for grammar corrections or for brainstorming ideas. Most of the time, I would write a rough draft and ask ChatGPT to refine it for me to make sure that my message was coming across clearly. Usually, you can tell when someone’s writing is AI generated because it comes off as monotonous and unnatural. However, by writing a rough draft first on my own and using AI to refine my writing ensured that I maintained my “voice” while keeping up with proper writing standards.
- Final Project: I used AI extensively to help me with the final project. Of course, I initially referred to assignments such as “Bowfolios” and “Digits” multiple times to help me understand Next.js, PostgreSQL, and Prisma better. However, I noticed that these assignments and screencasts only covered a few topics such as sending and retrieving form data from a PostgreSQL database, which was only a sliver of what our team wanted to accomplish for this project. Since there was a steep learning curve to learning Next.js, PostgreSQL, and Prisma, I usually referred to ChatGPT when there were error messages on my code to better understand the full picture of how these three tools worked with one another.
- Learning Concepts and Tutorials: AI was my go-to resource for quickly understanding new concepts. It helped me get over the difficult learning curve quicker so I could actually get to apply what I was learning.
- Answering Questions: I did not use ChatGPT to help me answer a question in class or in Discord. For example, some of my classmates in the Discord asked for help setting up PostgreSQL. Since I was able to successfully set those tools up, I would know how to address their question without needing to confide in ChatGPT.
- Smart Questions: I did not use ChatGPT to help me ask or answer a smart-question because I knew how to format my questions in a way that was understandable and specific to the problem I was facing. For example, in the Discord I asked “for E54, I’m having trouble following step 5. when I try to access GitHub Pages, it asks me to upgrade or make the repo public to enable changes. The instructions mention that the repo should stay private, but the published site will be public. I’m also not sure how to select the main branch in GitHub Pages like the instructions suggest. Could someone please clarify this process? Thanks!”. I didn’t feel the need to confide in ChatGPT to ask this question since it was something specific to this class.
- Coding Example: I would ask ChatGPT to give me coding examples such as “Give me an example of using useEffect” to help me with the final project.
- Explaining Code: When it came to the final project, I would ask “Please explain what each of these functions do and how they work” for the existing functions on the Next.js application template. ChatGPT explained how all the functions tied together and helped strengthen my understanding of client and server side components.
- Writing Code: When there was something specific I wanted to accomplish but didn’t know how to, I would ask ChatGPT to see how the code would look like. For example, I asked “I am developing a website using Next.js and React. When I click the “attend jam” button, I want a card containing this jam information to be saved onto another page in the navbar. How do I accomplish this?”
- Documenting Code: I would use AI to provide comments for code that I didn’t understand by asking “Please comment on this code and explain what each line does in detail.” This helped me grasp a better understanding of the code overall, which helped me recognize recurring patterns and improve my coding literacy.
- Quality Assurance: AI helped me troubleshoot problems and errors on VS Code. When I faced an error message that I didn’t know how to tackle or didn’t understand I would ask “Why am I getting this error [Error Message Here] in this code [Code Here]? What does this error mean?”
- Other Uses: The categories mentioned pretty much sum up all of my AI uses in this course.
III. Impact on Learning and Understanding
I personally believe that AI was extremely useful for guiding my learning experience in multiple ways. It enhanced my comprehension of topics such as Typescript, UI design, Next.js and PostgreSQL. Without AI, I feel like my understanding of the topics covered in this course would not be as in-depth, so I appreciate how AI was able to boost my understanding of difficult topics and ease the learning process.
IV. Practical Applications
I’ve used AI to help me with numerous practical applcaitions, such as my project for the 2024 Hawaii Annual Coding Challenge (HACC). The challenge my team chose to solve was the “Aloha Birds Challenge.” It was my first time getting experience with VR and working with applications like Unity and Blender, so using AI to help me understand and use these tools effectively helped cut down the learning curve time, which was especially useful considering that we only had 1 month to build an entire mobile app game from scratch.
I also used AI to help me with my UROP project titled “Exploring the Impact of Digital Design on Augmented Cognition.” In this project, I expanded upon the knowledge I gained from ICS 314 and built two fully functional websites from scratch using Next.js and PostgreSQL. The goal of this project was to explore how variations in instructional website design influence augmented cognition by leveraging principles from human-computer interaction (HCI) and user experience/user interface (UX/UI) design. To record exactly where participants were looking while viewing the two websites, I integrated an eyetracking library called Webgazer.js into both websites. Since I have never learned how to use eye tracking software before, I relied heavily on AI to figure out how to integrate this feature into my websites.
V. Challenges and Opportunities
One of the main challenges I faced while using AI was the generation of incorrect code or a complicated answer that could’ve been resolved with a simpler solution. For example, when figuring out how to reroute between different pages on Next.js, ChatGPT gave me a solution that included using useRouter. However, when I tried to implement this solution into my existing code, it turned out to be a lot more complicated than I initially thought and more errors kept popping up. After understanding Next.js pages and layouts more, I realized that I could use the Link component for navigation instead, which turned out to be 100% easier than the solution ChatGPT gave me.
VI. Comparative Analysis
Traditional methods of learning, like lectures and labs, can create a base level of foundational understanding, but these methods can struggle with scalability and personalization. Not all students have the time to attend office hours for extra help, so learning through these methods can be limiting. However, AI tools, such as adaptive learning systems, can be personalized to a student’s individual needs. A student can use AI to personalize their learning, reinforce knowledge through real-time feedback, and simulate real-life problem questions and scenarios for hands-on experience.
VII. Future Considerations
With the popularity of AI in education, it is evident that AI is here to stay, and I believe it’s better to learn how to use it to supplement your learning rather than avoiding it altogether. In the future, AI could completely transform software engineering education by making learning more personalized. AI tools like coding assistants can help students work smarter by giving feedback and resources tailored to their needs. But there are challenges too, like making sure everyone has access to these tools, dealing with biases in AI systems, and finding the right balance between automated help and human guidance. To make the most of AI in education, we need to focus on making it fair, transparent, and a natural part of learning while still valuing the creativity and critical thinking that come from human teachers and mentors.
VIII. Conclusion
In conclusion, I believe that AI is a wonderful tool to improve the quality of learning if used correctly. It offers personalized feedback and provides access to tools that can enhance understanding and skill development. However, its integration must be thoughtful to ensure it complements rather than replaces human instruction. To optimize AI’s role in future courses, I recommend training students to use them effectively and continuously evaluating their impact to ensure they enhance learning outcomes.