Hi, I'm Calvin Choi, a recent graduate at Binghamton University.
I graduated May 2023, with a Bachelor of Science
majoring in Computer Science.
This website serves as a hub to showcase my personal projects
I've worked on after graduating.
Feel free to interact with my collection of projects, either by clicking
their names listed below my education info, or on the navbar on
the top of the page
CS 101 - Professional Skills, Ethics, & CS Trends
CS 120 - Programming & Hardware Fundamentals
CS 140 - Programming with Objects and Data Structures
CS 220 - Architecture from a Programmer's Perspective
CS 240 - Data Structures & Algorithms
CS 301 - Ethical, Social, and Global Issues in Computing
CS 320 - Advanced Computer Architecture
CS 350 - Operating Systems
CS 373 - Automata Theory and Formal Languages
CS 375 - Design and Analysis of Algorithms
CS 471 - Programming Languages
CS 451 - Systems Programming
CS 444 - Programming for the Web
CS 432 - Database Systems
CS 459 - Science of Cyber Security
MATH 224 - Differential Calculus
MATH 225 - Integral Calculus
MATH 226 - Integration Tech & Application
MATH 227 - Infinite Series
MATH 304 - Linear Algebra
MATH 327 - Probability with Stat Methods
MATH 330 - Number Systems
PHYS 131 - General Physics I - Calc. Based
PHYS 132 - General Physics II - Calc. Based
A visualizer for many common sorting algorithms. Currently has Bubble Sort, Insertion Sort, Selection Sort, Merge Sort, and Quick Sort.
Array size maximums are adjusted respective to the selected algorithm's speed so the animations don't take a long time.
There is also a delay slider, which you can use to either speed up or slow down the animation.
Challenges included keeping track of relevant elements of the array to highlight properly for the user, as the faster sorting algorithms are more meant for sorting efficiently using clever shortcuts rather than being meant for a person observing the process of sorting.
A weather app where you can enter a location and get different stats depending on what checkboxes are clicked.
Uses an API from WeatherAPI.com
A physics demonstration of two blocks undergoing total elastic collision.
There is an interesting phenomenon where if the mass of the moving (right) square is the mass of the still (middle) square multiplied by 100^x [x >= 0], the total number of collisions will be equal to the digits of pi, with x being the total number of digits.
Challenges included making sure the collisions register properly, and making sure that the blocks don't phase through each other through high enough speeds between frames.
A game where you flip tiles in a plus shape per click, where the objective is to have all the tiles flipped.
Features include different difficulties, resetting the board, and hints.
A simple drawing app
Features include a color palette for the brush tool, shortcuts for the brush (b), eraser (e), undo (CTRL+Z), and redo (CTRL+Y) buttons.