Home Page

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

Education

Computer Science

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

Electives:

CS 451 - Systems Programming

CS 444 - Programming for the Web

CS 432 - Database Systems

CS 459 - Science of Cyber Security

Mathematics

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

Projects

Sorting Algorithms

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.


Weather App

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


Two Blocks Demo

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.


Puzzle Game

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.


Paint

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.