ChatGPT was released on November 30, 2022. In just roughly one year, it has become a hot topic, with practically everything in the world wanting to add the word ‘AI’ to their product. In terms of education, AI seems to be more of a cheat tool than being ‘educational.’ Unlike other cheating tools, cheating using ChatGPT is somewhat hard to detect, especially if the cheater really knows how to use it.
What about software engineering? Can ChatGPT replace Software Engineers? The answer, in my opinion, is not yet. The factors that software engineers need to consider to create an application are numerous. For example, should I use React.js or Angular.js for the front-end? What about the back-end and database, and how do I integrate them all together? Not to mention the various versions and systems that need to be accounted for.
Perhaps it can generate a good result for smaller applications or functions, and that’s how it is usually used in the 314 class. Personally, I didn’t use ChatGPT much for ICS 314 because the results didn’t often match what I needed. However, I did use it extensively for test cases and grammar checks in my essays.”
” or “Fix the ESLint errors in ”
I believe all software engineering concepts start with a really simple question, and software engineers elaborate on it, expanding it into a concept. I always use AI as a concept simplifier and example generator that assists me in learning and understanding. It is interesting because the central idea of AI is basically a mathematical model that is trained with thousands and thousands of data points, and that is exactly how I learn. Once I have my central idea, I use AI to provide me with thousands and thousands of data points until I thoroughly learn and understand the concept.
I think we have mentioned it a billion times: software engineering is not just about coding. Software engineers need to know quality assurance, testing, maintenance, updating to the latest versions, and other skills that are not directly related to programming. Therefore, to create just one good software requires a team with different specialists. Can AI do all the jobs by itself? In the short future, no. However, it does assist humans to make it easier and more efficient. For example, in one of the average movies, Tony Stark successfully creates a time-traveling device by feeding data to his AI ‘F.R.I.D.A.Y.’ and having it simulate many possible results. This can be the future!!
The current limitation of commercial AI, such as ChatGPT or even Copilot, lies in their input. Because they’re all using LLM models, they usually accept input from sentences and work with that. However, in ICS 314, many assignments are embedded with templates and various materials, and unfortunately, most AI models don’t have the capability to handle files as parameters to generate results. One potential solution could be to convert all the files into Word format and let the LLM model handle them. However, this process could introduce a lot of typos and human errors, resulting in faulty AI-generated output. Additionally, individuals with poor writing skills can mislead the AI, leading to inaccurate results.
Traditional teaching methods often make students heavily reliant on teaching materials and good searching skills for Google and other search engines. Search engines use keywords to produce results, so if students don’t know what to search for or where to start, it can slow down the process of knowledge retention. However, with AI, students can ask whatever they want because it analyzes context instead of just keywords, and AI can produce a relatively good result. Even though the result may be general, it at least directs the student on the right track. Overall, AI is really just a modern tool that students can surely learn, but it still requires students to be self-motivated in order to achieve a positive result.
At this level of software engineering education, AI can really help in giving students the right direction to work on. I think the challenge lies in whether students can use the tool correctly to genuinely aid their learning or if it’s just going to become a new cheating tool that is extremely hard to detect. Can AI substitute all the teaching staff? I think not. This is because AI produces results based on input. Assuming students don’t know anything about software engineering, providing AI with random input can risk steering the student onto a wrong software engineering career path. Additionally, AI should take input not only from texts but also from video, images, audio, and other files. In that case, AI can be embedded in any format and really assist students in any condition.
In conclusion, AI is like an after-school teacher that can teach you anytime you want. Additionally, it produces a proper result that at least won’t mislead the user and saves time searching through the internet. Similar to teaching kids to use a computer, a software engineering course with AI should first teach the students how to use AI or what kind of prompts are appropriate to ask. With all those prerequisites ready, students can start using AI that assists them in learning, and more importantly, the AI is used in a way that is actually educational.