The one thing Artificial Intelligence (AI) should be seen first and foremost as a tool for learning and secondly as an assistant, insert here Jarvis or Cortana (think Halo, not Microsoft’s failed version). Pre-installed with my laptop came Copilot – “Microsoft Copilot: Your AI companion”, which I was initially hesitant to use as I felt to do so would accept that I lacked any ability to work in the field of Computer Science, a mistake I made despite not having coded for a while. I spent the first week couple of weeks going through the class introduction materials, googling, and viewing stack overflow posts, which took a lot of time and what answers I could try to apply would often just end up with my code returning errors. So eventually I began to use Copilot. I could give it just about any topic related to Software Engineering, ask for help with my code, or if I needed some quick information about a history topic for my philosophy course, it could pull that information if it wasn’t copyrighted.
Experience WODs e.g. E18
It’d had been a long time since I took my last ICS course, so I had slacked heavily on honing my programming skills and I needed to focus heavily on the given class materials to rehabilitate myself. Most of the assignments came with a tutorial courtesy of Professor Moore. Regardless, I still had a hard time adjusting to the workload, so I used Copilot for assistance on many of the Experience WOD assignments.
In-class Practice WODs
Technically, I also did use Copilot for most in-class practice WODs. Most of the in-class practice WODs were like our assignments a couple days prior and because I had used Copilot for those assignments, so I would look back on my prior assignments during this time.
In-class WODs
WOD: Typescript 1 was the only WOD I didn’t use AI on. When I came into class the next week for WOD: Typescript 2, I struggled heavily. I reviewed the class material, I watched Professor Moore’s video, but alas I didn’t finish in time and got a 0 for that assignment. So I came in the week after for WOD: Typescript 3 and I used Copilot, I passed. It didn’t matter to me anymore if I had to accept that my programming abilities were indeed subpar, I just knew that I wanted to pass. I was new to Typescript, I never coded my own webpage before, and I was learning how to properly use AI, so I still had a good amount of challenges to overcome.
Essays
Except for my E63: Reflect on design patterns essay, most of my essays were originally written by me. I love to read novels, I enjoy comedy, I was never an excellent writer, and I make a lot of grammatical errors, but I enjoyed writing my papers for this class as I would often type sentences expressing my sense of humor and sarcasm. However, I at least wanted to test it out and see what would happen if I asked Copilot to write my essay for at least once me, and my god the first iteration of that essay was a sore disappointment. It was so lifeless. I gave it my previous essays in a failed attempt to have it incorporate my style of writing, I would’ve been better off writing my essay myself and then asking it to fix my grammatical issues. Which funnily enough I will be doing for this paper.
Final project
The use of Copilot was a necessity for me to properly develop my final project along with my team members who prefer to use ChatGPT for their work. A technique I learned during the WODs when we began using Nextjs, was that you can give Copilot your code in segments, and then ask it to see the relation between the files and make necessary changes to create what I want as it will retrieve that information later in the conversation. I would have to tell it not to respond as I would feed it code as it would give unnecessary responses or make alterations I haven’t asked for. It was quite helpful in that I couldn’t create a lot of the functionality for my webpage, but it was still a challenge trying to get everything to work together.
Learning a concept / tutorial
I never knew how to properly set up a database prior to this course, and I don’t think I have a good grasp on that subject yet. However, for the purposes of using Postgres and getting my Final Project up and running on Vercel, Copilot was helpful in giving me the quick run down of how to set it up. As for when I had to complete the tutorials on learning Typescript, I struggled and took my time in completing those, as I was still reluctant to using AI.
Answering a question in class or in Discord
I sometimes gave an answer to a fellow student on Discord, but I can’t recall if I used AI or not. I don’t think that I ever asked any important questions for myself in our chats as I think I began just asking AI for clarification or help to my own problems.
Asking or answering a smart-question
Again, I would answer fellow students sometimes, but I can’t recall if I assisted them with AI or not. Most of the time someone else would answer their questions. And again, thanks to Copilot I could have most of my inquiries answered hastily.
Coding example e.g. “give an example of using Underscore .pluck”
I couldn’t remember how I’d go about creating a simple program like our Jamba Juice assignment for example. So, I used Copilot to give me examples on how I might go about creating the program. I used it to relearn how to code, because I forgot even the basics of object-oriented programming.
Explaining code
We had Professor Moore’s videos to assist with explaining the code, but often I’d be left confused. I needed a lot of clarification so I would ask Copilot to break things down and explain the code to me, so I’d know how things worked more in depth.
Writing code
As I’ve stated several times in this paper now, my programming capabilities were limited, and I wouldn’t have made it this far without using AI. I did in fact use AI to write the code for me and it did feel like cheating. I’m not sure how it was for other sections, but Professor Conner’s use of loud music and psychedelic videos displayed on the classroom TV Screens gave the in-class WODS an added level of difficulty for me, so I was just relieved whenever I passed one and I forgot any guilt I had for using Copilot.
Documenting code
I didn’t use Copilot to document my code, heck I didn’t do a lot of documentation like I did in previous ICS courses as we weren’t graded on that for our assignments. It was all very fast paced and many of the assignments didn’t feel personal enough to warrant documentation. I guess maybe I could’ve made more use of it highlighting the parts I contributed to my Final Project however.
**Quality assurance e.g. “What’s wrong with this code ” or “Fix the ESLint errors in ”**
Using Copilot came with some challenges. Many times, after asking Copilot to implement functions, sometimes it would include unnecessary imports or variables that weren’t being called and had to be modified or removed. For these issues, I would often check if it’s something I could fix myself or VSCode could automatically fix, if I couldn’t fix it myself I’d point out to Copilot that it had made an error and usually it’s able to fix its own mistakes.
Other uses in ICS 314 not listed
I think I answered mostly everything I used Copilot for in this course.
Throughout my academic journey, I often struggled with comprehending subjects and developing tangible skills, which left me feeling inadequate as a student. However, using AI, particularly Copilot, became a turning point for me. It assisted me in completing my assignments on time while presenting challenges that compelled me to enhance my problem-solving abilities. Although Copilot sometimes produced complex solutions that necessitated my intervention, this process ultimately fostered my growth as a programmer. Moving forward, I am committed to advancing my skills independently.
I recently discovered an intriguing application of AI in a version of Minecraft that’s entirely AI-generated. The developers trained an AI model with numerous images of Minecraft, creating a playable version, albeit with some limitations. This AI-generated world mimics the dream-like experience where the landscape changes unpredictably, reflecting the ongoing challenges developers face in perfecting advanced AI systems.
Transitioning through various programming languages and frameworks—from basic Typescript to HTML, REACT, Bootstrap5, and Nextjs—Copilot showcased its extensive knowledge and adaptability. While I heavily relied on Copilot, my logical reasoning played a crucial role in validating its implementations. The integration of AI in my assignments was not restricted, provided we acknowledged its use. Despite AI’s assistance, future software engineers will continue to rely on their ingenuity and problem-solving skills to succeed.
In my last ICS course (ICS 212) at Leeward Community College in 2022, I relied on conventional learning methods such as lectures, note-taking, class discussions, and various resources. This semester’s approach differed significantly as I frequently sought AI assistance for coding and resource identification, resulting in a more responsive and personalized learning experience. While overreliance on AI poses challenges, balancing traditional and AI-enhanced learning methods can maximize educational outcomes.
The use of AI in education and software engineering is poised to grow. AI has been instrumental in expanding my programming knowledge, despite occasional errors in code generation. The continuous advancement of AI promises to address these errors, emphasizing the importance of user understanding in creating effective solutions. Software engineers and aspiring coders must grasp the fundamentals to remain effective problem solvers in an AI-driven landscape.
Reflecting on my journey with AI in ICS 314, I’ve realized that my initial reluctance was unfounded. Embracing AI has not only enabled me to keep up but also facilitated a balance between traditional and AI-assisted learning. Although I’m still catching up to my peers, I’m proud of my progress, which owes much to my willingness to leverage AI as a tool while applying my logic to ensure the functionality of my projects. Moving forward, Copilot remains an invaluable companion in my programming endeavors.