The progress of AI technologies can be called many things. Some may say it has opened the door to making once nuanced tasks into easy-to-dos. Others may say it has ruined the education system, creating a generation of individuals focused on getting the work done rather than learning from the experience.
For software engineering students, ChatGPT has opened a funny can of worms. For years, other majors had Google to solve their problems. For programmers, it has been a lot more difficult to find answers on a confusing string of code. But ChatGPT has, in a sense, leveled the playing field for access to answers, whether they be wrong or right.
In my personal experience with ChatGPT, it has been a helpful tool to find errors or try to understand the significance of a line of code. I do think it is important that users use the program with discretion as it is not always accurate.
I have used AI in class this semester in the following areas:
Experience WODs e.g. E18:
For these, if I had difficulty, I would just watch the tutorial video. I did not feel the need to use AI as I had a lot of time to complete these tasks. It was important to understand how these WODs worked to prepare for the in-class ones.
In-Class Practice WODs:
During in-class practice WODs, I relied on good old-fashioned brain power. I did not necessarily complete 100% of these practice WODs, but for the most part, I was able to walk out with decent results. I did not use AI because I did not feel the pressure to HAVE to complete these practice assignments. In fact, I relied more heavily on discussing ways to complete them with my peers in a mutually beneficial setting.
In-Class WODs:
I’d like to bring the reader back to the worst day of ICS 314. The day I DNF’d on UI Design (React). Better known as not completing a WOD. Going into the class, I was not confident with React. I tried relentlessly to find my error, even attempting to use good old ChatGPT, but I kept getting stuck with the notorious white screen! I left that class slightly defeated. I did make an attempt afterward to redo the WOD again; however, I was still unable to find the solution. Perhaps my eyes became accustomed to seeing the wrong code as correct, and no matter how hard I searched for Waldo, he just could not be found.
Essays:
On my list of things I want to do, I would say writing an essay is at the bottom of the list. I spend all day at work replying to emails in precise and condensed information. So to switch to a lighthearted but still professional format is quite dreadful. Luckily ChatGPT always has a couple of ideas. For example, it recommends writing about cooking in reference to design patterns. I also rely on it to come up with headers because my mind is just not creative enough after a long day. I will say that for this entire essay, I have made it a point to not use AI for a single thing!
Final Project:
In my experience with the final project, I have only used AI to help generate equipment and workout descriptions as I am not too familiar with workout-related things. I feel that trying to use AI would result in poor quality pages or ones that don’t function as smoothly. I think it is better to create and understand your app or even reuse ideas from other people’s projects, but to do so, you have to have a good idea of how all the pages and components work together.
Learning a Concept / Tutorial:
Why rely on AI when our “experiences” provide sources that explain each of the concepts really thoroughly? If anything, I might look toward a YouTube video for more in-depth lessons. ChatGPT is limited in its capabilities to provide accurate information and should not be heavily relied on as a source of teaching.
Answering a question in Class or in Discord:
I have never answered a question in either. I am too nervous to give someone inaccurate information in such a large group message. If I were more confident I knew the answer, then I would most definitely help. I feel like attempting to answer such complex questions with AI might take longer than someone just reading the error message they are receiving.
Asking or Answering a Smart-Question:
I prefer to struggle over a problem until I find a solution rather than ask a smart-question in a group message. I do acknowledge there is a little but of unnecessary suffering that goes along with that.
Coding Example e.g. “give an example of using Underscore .pluck”:
Typically if I want to see an example, I will look at another section of code that I know uses it and that it works. If you rely on AI for an example, it may give you one that is inaccurate, and I would prefer not to rely on something where I do not know if it works.
Explaining Code:
Yes, sometimes you write something and then you forget why it was there or what it was even doing, so I might try to get an idea of its purpose with ChatGPT. Usually, I will ask it to add comments to a section of code to make things clearer.
Writing Code:
No, because this is a really bad habit that I would prefer not to fall into. I will have it generate default data for our final project because it is just a repetitive task.
Documenting code:
Yes, but with caution, you want to make sure it is commenting something accurate. However, I haven’t been maintaining the good practice of commenting by code as of late.
Quality Assurance:
I feel like ESLint has been doing a good job of finding those errors. Also, sometimes ChatGPT has weird formatting or it skips lines of code, so it is not something that should be relied on.
Other uses in ICS 314 not listed above:
I would say the above list was very thorough.
The integration of AI tools like ChatGPT into software engineering education has both positive and negative impacts on learning and understanding. On one hand, it provides quick access to information, aiding in problem-solving and code comprehension. Students can clarify concepts, receive code examples, and even generate code snippets. For instance, AI tools could enhance personalized support for teachers by providing real-time feedback and suggestions.
However, this convenience may lead to a dependency on AI, hindering critical thinking and deep understanding. Over-reliance on AI could diminish the need for active learning and exploration, potentially reducing the depth of understanding gained through hands-on experience and collaborative learning. This is akin to students relying solely on calculators without fully understanding mathematical concepts.
The accuracy of AI-generated information may vary, posing a risk of misinformation if not used discerningly. Just as there’s a concern about potential misuses of AI in education, in software engineering education, students may face challenges if they rely too heavily on AI-generated solutions without fully understanding the underlying principles.
Thus, while AI tools like ChatGPT can augment learning by providing quick access to information and supporting personalized learning experiences, they should be integrated into software engineering education thoughtfully, complementing traditional learning methods rather than replacing them entirely.
AI tools can serve as a valuable resource for students in various scenarios, including:
Problem-solving: Students can use AI to debug code.
Assistance in documentation: ChatGPT can aid in code commenting and documentation.
Idea generation: It can assist in brainstorming for project ideas.
Quality assurance: While not a primary tool, ChatGPT can supplement code review processes by providing alternative perspectives and identifying potential issues.
The use of AI in software engineering education poses several challenges that need to be addressed. Firstly, there is a risk of dependency, where students may become overly reliant on AI tools, which could hinder the development of critical thinking skills. Moreover, ensuring the accuracy of AI-generated content is crucial, as it may contain errors or provide incomplete information, requiring careful validation by students and educators. In order for students to identify these errors, they need to understand the function of the code that AI is generating. Ethical considerations also come into play, as students must navigate issues such as plagiarism and bias when using AI tools. These challenges require thoughtful integration and guidance in the use of AI in education to mitigate potential negative impacts on learning outcomes.
Despite the challenges, the integration of AI in software engineering education also presents several opportunities. AI tools can provide personalized learning experiences tailored to individual student needs and preferences, enhancing the overall learning process. Additionally, AI can streamline tasks such as documentation and code generation, allowing students to focus more on higher-level concepts and problem-solving. Collaboration among students can also be facilitated through AI tools, providing a common platform for sharing knowledge and seeking assistance. By harnessing these opportunities, educators can create engaging and effective learning environments that prepare students for success in the field of software engineering.
While traditional methods emphasize hands-on practice, critical thinking, and collaboration, AI tools provide instant access to information, personalized assistance, and automation of routine tasks. However, reliance on AI may diminish the depth of understanding and discourage independent problem-solving. Therefore, a balanced approach that combines the strengths of both traditional and AI-driven learning is essential to foster comprehensive software engineering skills.
Looking ahead, the future of AI in software engineering education holds promise for further innovation and improvement. Considerations for future development include:
Enhanced accuracy: Continued advancements in AI technology should focus on improving the accuracy and reliability of AI-generated content.
Ethical guidelines: Establishing clear ethical guidelines for the use of AI in education to mitigate risks such as plagiarism and bias.
Integration with curriculum: Integrating AI tools seamlessly into software engineering curricula to support various learning activities and assessments.
Research and evaluation: Conducting research to evaluate the effectiveness of AI tools in enhancing learning outcomes and addressing challenges.
The integration of AI, exemplified by tools like ChatGPT, has brought about significant changes in software engineering education. While offering unprecedented convenience and efficiency, it also poses challenges such as dependency and accuracy issues. However, by adopting a balanced approach, educators can harness the benefits of AI while mitigating its drawbacks. Looking ahead, continued innovation and thoughtful implementation of AI in education hold the potential to transform learning experiences and empower future generations of software engineers.