There are many topics that interest me, but two of them are
programming language (PL) designs and algorithm optimization.
PROGRAMMING LANGUAGE DESIGNS:
I've done several projects where I've implemented small langauges or added more features to a language.
I wrote interpreters and compilers for features such as multiple return values, or function calls with rest parameters.
I also have some experience with the theoretical side of PL design, such as finite state machines, which are mathematical
computations used to simulate sequential logic, and lambda calculus, a formal system for simulating function application.
ALGORITHM DESIGN & OPTIMIZATION:
Although one of the hardest topics for me to understand, I am most fascinated by this area.
I was first exposed to the P vs. NP problem in my "Intro to Algorithms" class, and the idea of
an entire class of problems being solvable in polynomial time with non-deterministic algorithms was
extremely intriguing. I also took an advanced algorithms class, where I learned about concepts such as
dynamic programming, network flows, NP reductions and NP-completeness, and approximation algorithms.