This game was inspired by a close friend who introduced me to this game while playing a game of Mahjong. Gemini is a puzzle game where the goal is to match two identical pieces per move until the board is emptied. The basic gameplay is as follows:
1. Choose a tile.
2. Move the tile and all leading tiles towards an empty area. We can also choose not to move at all.
3. At the end of the move, if the selected tile can "see" an identical piece in any of four directions, then it can match with that piece. "Seeing" means no tiles exists between the selected tile and its twin. This means any two adjacent tiles that are identical can be matched.
4. If no identical tiles are visible, then the movement is invalid and is reverted.
• • •
Start by matching adjacent pairs of tiles.
• • •
This first and only hackathon I ever attended was a special experience. Since I applied alone, I was placed in a randomly organized group with three other students. As a group, we had 24 hours to come up with a solution presented to us by the non-profit organization Eden II, a community that provides the autistic community with educational programs, adult day care programs, and general support for families.
One of the issues the staff at Eden II had was that often clients would have vocabulary a little different from the rest. For example, one of the boys' word for apple was the word "ah". The solution we came up with was to form a method for staff to create an audio mapping of that word "ah" to a visual representation of an apple. Thus, if a new staff member were to be introduced to this boy, he/she will be able to find a special dictionary unique to the individual.
As a team, we were able to share our skillsets and create decent workflow. With some iOS development experience, I was able to provide the front-end and dispatch calls to a backend provided by my other team member. Unfortunately, 24 hours was not enough to fully implement what we had envisioned. But, this was a learning experience for all of us as it was our first hackathon ever. I hope to soon register for another hackathon to see what improvements I've made as a student.
The program created for this project measured the cost of a context switch by recording the time it took for two processors to calculate the sum of integers in a very large array. The inspiration for this project was a similar research done by Li, Ding, and Shen, whose research can be found in the USENIX database here. Using the sched and pthread library, we were able to observe the advantages of multicore processing as the workload increased, while observing performance losses when workload decreased when comparing to work done by a single processor.
Too Many Cooks was final team project for my Software Engineering course. We were required to create specifications in the form of a system design report, which is viewable in the repository here. To build the product, we use Ruby on Rails, which was the perfect framework to build both the frontend and backend without having to everything from scratch.
The final product had a login system with authentication allowing a user to function as a customer, chef, delivery personnel, or a manager, each having unique functionality - customers can order food, chefs can produce the orders, delivery personnel can delivery the orders, and managers can hire or fire employees.
This group project was an extremely valuable experience as I was required to work with both the front-end and back-end and also use Git for version control heavily for the first time. Although the end product might need some UI makeup, much of the functionality mentioned in the system design report was fully implemented.
• • •