Teaching and Courses

Assistant Lecturer (ITU)

  • 2007: Introduction to Object-Oriented Programming (Java class, OPI)
  • 2006: Interactive web applications and services with Java and XML (E2006)

Graduate Teaching Fellow (Yale)

  • Fall 2004: Compilers & Interpreters (CPSC 521/421), Instructor: Carsten Schürmann
  • Spring 2004: Intro to Computer Science (CPSC 201), Instructor: Carsten Schürmann
  • Spring 2003: Design and Analysis of Algorithms (CPSC 365), Instructor: James Aspnes
  • Fall 2002: Mathematical Tools for Computer Science (CPSC 202), Instructor: Michael Fischer

Undergraduate Teaching Assistant (Stony Brook)

  • Spring 1999: Computer Science II (Data Structures, CSE 214), Instructor: Shaunak Pawagi
  • Fall 1998: Foundations of Computer Science II (Discrete Mathematics, CSE 213), Instructor: Anita Wasilewska

Conferences/PhD Schools Attended:


Pittsburgh, PA June 24-27, 2008 LICS 2008 Logic In Computer Science
Pittsburgh, PA June 23, 2008 LFMTP 2008 International Workshop on Logical Frameworks and Meta-Languages: Theory and Practice
Budapest, Hungary March 29 - April 6, 2008 ESOP 2008 17th European Symposium on Programming
Udine, Italy May 2-5, 2007 TYPES 2007 Conference of the Types Project
ITU November 21-22, 2006   Proof Planning for Inductive Theories
ITU October 9-13, 2006 VPSM 2006 Verification of Protocols for Security and Mobility
ITU May 31 - June 02, 2006   Proof Search and Computation
Göteborg, Sweden August 15-26, 2005 TYPES 2005 TYPES Summer School 2005:Proofs of Programs and Formalisation of Mathematics.
Nara, Japan April 21-23, 2005 TLCA'05 Seventh International Conference on Typed Lambda Calculi and Applications


Courses attended at Yale:


CPSC 521 Compilers and Interpreters

Created a compiler for Tiger.  This involved creating a lexical analyzer, parser, and an Itree (intermediate representation).  Groups prepared Itree, Code Generation, and Register Allocation which were put together to create a working compiler.
CPSC 522 Operating Systems

Implemented different parts of operating system (Nachos).
*CPSC 524 Parallel Programming Techniques
CPSC 525 Theory of Distributed Systems
CPSC 529 Functional Programming
*CPSC 530 Formal Semantics
CPSC 533 Computer Networks
*CPSC 555 Economics & Computation
CPSC 560 Theoretical Methods
CPSC 567 Cryptography & Computer Security
CPSC 569 Randomized Algorithms
CPSC 570 Artificial Intelligence
CPSC 575 Computational Vision and Biological Perception

* Course was not taken for Credit (Audit)

Courses attended at SUNY Stony Brook


CSE113 Foundations of Computer Science I
CSE114 Computer Science I
CSE213 Foundations of Computer Science II
CSE214 Computer Science II
CSE220 Computer Organization
CSE303 Introduction to the Theory of Computation
CSE305 Principles of Database Systems

Created a web based registration system using JAVA and SQL. Database was Sybase.
CSE307 Principles of Programming Languages

Created a mini-ML written in ML. This assignment was to take a formal definition of a major subset of ML and to actually write a mini-ML interpreter written in ML. The rules follow standard SOS (Structural Operational Semantics) form. The final version handles all the basics of ML, even its imperative constructs. The main difference between mini-ML and real ML is that no types are inferred, so types have to be explicitly stated, but polymorphic types are allowed.
CSE308 Software Engineering

Created a website called “SB Connections” for use as an online student meeting place. It contained a match-making feature, private message boards, public chat and message boards (with categories for school, friends, and romance). It is written predominantly in Perl.
CSE309 Software Engineering II

Updated “Smartplanner”, which is a utility written in MS VB that serves as a personal planner. Added Multiple User support, and options to make tasksPeriodic (occur every day) or Annual. Allows users to specify advance warning time and date of an event, meeting, etc.
CSE310 Data Communication and Networks
CSE328 Fundamentals of Computer Graphics
CSE352 Artificial Intelligence
CSE373 Analysis of Algorithms