Introduction

Hello, I am Owen Kemp. I am currently a student at Wright State University. My majors are a Bachelor's of Science in Computer Science (BSCS) and a Bachelor's of Science in Physics. I am a senior in Computer Science and a Junior in Physics.

My motivation to do Computer Science is that I love learning about how to build and optimize software. I first started making simple games in Roblox around 2018 with a primary focus on trying to build maintainable software. I enjoyed programming a ton and worked on random side projects between schools. Because of this, I majored in Computer Science when I first went to University.

My motivation to do physics is that I also love to understand how the physical world interacts. I first got started into physics when I took physics at Wright State in Fall 2023. I found physics to be very interesting and decided to major in it 2 years later after taking more advanced physics courses.

My goal with both majors is to understand how to build and optimize software designed for physical products. An example includes creating software for robotics.

My Personal Github is Striker2783 and my Github for school is Porogaramu. I do care a bit about my privacy, so almost all of my accounts are not my actual name, but they are somewhat consistent in naming.

Projects

Publication

Parallel Mining of Frequent Itemsets Based on AprioriHybrid with a Map-Based Trie

O. X. Kemp and S. M. Chung, "Parallel Mining of Frequent Itemsets Based on AprioriHybrid with a Map-Based Trie," 2025 IEEE International Conference on Data and Software Engineering (ICoDSE), Batam, Indonesia, 2025, pp. 389-394, doi: 10.1109/ICoDSE68111.2025.11351799

Abstract: We propose parallelizing the AprioriHybrid algorithm with its Apriori part using a map-based trie to store candidate itemsets. This parallelization is done by distributing the occurrence counting of candidate itemsets across the processes running on different processing nodes. The trie data structure retrieves itemsets faster than the hash tree used in the original Apriori paper. A method was used to transform a trie into and from an array to facilitate sharing itemsets across processes. Our experimental results show a significant speedup with the trie over the hash tree. The parallelized algorithm also showed a significant speedup compared to the sequential algorithm.

IEEE Xplore
Source Code

Knowledge

Programming Languages

  • Python: I learned this language through many courses at my university. I like Python because it is really simple to use, and the huge number of libraries that support it. I have mainly used it for data stuff with libraries like NumPy, pandas, PyTorch, SymPy, Matplotlib, SciPy, CPMPy, etc.
  • Java: I learned this through my university's Computer Science I and II courses. I like Java because it is a nice high level language that also teaches Object Oriented Design. If I was given a choice to what language to use for a coding competition, I would probably choose Java due to its high level nature.
  • Rust: I learned this through reading through the Rust book and programming algorithms to solve problems. I like Rust due to its mix of high level and low level features. It also taught me how to be safe when working with low-level languages like C/C++. It has a lot of positive features that I love like macros, traits, and default testing. Of course, it also sometimes has a lot of boilerplate when it comes to lifetimes and generics. If I was to make an algorithm for production use, I would use Rust due to its speed and safety.
  • Javascript/Typescript: I also learned this through my own. I play many HTML games and I initially learned some Javascript by looking through the game's code to see how the game worked (and maybe exploit it a bit). I started really learning the languages when I started to learn about web development. I do like the dynamic nature of Javascript and being able to easily program stuff in, but it is a pain to debug. That's why I like Typescript more, which allows for better types, making it easier for me to read code and program stuff in. Typescript can be a pain with a bunch of types. I mainly would use this if I was doing a full stack application with the same language.

Framesworks Used

  • Spring Boot: this ia mainly a backend framework developed for Java to create API endpoints. I have used this framework in two of my projects: Restaurant Ordering System and Car Maintenance Tracker. I have also used JUnit (Unit/Integration Testing), Java Persistence (JPA), and Mapstruct.
  • NextJS: this is a full stack framework written in Javascript and developed by Vercel. I used this framework when developing a website for a Youtube channel that I helped manage.
  • ExpressJS: this is a backend library written in Javascript. This is a minimal and flexible Node.js web framework for building APIs and server-side applications. I used this in the Account Map Project.

Frontends

  • React: a reactive frontend framework for interactive websites. I have used this frontend a bit in building websites (not listed in this portfolio). I know most of the basic features of React and how to build React websites.
  • Java Swing: I learned this in my Computer Science classes and used it in the Restaurant Ordering System.

Tools Used

  • Visual Studio Code: This is the main code editor I use when programming any language. It has vast numbers of extensions that I use to improve my coding experience. It also contains many features I love like multiple cursors, quick open, and quick find. A few things that I dislike is that it can be slow with large projects and a lack of features IDEs have.
  • Git: This is the version control system I use for any of my projects. I mainly use Git on the command line and in VSCode where it's a bit more convenient. I have done plenty of squashing of commits using Git.
  • Github: This is the main site where I push my repositories. I have used many features of Github, such as Issues and Pull Requests, creating workflows, and configuring a repository.
  • Linux Commands: I know plenty of Linux commands to navigate through a Linux system. I use Ubuntu LTS on my main computer.

Activities

School Events

  • Wright State's 2023, 2024, and 2025 Coding Contest: A Computer Science contest at Wright State University. This contest features coding questions for contestants to solve.
  • ICPC East Central Regional 2024: A regional competition for the International Collegiate Programming Contest (ICPC). I was in Wright State's Gold team and the competition is linked here.
  • Wright State's Hackathon 2025: I participated with a team of four other people. This event lasted for 24 hours in which my team used ExpressJS with Prisma and React to create a website that tracks your login credentials to your accounts. Project Link
  • Wright State's Hackathon 2023: I partcipated with a team of two other people. This event lasted for 24 hours in which my team used Sveltekit and a Content Management System to create a website that allows the addition and tracking of products in a supply chain. Project Link.