Showing posts with label computer science. Show all posts
Showing posts with label computer science. Show all posts

Monday, September 8, 2025

Analyzing Malware Safely: A Virtual Lab for Cybersecurity Research

Evan Brown, Verrazzano Class of 2025, completed major in Computer Science 

For my capstone I created a virtual malware analysis lab, with the objective of having a fully functional and safe environment to run and analyze malware without any risk of causing real damage. Cybersecurity is my passion, and it is a vast and changing field. On my journey, I realized I had yet to uncover the world of malware analysis, which sparked my curiosity. I used to watch YouTube videos of detonation of malware, but now I could do it myself.

Malware and cyber threats continue to evolve, which makes it so important to have analysis in order to develop the proper counter measures and awareness. I had some general knowledge of how I would go about setting this kind of lab up beforehand. I knew I would need virtual machines, which are software computers inside your actual computer, to keep the effects of the malware isolated. I also knew there were a lot of safety precautions I would have to take and thoroughly familiarize myself with.

 

Once I chose the virtual machines I would be using, the setup process turned out to be long and challenging. Many of the tools I needed were sensitive downloads which led to many things going wrong. Any issue in a single download could lead to hours of troubleshooting. Many things did not download properly, were outdated, or were not available anymore entirely. These problems were frustrating, but I didn’t let it deter me and I eventually was able to set up everything that I wanted, or made compromises when I had to. That was the least fun part of the project, and I was glad to get it out of the way early.

 

The rest of the setup dealt with setting up a private network for the virtual machines, which didn’t cause too many problems. Surprisingly, once everything was set up, the rest of the safety precautions were easy to put in place and remember, relieving me slightly of the stress of beginning to run real world malware. I didn’t detonate my first piece of malware until I was absolutely sure it was properly isolated and safe. Despite my confidence and triple-checks that everything was ready, the first time was extremely nerve-wracking. After that however, it became easier and easier. Thankfully there have been no accidents so far.

 

The next major step was to learn how to analyze this malware I could now safely run. This was a very fun process to learn the techniques, and then immediately put them into use on my own desktop, which was incredibly rewarding.

 

The greatest part about this capstone is that there is no end to the techniques I can learn, and malware I can analyze. I may have the fundamentals down, but there is so much more to explore. With my lab fully operational, I can now focus entirely on expanding my knowledge. Overall this was an extremely insightful project opening a brand-new door to cybersecurity and a potential career field. My use of this lab is far from over, as I continue to expand my expertise in this field.







Monday, February 17, 2025

Scratch, The Beginning of Coding for Young Children

Bayan Khalil, Verrazzano Class of 2024, completed major in SLS Early Childhood

Through my research, I gained a profound understanding of the significance of digital literacy and computational thinking. Initially, when introduced to Scratch, I harbored little interest. However, collaborating closely with my mentor Dr. Ting Yuan enlightened me to its potential to revolutionize the landscape of computer science.

When looking at today's job market it is revealed that the most high-paying and sought-after positions involve some form of coding. With no prior coding experience, I wondered how individuals could grasp such concepts, especially later in life, when we could introduce this process at a younger age to ensure accessibility for all students. Not only would students acquire fundamental skills essential for future employment, but they would also develop a deeper comprehension of the digital realm, enabling them to navigate it more adeptly than ever before.

The integration of computational thinking into school curriculum is pivotal for children's development, fostering problem-solving skills and enabling them to discern its real-life applications. This structured problem-solving approach proves invaluable not only in coding but also in real-world scenarios.

My journey with Scratch opened my eyes to how a children's digital platform could revolutionize STEM education in schools. It stands out as an exceptional introductory tool, presenting a block-based interface that allows them to develop both technical and creative skills. My research underscores its superior engagement compared to traditional teaching methods. Students are naturally drawn to its interactive nature, fostering an environment where they can experiment and take control of their learning, potentially reaching a level of proficiency sought after by high-tech industries while still in school.

Scratch transcends barriers, fostering inclusivity and accessibility, particularly for students with disabilities. It not only facilitates communication but also encourages creative exploration and bridges language gaps. Most importantly, teachers play a pivotal role in facilitating this learning journey. They serve as guides, ensuring a smooth learning process tailored to individual needs. As I prepare to embark on my career as an early childhood educator, I recognize how this shift in teaching methodologies emphasizes the importance of understanding students' preferences and leveraging technology to enhance their educational experience.

My collaboration with Dr. Yuan has fundamentally altered my perspective on teaching, enriching my understanding of how to become a more effective educator. I am immensely grateful for the opportunity to work alongside such an exceptional professor and eagerly anticipate future collaborations. Even as I graduate from college, my journey with Scratch is only just beginning.



Monday, January 27, 2025

Building a Free Code Assistant

Prince Addo, Verrazzano Class of 2024, completed major in Computer Science and minor in Mathematics

For my capstone I worked on a free and open-source AI(Artificial Intelligence) code assistant. More specifically, I built a free and open-source neovim plugin called ollama-pilot.nvim that uses the ollama framework for open-source model integration. Although AI code assistant’s tools have quickly become popular amongst programmers, their close-source nature has been contentious. My project is novel in that it is the first implementation of a completely open-source code assistant.

I’ve had a real interest in hacking ever since taking computer science seriously after graduating high school. The idea of creating clever tools to break into systems piqued my interest; it was a mixture of technology and art, which I was exploring at the time. In order to successfully break into a system, like a true hacker, you must first understand the ins-and-outs of a system; only then can you creatively break it—like Picasso once said, “learn the rules like a pro, so you can break them like an artist.” Although I was never able to fully pursue hacking, this interest led to me learning about software development, Linux, and most importantly, open-source.

To me, open-source is a positive and peaceful place; there exists bad actors and people with ulterior motives, but similar to capitalism or blockchain algorithms, unless the majority of the system consists of bad actors, the system will function as intended. In computer systems, the source-code is the truth, therefore if someone hides or obfuscates the source-code then they might be lying—and one can argue that they probably are. As the name implies, open-source is about making the source-code open to the public to view, therefore it is the ultimate expression of honesty that can be made. If the source-code is available, and you want to know whether a program is not doing anything malicious, you can just read the code. If it’s not available, you have to operate on the trust-me-bro principle, which is infamous for being precarious in the computer industry.

Open-source is also a place to share and collaborate on projects with like-minded people. This builds confidence and a sense of community, which is important since the practice of programming is often isolating. I’ve met some of my closest friends working on open-source projects. Open-source can be taken further by making it free; the term free is not free as in price, all open-source projects are by nature free, but as in the freedom for anybody to modify the source-code in whichever way they want. If any security concern was introduced, instead of being only able to detect it, they would be able to remove it.

I came across Vim, a free and open-source project, really early in my programming journey. Once you’re in the realm of Linux, Vim is bound to come across your radar. It took me a while to appreciate it, but as I got more proficient, I gained more respect for it. It always felt a little too difficult, so I was never able to fully dive into it until NeoVim came out. NeoVim takes Vim and adds more features to, features which for one, make it more accessible to new programmers. On top of that, package managers like lazy.nvim that recently came out have made the experience of plugin management a lot easier and intuitive.

After the release of ChatGPT and the subsequent release of all things AI related, I started exploring AI and AI tools and began using my first code assistant called Codeium. I loved using it because it simplified the development process, but I couldn’t really trust it. I knew that my data was being sent to the Codeium servers and the code for those servers are not open-source, therefore who knows what they are doing with it. I had to shut it off and I eventually just stopped using it. I looked for some solution, but there was none, so I endeavored to build one, which is where this project comes in. Open-source AI is at its infancy and has several problems. One is that it requires an expensive computer to run it in a reasonable amount of time—or sometimes run at all. Another problem is that it is difficult to host. The latter problem was solved once I found the ollama framework, which is essentially a framework that allows you to host open-source models. The former problem is much harder, but will probably be fixed in the coming years. Once the major roadblocks were gone all that was left to do was architect and write the code. This proved to be very difficult as the learning curve was steep, but I committed myself to breaking the project into components and tackling each component in the development process. As of this writing, I have not completed the project, but I plan on getting at least an alpha or beta version out there.





Monday, December 16, 2024

Creation of Pokémon World Champion Edition

Michael Aurilia, Verrazzano Class of 2024, completed major in Computer Science

This project has been a journey filled with challenges, creativity, and growth. As I reflect on the development process, I am inspired by the amount of work I was able to complete in a short time span. While there were portions of the project that had to be omitted due to time constraints, I am satisfied with the current version of the project.

At the outset, my vision was clear: to develop a Java-based application that would replicate the experience of 6V6 Pokémon battles. However, as I worked on the project, I realized the intricacies involved in translating the rich mechanics of Pokémon games into a digital simulation. From designing the battle engine to implementing move sets, each aspect demanded careful consideration and attention to detail.

One of the most significant challenges I faced was finding a balance between authenticity and accessibility. While I wanted to stay true to the core mechanics of the Pokémon games, I also recognized the need to streamline certain aspects, such as accuracy and status effects that make the player lose a turn to ensure a smooth and enjoyable user experience. Another challenge I experienced during the creation of this project was translating the code for Java to C# for Unity integration. As I attempted to make this change, I realized that it would be too complex for the time I had remaining, so I made the choice to leave it out of this version of the project. Finishing this translation would have meant better visuals for the project such as a background scene, music, animations, etc. so while it would have been nice to have, the project is still functional on its own.

I plan to evolve and improve this platform to provide the best possible experience for the users. In the future, I would like to add in the previously mentioned scrapped features so that it more closely resembles the mainline Pokémon games that the code simulates. I would also like to add more Pokémon for the user to choose from to provide a different gameplay experience for each user.

In closing, the creation of the Pokémon World Champion Edition project taught me a great deal about the creation of object-oriented projects. I learned time management skills that will also help me in future coding endeavors. While the project didn’t turn out perfectly, over all I am still pleased with how I was able to create this program for others to enjoy.




 

Monday, December 2, 2024

The Health of AI in the Medical Field

Robert Wetz, Verrazzano Class of 2024, completed major in Computer Science

My thesis concerned the use of Artificial Intelligence (AI) in the medical field. I decided to choose writing a thesis for my capstone as it is something I had never done before, and I believed that I would be able to cover my topic in depth.

Upon starting my thesis, I was completely lost on where to begin. I knew what I wanted to write about and had done some research already, but starting it had proven to be the most difficult part. It was not until I met with my mentor that I was steered in the right direction and had a path to follow.

With that guidance, I began my thesis and made some headway. However, having never written a thesis before, I was unaware of all the different aspects there were in comparison to that of a college paper, something that I was very familiar with at that point in my college career. The most notable difference was how references were handled and how much they were emphasized in a thesis. Although it slowed my progress down a bit, it added a level of professionality that I had never considered outside of the references that I used to in college papers.

During this process, I also learned about the resources available through the CSI database and how expansive it is, encompassing a large number of topics. The final and most important part that I discovered when working on my capstone was simply the dedication it takes to complete. When starting out, I felt overwhelmed by the amount of content I would have to write about and I had no idea if I would even be able to complete something of this size. However, along with my mentor’s assistance, I was able to keep at it and took it piece by piece and soon enough the end was in sight. 

Something I was unprepared for in this process was how rewarding it would feel to complete it. Being able to go from nothing at all to something tangible and be a part of that process left me feeling accomplished in what I have done. Although my thesis is completed, there is room for future developments.

My thesis discusses various aspects of AI in healthcare, including its work in the field of cancer, radiology, and drug discovery. However, that only scratches the surface that AI has made within such a vast field. If I were to continue this research, different applications of AI in the medical field could be discussed or even new innovations that have come out since completing my thesis. 

Overall, I am grateful to have completed this capstone because I learned not only about AI’s impact in the field of medicine, but I also learned a lot about myself in the process.




Monday, April 29, 2024

Open AI: Elevating Website Interaction Through Chatbot

Unaiza Nizami, Verrazzano Class of 2024, completed major in Computer Science and minor in Mathematics

Research papers take a lot of time and effort, and one hopes it will be a great learning experience. When deciding on my research paper topic as a computer science major, I initially wanted to begin my capstone at the start of my senior year, but didn’t begin it until my final semester.

My research topic originated from my senior seminar class I that took on ChatGPT. As you are probably aware, ChatGPT is a popular website that many people enjoy using. In my seminar class, I concentrated on the impact of ChatGPT, the architecture it is built on, and how it came to be. For my project, I wanted to take this topic a step further. Despite the fact that the website has sparked a lot of security and educational concerns, I wanted to use it to make websites more accessible.

Many people believe that this tool is not useful because it provides most of the answers, whether the question is about history or how to make a website. This tool can solve the problem and provide the answer, but using the tool to benefit you is a skill that only a few have mastered.

This capstone project focused on the enhancement of a website and how to make it more user-friendly. I examined the CSI website to see how it could be improved, and I found that the only thing missing was a bot that could direct students to the proper location or provide them with the necessary information. Our college website has a lot of pages and information, and students frequently have trouble navigating it.

Another part of this project was researching how to do it. Since ChatGPT has been out for a little while and still improving, there were not a lot of resources on how to approach this problem. I found some YouTube videos and the open AI documentation aspect of this project to help my research. The most enjoyable aspect of my project was coding the server-side code, which was implemented as a chatbot. With the resources provided, I found it to be quite simple to follow along.

I wish I had started my project earlier or had more time to complete it. If I were to give some general advice to students undertaking a research project, it would be to start planning early. If you leave it to the last semester of your college career, you will be under a lot of pressure to complete everything in a rush. It is better to start early and give yourself plenty of time to go through the research process, find the right resources, and learn thoroughly.

Research projects are an opportunity to learn new material and challenge yourself. They can be a highlight of your college experience, and you might learn something you never thought possible.




Monday, April 8, 2024

Infinite Dance Sport

Julia Seleznyov, Verrazzano Class of 2024, completed major in Computer Science

For my final project, I worked on something super cool that combined my love for computer science and my deep knowledge of ballroom dancing. I am creating a special app or website that makes judging big ballroom dance competitions easier and more organized.

In the world of ballroom dancing, they use a detailed point system to make sure everyone gets a fair shot and to help dancers figure out where they can improve. It's similar to how they judge Olympic figure skating, looking at things such as how technically good the dance is, the overall performance, the music, and the choreography.

Currently different dance organizations around the world have their own ways of scoring. But in the United States, we're trying to make our own system by taking the best parts from other systems. I found out about this when I was involved in competitions, and my coach asked me to help because there aren't many examples of point systems for ballroom dancing online. We're mostly relying on what we can see with our own eyes.

The main idea behind our app is to give each judge their own login, where they can focus on the specific things they're judging. All of their scores get sent to one central place, making everything more organized. We also want to store this information in a way that makes it easy for dancers to see and use the results to improve. Our big dream is to use this system in competitions all across the United States and connect American and European competitions.

To build the app, we chose Snowflake, a web-based platform. We set up three judges with their own logins and put in information about six top dancers and five different dances. Judges would pick a couple and dance, then give scores in four categories: how technically good it was, how well they moved to the music, the choreography, and how well they performed and partnered. Once the scores were in, a success message would pop up, and the scores would go into a big database. We also made charts and graphs to make the scores easy to understand.

Snowflake was super helpful because it let me handle both the look of the app (the front end) and the technical stuff behind the scenes (the back end). I used Python and Streamlit for the front end, making it easy to edit the app in real-time. For the back end, I created databases on Snowflake and input the info using an Excel sheet, making sure everything connected smoothly. I even designed the logo using Canva and put it online for the project.

In the end, finishing this project makes me really happy, and I'm excited to keep making it even better. This mix of computer science and ballroom dancing isn't just solving a problem in competitions—it's laying the groundwork for more cool ideas in the future!




Monday, January 22, 2024

Creating an AI Powered Color Matching Wardrobe

Steven Ceron, Verrazzano Class of 2024, completed major in Engineering Science

As I reflect on my senior engineering design project, which centered on creating an innovative clothing matching and coordination solution, I am imbued with a sense of achievement and enriched learning. The goal of my project was to design an AI-powered Color Matching Wardrobe, addressing the common frustration of not knowing what to wear in the morning.

The culmination of my four years of undergraduate education enabled me to apply the technical knowledge I had acquired. This project, which integrated my understanding of electrical engineering and computer science, was rewarding as I saw the skills and knowledge I had gained materialize in a functioning prototype. In terms of electrical engineering, ensuring that the circuit operated without mishaps was crucial. Potential risks included short circuits or component damage, although these were unlikely due to the low voltage used. To prevent such issues, it was imperative to select the correct components, requiring calculations with specific formulas, and to adhere to strict engineering safety measures. On the computer science front, the ability to create and modify code to function precisely as desired was key. Employing machine learning was essential to my project since it formed the backbone of the design. The AI needed to accurately detect objects, which, in my case, were clothes and their colors. This was much easier said than done.

The most challenging aspect of this project was undoubtedly the software component, more so than the hardware. Throughout the project, I encountered numerous problems that halted my progress for days until I found a solution. Tasks I initially considered straightforward, like installing certain programs, turned out to be the most troublesome and time-consuming. Moreover, there were issues with the coding itself. Minor changes made to improve user-friendliness often caused the program to malfunction. For instance, increasing the resolution of the live feed resulted in label boxes misaligning with the objects.

This experience has taught me that, even as I near the end of my undergraduate education, there is still much for me to learn and improve upon. However, these struggles have been enlightening. I have learned various methods to solve these issues and the importance of broadening my thought process. Often, I was overly fixated on a single solution, overlooking simpler fixes that didn't initially occur to me. The project also taught me the value of patience; rushing through certain tasks, which needed slow and precise development, led to starting over from scratch after a rushed error, a completely demoralizing experience. Yet, this has made me more cautious and attentive to ensure proper execution, helping me avoid similar setbacks in the future.

I can confidently say that, despite its stressful nature, this project has been the most enjoyable and rewarding experience of my student life. I am grateful for all the support I received, especially from my mentor Professor Changmin Kim, whose pressure was instrumental in ensuring the project's timely completion.







Monday, November 21, 2022

Groupvie: A Movie Matchmaker

Joseph DeMario, Verrazzano Class of 2022, completed major in Computer Science and minor in Cinema Studies

My initial idea for my capstone project was to combine my computer science major with my cinema studies minor in the form of an iOS mobile application, where I would implement both the back-end and front-end functionality. The purpose of the app would serve as a bridge between Tinder and Fandango, where users could create an account and match with other users according to their movie interests and preferences. 

In order to display a number of films, I turned to The Movie Database API (TMDB) to grab data for movie and TV posters, release dates, and summaries. Even with these ideas in mind, I found it difficult to come up with a name for the application. It was not until the end of the development that I came up with a name: Groupvie (combining the words “group” and “movie” together). The name fully encapsulates the overall objective of the app which is to connect users based on movies. 

In regard to front-end implementation, I achieved just that through the use of Xcode and its ability to design the user interface of the app. In terms of my intended UI design for the app, there are still some things I would like to work on. I originally wanted the main home screen to follow that of Tinder’s; the only difference is that users would swipe left or right on movies rather than people. After a number of swipes, users would match with each other based on their movie preferences. The final product has users add a movie to their favorites list which other people on the platform can see to determine if they want to interact with them. The Tinder algorithm matches users automatically, whereas Groupvie needs the user to essentially do the matching for it. 

For the back-end implementation I utilized Firebase, a database that stores user accounts and messages. Additionally, future plans and improvements for the app include extending the capability of the chat screen to group chats rather than just a single user and finishing development on an events screen so users can view scheduled watch parties and movie nights with each other.

Overall, I believe I achieved everything I wanted with this project and I will look to continue to improve it in the future.  





Monday, April 11, 2022

Creating an App to Assist the Visually Impaired with Public Transportation

 Joseph Tooker, Verrazzano Class of 2022, completed major in Computer Science 

For my capstone project, under the mentorship of Professor Zhanyang Zhang I developed MOVESmart, a mobile navigation application that assists people who are visually impaired.

Initially, the plan was for the app to work with airports but we both agreed that public transportation travel is much more common than air travel, so that is where we focused. I developed this app for Apple devices using the xCode IDE (Integrated development environment), and the Swift programming language.

With the app being developed for visually impaired users, the most important aspect of the app was accessibility. Any text written in the app, such as instructions on how to use it, would be read to the user. Upon opening the app, users would be instructed to tap the top of the screen to open the camera, or tap the bottom of the screen to access the map. Users could take a snapshot of what their phone would be pointing at, and any signs or text in the photo would be read to the user. This was done with the help of the AWS Rekognition API (Application programming interface). When a picture is taken, it would be sent to the AWS Rekognition server, and the AI would be able to detect any text that is in the image. Once the text is detected, it would get sent back to the app.

Unfortunately, the map feature of the app was unfinished. The intention of it was for the user to be able to have public transportation information read to them, and be able to plan a trip. If there were any delays or cancellations, the user would be notified. The map would be displayed using the Google Maps API.

Looking to the future, there are definitely some areas where the app could improve. The first area for improvement is the user interface(UI). While the app is mainly intended for visually impaired users, it is still important for the app to look nice. I mainly focused on the technical side of the app. Another area for improvement is having functionality with the Google Transit API. I struggled getting this API to work, so I wasn’t able to utilize it. With additional time and research, I should be able to have functionality to the app.