Adrian Trejo Nuñez

(atrejo AT andrew DOT cmu DOT edu)

I am a fourth year undergraduate student at Carnegie Mellon University. I expect to graduate in May 2013 with a B.S. in Computer Science and a B.S. in Mathematical Sciences.

I'm currently a teaching assistant for 15-359 Probability and Computing, taught by professors Mor Harchol-Balter and Victor Adamchik.

Research Interests

I'm generally interested in the topics of algorithm design and analysis, complexity theory, computability theory, and queueing theory. My recent projects deal primarily with automata theory and queueing systems. I plan on writing my senior thesis on my project dealing with ω-automata and their applications.

Projects

ω-automata (October 2011 – present)

I'm building the automata theoretic support structure to perform model checking for first-order logic formulas on one-way infinite cellular automata.

I've written a software program in C that implements operations on several types of ω-automata, including Büchi automata. Notably, I provide an implementation of Safra's determinization algorithm to convert a non-deterministic Büchi automaton into a deterministic Rabin automaton. The project relies heavily on the STL and Boost C libraries.

This stems from my final project for 15-354 Computational Discrete Mathematics, taught by Klaus Sutner.

Read more on the project page.

Transient Analysis of Queueing Systems (December 2011 – May 2012)

I'm trying to understand the transient behavior of queueing systems before they enter the steady state. I've researched previous attempts at deriving closed form solutions for the transient probabilities in the MM1 queue and tried to extend those techniques to understand the MM2, and more generally, the MMk.

I presented my work at this year's Meeting of the Minds research symposium and won the Boeing Blue Skies award for my work. I'll be presenting at SRC's TECHCON 2012 in Austin, TX in September.

LLVM Compiler Infrastructure (August 2011)

I wrote a compiler pass within the LLVM framework that analyzes every store through a pointer or array in order to identify potential vulnerable points for buffer overflow exploits. My pass analyzes loops within the program and makes a note of those stores that occur within nested loops. The pass runs as part of the optimization passes that transforms assembly code as part of the compilation process. It also serves as a starting point for a pass that recognizes buffer overflow vulnerabilities.

Work Experience

  • Software Engineer Intern, Facebook, Inc. (June 2013 – August 2013)

  • Software Engineer Intern, Facebook, Inc. (June 2012 – August 2012)

  • Software Developer, Autolab2 (October 2010 – November 2011)

Current Coursework (Spring 2013)

  • 15-312 Principles of Programming Languages

  • 15-454 Computational Automata Theory

  • 15-599 Undergraduate Thesis Research

  • 15-781 Introduction to Machine Learning

  • 54-192 Acting for Non-Majors

Previous Relevant Coursework

  • Graduate Coursework

    • 15-750 Graduate Algorithms

    • 15-857 Performance Modeling and Analytical Design of Computer Systems

    • 15-859 An Intensive Introduction to Computational Complexity Theory

    • 21-701 Discrete Mathematics

  • Undergraduate Coursework

    • 15-211 Fundamental Data Structures and Algorithms

    • 15-213 Introduction to Computer Systems

    • 15-354 Computational Discrete Mathematics

    • 15-359 Probability and Computing

    • 15-451 Algorithm Design and Analysis

    • 21-301 Combinatorics

    • 21-375 Elliptic Curves and Cryptography

    • 21-484 Graph Theory

Teaching Experience

  • 15-359 Probability and Computing, Spring 2013

  • 15-213 Introduction to Computer Systems, Fall 2012, Fall 2011

  • 15-750 Graduate Algorithms, Spring 2012

  • 21-268 Multidimensional Calculus, Spring 2012

Contact

Carnegie Mellon University
SMC 3725
5032 Forbes Avenue
Pittsburgh, PA 15213

Computer Science Department | Department of Mathematical Sciences