Everyone knows that AI is the future. It’s what almost everyone and anyone will turn to with any question, regardless if they are “tech-savvy” or not. Of course, it depends on the type of AI application being used, but AI can help with problems ranging from letters, essays, math, code, and almost anything and everything that can be thought of.
In the Software Engineering world specifically, AI tools such as ChatGPT, Github Co-Pilot, etc. are especially useful for software engineers because they can be used as a baseline for code or algorithms. Although AI is not always 100% accurate, we can use our knowledge with the combination of the AI’s output to create more efficient code that we may not have thought of without the AI’s help, or at least not as fast.
During the ICS 314 Software Engineering class, I have personally only used ChatGPT because it seemed most accessible to me. I never felt the need to try GitHub CoPilot or any other AI Platform because to me, if ChatGPT didn’t look right, then I probably could find a resource that can help me either solve my problem, or fix my question to be more clear for ChatGPT to understand what I am looking for.
I have used AI in class this semester in the following areas:
Experience WODs e.g. E18
I did not use any AI in the Experience WODs because the experiences are built around the resources and lecture videos, so I should find my answers there. Plus, there were videos at the bottom of most Experience WODs that acted as an answer sheet or even guidance.
In-class Practice WODs
I used AI in the In-class Practice WODs because due to the time pressure of class ending or professor giving the answer I wanted to be sure that I gave myself a fair shot and used all of my resources.
For example, I used AI in the In-class WOD called Murphy’s Bar and Grill, I asked ChatGPT things such as “How can I add space between an icon and text in bootstrap” for the area on the navbar showing the possible tabs (Home, About Us, Instagram, etc.).
In-class WODs
I almost always used AI in the In-class WODs because if it wasn’t to assist my knowledge, it was to check if my instinct was right. Using AI in these WODs was not only beneficial to my grade because it allowed me to finish faster, but it also gave me different ways to accomplish the task at hand or even where to start. In these scenarios, ChatGPT was usually incorrect, but even giving the base structure, like the Grid System or even the Navbar system, helped save me time, which is valuable in timed WODs.
An example of when ChatGPT helped me with a grid system would be the WOD called Morning Brew Home Page. In this WOD, I remember needing help for a few things: centering my navbar items and moving the footer. I gave ChatGPT my navbar code and asked why it wasn’t centered, then I gave ChatGPT my footer code and asked how to adjust its position to the right.
Essays
In the Essays that we wrote in this class, I never put the prompt of the essay into ChatGPT but rather told ChatGPT to check my spelling or grammar in my essay. However, even when asking specifically for spelling errors (not grammar or any other), it would still give me recommendation to fix some sentences, but unless my original sentence didn’t make any sense, I never listened because I felt like those minor “errors” were what made my essays personal and human, which I felt was enforced in class.
The prompt I always used to ask ChatGPT was: “<insert essay or parts to be spell/grammar checked>
check my spelling and grammar.”
Final project
I used AI in our final projects Home Page/Landing Page when it came to adjusting the style of it all. I was able to refer to previous assignments when it came to the basic layout, but I had a hard time making the background image fit the screen perfectly, along with the navbar and footer. However, since ChatGPT can’t import or export external sources (like my image), it was hard to get it to understand what my problem was. I eventually ended up asking “How to make the background image fit properly,” which led it to give me some tips on how to adjust the CSS code to adjust an image size. With ChatGPTʻs tips and my knowledge from experience, I was able to play around with different patterns of the code which eventually gave me what I wanted.
Learning a concept / tutorial
If I needed to know a concept for an assignment, I most likely asked AI to help me understand it. When it came to knowing the difference between two similar things (like var vs. const vs. let), I asked ChatGPT. I have also used AI to help me relate certain concepts to things I might know in real-world applications.
For example, I used AI to help me learn and understand Design Patterns and what ways I may have already used it. By knowing more in depth, I was able to write my essay about Design Patterns more efficiently. I started by asking ChatGPT “What are design patterns used for?” then asked “What are the most popular design patterns and some examples,” then, if I had a specific design pattern in mind, I asked things like “Is this an example of a design pattern” along with some code to verify that I am correct in my thought process.
Answering a question in class or in Discord
I did not use AI to answer questions in class or in Discord because I never really answered anyone’s question. I know the Professor said it’s beneficial if I did help others because it could broaden my own knowledge, but I never felt confident enough to answer someone else’ question. To me, if I can use ChatGPT and try to answer the question, so could they. So, what made my answer so special or different from what they should have already tried?
Asking or answering a smart-question
I did not use AI to ask or answer anything in the smart-questions channel because similar to my response for #7, what I could find felt like things other people could have easily found. Plus, I do not have enough confidence in my knowledge or experience to even know where to begin for some of the questions asked.
Coding example e.g. “give an example of using Underscore .pluck”
I used AI when it came to providing examples because I feel like the database of which AI platforms such as ChatGPT can pull examples from is far larger than a list of examples for a single person. Like I stated in #6, I used AI to help provide examples to Design Patterns so I could better relate and grasp what exactly they do and are. Asking AI rather than a classmate or the professor what some examples of design patterns are allows me to not only try to find the answer myself by teaching myself independent research skills, but it also allowed for me to add examples to my personal memory and dictionary on top of what the professor provided in the screencast lecture videos.
Explaining code
I do not think I have used AI to explain code so far because I feel like a lot of code is self-explanatory or explained in lecture or screen-casts, but I do foresee myself using AI to explain code in the future when I need to. In times where I start a job and want to see why a previous software engineer coded something, I would most likely put it into an AI to explain so I can either verify that I know what it’s doing or clarify what exactly a specific line of code is doing.
As an example, I would most likely ask ChatGPT (or any AI) “What does this segment of code do <insert segment of code>
.”
Writing code
I don’t think I’ve used AI to completely write any of my code only because I knew there were certain things that it did and I hadn’t learned yet so I could not verify if it was accurate or not. However, similar to #9, I used AI to give an example of what I was looking for which allowed me to copy certain lines of code.
An example of what I would ask AI would be something along the lines of “How to change the background of my navbar,” which I used for my Final Project’s Landing Page (#5), and it gave me a couple of different ways to change the color of my navbar. Although I didn’t copy what it provided, I did use the information given to play around with the code to get my desired output.
Documenting code
I never used AI to document code because I never thought about it, and I also lost my habit of actually documenting my code. However, going forward, I will definitely consider using AI to help accurately and efficiently document my code.
Quality assurance
I have not used AI to check my code for quality assurance only because I put all of my trust into ESLint since it seemed to recommend/fix everything I would even consider fixing. However, if we did not install/use ESLint, I would most likely ask AI to check my code to see if it was as efficient as it could be.
Other uses in ICS 314 not listed above
I do not think I used AI for anything that has not yet been mentioned for ICS 314.
Being able to incorporate AI into my learning and understanding process has been extremely beneficial to me because it gave me the sense of what it would be like in the real world. I have always thought, why do we have to memorize certain things as if we won’t have computers, phones, laptops, etc. with us everywhere we go in the future. Although it is still important to have basic knowledge of certain things, I really enjoyed the freedom and creativity using AI allowed. Being able to test or expand our knowledge or even thoughts with the assistance of AI, or realizing “Oh, AI doesn’t know this so it might be important that I actually know and learn it from the texts” is what I love doing most. I know AI won’t know everything completely accurately, but it was good to be able to test and practice what are the kind of things I should absolutely remember and what things AI will have my back on.
Not only did AI help me learn what I should already know, but being able to incorporate AI also allowed me to practice how to ask questions correctly. Although AI may not read into the specifics of the smart questions module we learned, being able to put into practice asking a smart question was beneficial to my learning. It allowed me to ask straight-to-the-point questions with little to no room for assumption. Being that AI’s are robots and need strict outlines (because they don’t have their own thoughts or feelings), it was important for me to ask a question that I felt could most accurately give me an answer I was looking for.
To say AI impacted my learning would be an understatement. I think AI has enhanced my learning to almost its fullest capacity, if not the fullest. Being able to practice and learn to have a healthy relationship with AI has been beneficial to me and my education because it taught me to not rely on AI, but to use it as an ally or tool. Just like it is important to collaborate with other people, I think it is also important to “collaborate” with AI, even if it is one-sided. Being able to see and learn of different approaches to coding, or life in general, is really important, and I think AI can be seen as just one of the many perspectives to view.
Some other practical applications of AI outside of ICS 314 would be other grammar/spelling checks, a possible outline for a creative short-story, a random name generator, a synonym generator, or even a calculator for complex calculations (like linear algebra). With many websites requiring payments or subscriptions, AI has been a free resource that I could consistently rely on as a tool. When it came to my Linear Algebra class, sometimes I needed an example solved, but I wanted to see the steps. However, on most websites like Symbolab or Mathway, it only showed limited steps (which were obvious and not that helpful) and required an account or some kind of payment to actually see the full solution. Sort of ironically, these calculators are far less helpful than AI because at least I could ask AI HOW they got the answer rather than just being provided the answer like the other calculators.
The only challenge or limitation I would consider when it comes to using AI would be not being able to get an accurate answer and also, its database not being updated regularly leading to more older, outdated information. When it comes to getting an appropriate or useful answer, it really does depend on how you word your question, and what parts the AI picks up on. It may take multiple tries to get the AI to pick up on the right words, which is why it is important to write smart questions where there is no unnecessary information or extra words. I think one’s ability to write a straightforward, to-the-point question weighs heavily on the output of the AI. On top of wording a question accurately, we also are assuming that the AI is up to date with accurate information. So, I would consider these two “problems” to be one of the challenges of using AI.
I think further integration of AI in software engineering education is almost a necessity. I am grateful for the amount that we were allowed to use this semester in ICS 314, but being able to explore more about AI, and especially as it changes and grows overtime would be really interesting to see. Being given the opportunity to integrate AI into my education has made me a better question-asker, researcher (from verifying the information), and has broadened my overall knowledge.
When it comes to comparing traditional teaching methods with AI-enhanced approaches, there may or may not be an obvious winner. Traditional teachings can allow for a deeper, more cemented education, while AI-enhanced teaching is more fluid and maybe even brief. However, at the same time, software engineering may be impossible to learn traditionally because there is so much changing in the technology world in general. With things constantly evolving and growing, trying to cement every little thing would never be enough because there will always be something new. Even AI itself is a growing system, idea, and tool where fluidity is almost essential to adapt to everything.
Along with the ability to be fluid with the evolving technological world, learning with AI-enhancements rather than traditional methods could also lead to more engagement with the students, since it is hands-on and works towards each individuals’ curiosity. If the student is able to dive into and learn about the things they are personally curious about, it could also lead to better retention since they are actively interested in it rather than learning a boring and general lecture topic.
I think AI is the future. AI will only get better, smarter, more efficient, useful, etc. Integrating AI into the software engineering educational process would only be beneficial to a student. Even if they use AI aggressively in the sense, they rely only on AI, they will still one day learn that AI won’t always have their back. Plus, almost like the reverse psychology idea, trying to shield students from using AI only makes them want to use it more, except now it seems more as a “bad” thing so they tend to use it mischievously. However, if using AI is openly accepted, it could lead to a better and healthier relationship between students and AI, and it could allow them the chance to actually learn how to use AI most effectively.
I think the biggest challenge in incorporating AI into the software engineering education system would be to teach a student to differentiate when the AI is wrong. Providing a student with lecture videos, readings, and screen-casts allows them to visualize and learn what is literally by-the-book correct, which they can use to their discretion to evaluate the AI’s responses’ accuracy.
Integrating AI in the Software Engineering course was the best decision the professors made for students of the course. Being able to treat AI as a resource rather than a cheating platform was very informative because it allowed me to learn to ask proper questions and check what the AI produced with what I’ve seen and learned throughout the course. Having the freedom and option to use AI also removed the pressure of having to use AI to complete an assignment or strictly use our knowledge to complete it. Being able to practice using AI efficiently allowed me to gain a sense of what the real-world might be like. We will almost always have access to some form of technology and AI, and learning to use it to benefit me and my situation best was a skill I never thought I’d really value that much.
If I had any recommendation or suggestion for optimizing the integration of AI in the future, I would maybe look into how AI works. I did a project in a previous semester where I discussed and researched how ChatGPT specifically works and where it gets its data from, however, I don’t think everyone knows. For example, I know not everyone knows ChatGPT uses a set data that was last taken a few years ago, leading to some outdated information, which can affect what one may decide to ask the AI and/or how.