CSE60416 System Interface Design, Microsoft Surface

I did this project with Mike Olson, a Notre Dame graduate student. (He’s narrating the video.)

We studied the proper design of user interfaces in this class. Although we mostly focused on graphical interfaces, we also learned how to interface with motion-based systems such as the Nintendo Wii remote and Balance Board.

For our final project, we wanted to design an interactive browser for the Microsoft Surface, a multitouch based coffeetable like device. Since we have one of these units sitting in the department office, we thought it would be nice if people visiting could sit down while waiting for appointments and quickly see the research currently being done in the department. To this end, visitors can simply touch a researcher’s picture on the left, and a card detailing their research projects appears. The research project pages can include pictures as well as video. Cards are animated in and out in several interesting ways; each animation is also accompanied by a swooshing sound. These details make the browser actually quite fun to play with.

Read more

Share

CSE60317 Online Algorithms For Computational Finance

This class was very interesting; we studied some of the basics of online algorithms as well as some applications to computational finance. Perhaps the most intriguing parts (for someone already familiar with online algorithms) were what we learned about classic computational finance, such as Black-Scholes-Merton.

This “project” is a review of the main result of an interesting paper, entitled “Making Decisions in the Face of Uncertainty: How to Pick a Winner Almost Every Time,” by Awerbuch et al. For details, check out the paper.

Read more

Share

CSE60647 Data Mining, Predicting on Slashdot

Much of the research I performed during my Master’s was on the newsvendor problem, which deals with attempting to guess the demand for short-lived products so as to maximize profits. Unfortunately, data about newspaper sales is tough to come by. So, why not use an online equivalent? This project aims at predicting the number of comments a Slashdot story will generate given text which appears in the summary.

However, since we are interested in looking at the number of comments as a demand for a product to be sold, we don’t stop there. Using cost-sensitive data mining approaches, we interpret probabilistic predictions as a sort of “customized distribution” and order the correct amount in terms of likely profit maximization.

Read more

Share

Online Learning and the Newsvendor Problem

Machine learning methods and inventory management were a focus in my Master’s work. In the newsvendor problem, an amount of product to order must be decided upon periodically for reselling. Ordering too much results in losses due to overstock which must be discarded; too little results in losses due to lost sales.

Traditional approaches experience a tradeoff in that some methods perform better in some situations, while our machine learning approach performs well consistently, particularly in situations where the demand suddenly increases or decreases. We were also able to prove lower bounds on the loss for our method:

Read more

Share

CSE60622 Cryptography. BobCash

This was a project I did for Cryptography, which implemented a digital cash scheme as a web service. The idea behind digital cash is that, well, it’s digital cash. Which means, it’s a digital object which has value and can be traded/spent, but is also anonymous. This is accomplished via digital signatures. Alice, who has money in the bank, sends the bank an string of random letters and an amount to withdraw. The bank then confirms that she has that much money in her account, removes the money from the account, and “signs” the string of letters; the signature is sent back to Alice. Using the signature, Alice can prove to anybody who cares to check that the string of letters really does represent money from the bank.

Read more

Share

CCSE60171 Artificial Intelligence, Learning to Play Games

I did this project with Allison Regier. It’s not too difficult to write a program which uses an exhaustive search to play a game. What this requires, though, is some way to evaluate one board against another to tell which moves to make. Usually such a comparison function is hand written.

We asked whether it was possible to write a generic board evaluation function which would learn a preference over board states by playing many games, either against itself or a hand coded evaluation function. After a game is finished, if the learner lost, it works backwards through the board states visited reducing the preferences by decreasing amounts. Boards are recorded in terms of “features,” so the learner is generalizable over different board games. As you can see from the presentation, we met with some success.

Read more

Share

Formal Logic

I also studied formal logic, under the direction of the amazing Don Faust. I still recommend the book What Is Mathematical Logic for a good (but dense) overview of the topic. These are just some proofs I worked out.

Read more

Share

CS446, Computer Graphics

Some code from a very cool computer graphics class, mostly in Java.

Read more

Share