AI is prevalent in our curriculum, the news, and the proffesional world. We can see the effects AI are having on major aspects of our lives, especially as students in Computer Engineering/ Computer Science. Throughout this semester we have utilized AI tools to assist us in our coding projects and it has changed the learning algorithm for humans. I find myself constantly looking to AI as a useful resource when first learning a subject as well as when developing a long programming project. This course has also taught us the many dangers of relying too heavily on AI and has shown examples where AI fails to provide accurate information. This shows AI can be a very useful tool if used correctly but users should be wary of how they use it and always fact check their answers.
I have used AI in class this semester in the following areas:
During these Experience WODS I often would not use AI because often these WODS served as tutorials. These tutorials were easy to accomplish on my own without the need of AI assistance and played an important part in my learning algorithm. By going through these problems without any AI assistance I was able to problem solve and work through any misunderstandings from the lesson. This also allowed me to practice important coding habits such as committing early and often as well as setting up my coding environment. I believe it is important to utilize your brain while learning because working through a solution sticks with me longer than reading one.
For the In-class Practice WODs I would use AI in order to speed up my coding process. The lessons I learned in the Experience WODs played a large role in showing me what I needed to do to accomplish these tasks. Due to having an understanding of the solution, it was easy to ask AI assistants such as ChatGPT to write simple code blocks for me in order to reduce the coding time. This is important because the true In-Class WODs that would determine a large portion of our grade is timed. Less coding time means a higher probability to succeed in this course so the application felt natural to make. An example of a prompt I have used can be seen when working on the 'fiberoo' practice WOD. The problem was to create a function that output the first 50 fibonacci numbers in an array. I asked ChatGPT to 'write me a simple recursive function that could calculate any fibonacci number'. I knew ChatGPT would have no issue with this because it is a basic recursive algorithm we have learned in other classes. After ChatGPT created a simple recursive number to calculate a fibonacci number I simply edited the code to store each number in an array until the array reaches the target number of entries.
The In-class WODs were similar to the practice WODs but with added rigor. This did not pose a large issue for me because of the coding practices I developed during the practice WODs. Using AI to write my simple blocks of code I can then use in my programs allowed me to succeed in many of the In-class WODs.
In my time I have had many professors and TA's instruct that the use of ChatGPT in essays would be forbidden. Due to this I like to restrict the use of AI in essays for research purposes. AI is a LLM and actually excels at speech and writing abilities, but it is also able to almost instantly reference thousands of documents. This makes AI a great research tool because of its speed, unfortunately often the information provided was either redundant or incorrectly applied. This did not cause much of an issue because I often used AI as a starting point of my research to gain background and general information. I could simply ask ChatGPT to 'edit this essay and fix any grammatical or spelling errors.' and the AI would also change the sentences to be more direct.
AI was an integral part of the my work on the final project. A month is not a lot of time to fully develop a working website with your peers and apply the various lessons throughout the semester. Often my team members and I needed to refresh on concepts that we have not re-visited for some time. AI was a very helpful tool when it came to refreshing our memory on topics we have not used recently. AI also provided great insight when looking into coding examples or debugging our own code. I often would ask AI to trace my code if I was having issues or explain certain errors I was receiving in the console. Often I would ask ChatGPT prompts such as 'Explain this error I receive in the console when running this Meteor-app' with a link to my public github repo or I would copy my code into the chat bar. I would also ask it to 'trace this code line by line and tell me what each line does in the program' to better understand my code and examples found online.
I have not used AI when learning a concept or using a tutorial. I have used it to refresh my memory on concepts and summarize tutorials when referencing back to topics. It is a great too to sum things up and help get to the information you are specifically looking for. During the React tutorials I remember asking AI 'explain how useState, useTracker, and useEffect work and how they differ from one another'.
For a few group class exercises we used AI to answer various questions and compare the results with one another. Often one side of the class would use AI and the other would use traditional methods such as researching through Google. Most recently we discussed software engineering ethics using AI and it provided some good answers and some insufficient answers. Ethics and morality as concepts are difficult to program as there are almost no absolutes in ethics. Ethics can vary based on people and professions. For example, professional engineers in all fields are held to a responsibility to the well-being of the public, but business ethics are held to a responsibility to their share-holders. This conflict often leads to battles between high-level management and their engineers as their ethical standards are in disagreement. AI is simply not at a stage where it can correctly and safely identify the correct ethical solution to all problems.
I have not used AI to ask or answer a smart-question, I often reference websites such as stack-overflow and other techinical forums. Here many of the answers to our questions can be found and even solutions that do not match perfectly to our situations can give information to solve issues.
Sometimes code documentation can provide little information on syntax or the way some functions work without looking into the libraries where the functions are defined. Fortunately for us most of the resources we have used in class are all very well documented and easy to use. During my final project I often asked ChatGPT to remind me of the syntax of a certain statement or its parameters. I often asked AI prompts such as 'show me an example of a program that uses useTracker to update a program dynamically'. I also often used the code documentation to help me understand how to use the functions. Either way seems equally useful, the use of AI can sometimes speed up the process but when I was really stuck I always had to look further into the documentation.
When explaining code AI works sufficiently to sum up what is going on. Sometimes variable names can influence how the AI interperets the code and it provides an unreliable answer. This can be remedied by giving the AI additional prompts explaining the issues and it will sometimes fix itself. I often used AI in tandem with the code documentation to understand how to use certain functions in specific libraries.
When writing code AI excels with simple problems, making it perfect for solving sub-problems using dynamic programming. As problems get more difficult, AI gets less accurate and often has trouble combining multiple concepts into one working program. AI is not great at understanding how data is passed between two components and sometimes struggles to output the correct solution. AI should be used as a starting point for code but it is important that the programmer still understands how to fix the issues and is comfortable with all the practices used by the AI. Often the solution is sufficient if you can fix the variables and the way data is assigned.
AI provides more comments than I ever do while programming, but often the comments are simple and non-descript. This is not typically an issue as simple and clear comments can be the best way to document the program. Sometimes the comments can be very unhelpful because the AI cannot properly explain the process that is happening and opts for a short and broad answer.
I use AI to ensure the quality of my essays often. Using AI to help correct grammatical errors and shorten papers is very useful. If I have ever written over the limit in one of my papers all it takes is inputting my words into an AI assistant and typically it removes all of the filler words.
I believe AI has helped me greatly to learn concepts quicker and understand them easier. As explained above, AI has helped me by summarizing concepts I have not used in some time. When it comes to first learning a process or new coding language I still believe working through tutorials is a very important step. I think AI can be both a benefit and a hinderance to learning comprehension. It is easy to skip steps and simply ask ChatGPT for help, but when projects get more complex it can be difficult to solely rely on AI. It is important to make sure that programmers still understand how to use a certain language and how to build upon differnt components. If reliance on AI is too heavy then it can be an overall detriment. When used properly it can definitely speed up the development of skills and ehance problem solving abilities. I have been able to find solutions relatively quickly except for the most difficult sections of the final project. In my personal experience I found myself asking AI to explain how certain functions work or using it to trace my own code more than I have asked it to write blocks of code.
AI has many practical applications that can be applied to the real world. In my experience I have had a lot of success when using AI as a research tool. AI is able to very quickly find information on certain topics. I have personally found AI to be very useful when it comes to summarizing subjects and finding key ideas. By learning key ideas to subjects it makes further research a much easier task. Instead of aimlessly reading articles and trying to find credible sources, you can start with a route to success. When using AI to dive deeper into topics, the AI can have difficulties expanding on surface level knowledge. Right now AI is a useful tool to expidite processes but it is still simply a tool.
I often ran into challenges when utilizing AI, it is still a new technology and can be improved upon vastly. When using AI I ran into issues when using it to create code or solve issues in existing code. When asking it to write code or using it to debug existing code, the AI has some problems properly diagnosing problems. This is apparent when asking it to perform complicated tasks, it often gets slightly confused but gives a solution very close to optimal. It still makes coding much more efficient as I can look at the code that it has produced and edit it to work. But it seems we are stil far away from being able to simply copy and paste code blocks to create projects. There are many opportunities to implement this in software engineering education. Teachers can ask AI to create various pages and projects, then ask students to fix the code in order to have the project work correctly. AI can also be utilized to help students understand any provided solutions to coding exercises. For example, many other courses provide students with solutions that are simply blocks of code with minimal explanation. When met with these types of solutions students can have difficulty understanding how solutions work if they are not well versed in the concepts. In the future students may be able to ask AI to trace the code given to them in solutions to help them understand why their attempts did not work.
AI enhanced learning has both positives and negatives when comparing it to the traditional methods of learning. AI enhanced learning can help streamline the lessons and help students implement multiple concepts into a solution. One weakness AI has in comparison to traditional learning is that it can create a temptation for the student to not actually learn the concepts. For much of the early period of the class I could have input the problems directly to AI and have it completely solve it for me. This can be a large temptation for students to quickly finish their work without practicing the skill they need to improve. As many students have multiple responsibilities it can be very tempting to get a few extra hours of sleep and not properly learn the material. Fortunately I forced myself to go through the tutorials and learn the basics of programming. This prevented a large disconnect between my understanding of the topic and what I as able to producing in the learning modules. Solely utilizing traditional learning methods was not the ideal method either. Initially I attempted to learn solely through the traditional route, but I was met with some difficulties during the semester. Although I was practicing at home with the practice WODs, occasionally I would forget a part of the solution or leave something out. I learned from that point that utilizing AI to help me refresh my memory was the best option. Looking over old repos and trying to remember something I have forgotten wasted precious minutes during the in-class WOD. When I utilized AI to summarize and quickly look up information I needed I found myself being much more successful. I found myself able to reach quicker solution times than I was previously able to do without sacrificing my understanding.
AI has great potential for the future of learning, but is not without pitfalls. The ability of AI to quickly find information will be invaluable for the students of the future. AI is simply a tool to help students and professionals become more efficient. Its use in the future will surely advance, probably to a point where it is able to handle complex problems with ease. The learning system will also advance with it and humans should theoretically be capabale of much more. In the past, advances to efficiency and production provided humans with more time and opportunity to seek higher education. I see AI in a similar light, it may take over simple processes but it will also facilitate the growth of humanity. Similarly to how search engines minimized the need to scour library stacks, AI will minimize the need of scouring online resources. The search engine did not make libraries obsolete, but instead allowed it to become more streamlined and efficient. The role of the librarian changed only to facilitate the new tools available. Libraries are still very much established in learning systems everywhere, and many of the traditional learning methods will still be utilized long into the future. AI should only serve to expidite processes and become an added tool to the toolkit of educators and students.
Overall my experience utilizing AI during my learning process was positive. It helped me better understand concepts that I may have skimmed over too quickly during my first pass of the material. AI can serve as a safety net to raise the baseline of each student providing them a tool to act almost as a personal tutor. Much like how a tutor cannot help you during your exam, AI cannot currently help you with complex problems. Tutors can guide you to understanding problems you may face in your exam by practicing easier problems with you and explaining the basic concepts. The tutor can then utilize these smaller problems to demonstrate how to tackle more difficult problems to help you get to the solutions to many more difficult problems. Then when it is your turn to solve the hard problem on the exam, you are equipped with the tools to solve it.