
With the ever-changing prevalence of AI in the current education sphere, it finds itself very present, especially in computer science. This is due to the ability of AI to simply create blocks of code itself, without the need for understanding on the user side. Throughout the course of my Software Engineering course, I had found myself rarely using AI due to my reluctance to it in regards to learning. I had, however, used it somewhat via ChatGPT and Co-Pilot.
In my software engineering class, my use of AI can be concluded with the following list.
WOD pertains to work of the day, meaning coding exercises assigned to us as homework, in-class practices, and graded in-class WODs. Regarding these WODs, I did not use AI since I believed it would help most to my practice and understanding to create code myself. This would familiarize me with writing it, so that I could customize it in future projects. I mainly used online resources like documentation and StackOverflow to help me.
In regards to essays, I did not use AI due to the fact that it seemed generic in the output it gives. I find that if I write essays myself, it helps my skill in creative writing and allows me to write essays faster overall.
For the final project, I used AI frequently to write code. This is due to the fact that in the final project, I was not actively trying to learn new concepts, but simply enacting them in code. Since I had already come to some understanding of previous concepts taught in the class, using AI would still allow me to understand the code it had written, but produce it much quicker than I could have.
For learning tutorials and concepts, I did not use AI. This is because all the resources I needed for learning were provided by the course, and any questions I had could be answered through documentation online.
For most questions I had in class, I had always found a StackOverflow question also addressing the same issue. There were some issues, however, in regards to installing certain software for coding that I had used AI to help resolve. For example, installing PostgreSQL had some issues on my laptop that I used AI to find solutions to. This helped by saving time, since I could not find any similar problems online that worked.
For smart questions, I found that most answers could be found already solved on StackOverflow or in the documentation of the code. This waived my need to use AI in almost all cases.
Most issues of coding examples were already provided in tutorials that taught them or could be Google-searched online, which meant I did not use AI for them.
In regard to explaining code. I had used AI for Regex (regular expressions) due to my lack of understanding of how it worked and the confusion in creating them. For most other cases, I went to tutorials online or documentation.
For writing code, I did not use AI in this course. This is because writing code myself often seemed easier, specifically to tailor it to my exact needs, rather than AI guessing them.
For documenting code, I found it was easier to document the code myself, since it seemed faster than prompting AI.
For quality assurance, most issues were easily resolvable since I did not go into code that was too complicated. For ESLint errors, for example, errors were stated in the IDE that gave the line and the exact issue present.
I do not believe that I have used AI for much else in this course and prefer doing things without it unless it is for a project or personal project due to how it limits learning and understanding (in most, but not all, cases of use).
Overall, I feel that AI does limit learning if you are using it to create code for you. This is because, in those cases, you do not often understand how or why it uses each method to find the solution to your problem. This leads to a gap in understanding between you and the concepts you are learning. However, this does not mean that AI is completely bad; AI can be used to explain code, which can actually boost understanding if one has not used it. It can also create unique problems to solve, which can be a good practice in learning.
As stated above, AI can be helpful in explaining and teaching code. In addition to this, AI can be used for certain problems that do not fit static definitions. For example, if you were to describe a car and were looking for similar cars, AI could be used to find one without the need for another person. This solves issues with software engineering where you would not need specific categories like SUV, truck, or van, but instead return general similarities.
AI provides challenges to student learning due to the ease of use it provides in simply bypassing any need for understanding code. This is both beneficial and detrimental. It is detrimental to students who need to learn key concepts in computer science and skip them due to the use of AI. The other side of this situation is that students can skip unnecessary concepts like specific uses of API or other such things. If a student is never going to use certain functions or documentation for certain, they can use AI to quickly grasp and use the code even without understanding. This can bypass hours of reading when understanding is not required.
I believe it is ignorant to ignore the ability of AI to simplify work in any situation. This is due to the fact that AI will not degrade and will only improve with time. As AI improves, people will need to adapt to its capabilities, or they will only find themselves worse off than others. The most important thing regarding AI is the direction of use. AI is simply a tool, and like any other tool, AI can be used in good or bad ways. The direction in which one uses it defines how it helps or hurts.
In conclusion, I find myself not often using AI in class or on assignments given, unless the assignment does not pertain to learning or understanding a concept. This leads to my use of AI in speeding up writing code, not bypassing learning it. In addition to this, this is how I feel AI should be used in the greater scope of use; It should be used to help guide and propel one’s coding instead of sheltering oneself from understanding how their own code is being used. I found my software engineering course to be perfectly balanced in terms of allowing the use of AI, since even while using it, you would not be able to perfectly complete the WODs in time if you lacked any understanding. I believe this mix is well-suited for classes in general and was very refreshing to see.