My name is Spyros Hadjichristodoulou, and I'm currently living in Long
Island (NY) with my fiancee, Katerina. I am a Ph.D. candidate at Stony
Brook University, in the Department of
I spent one fascinating year (May 2010 - May 2011) working in the
Tabled Logic Programming group, under professor C.R.
Ramakrishnan. My work there involved research in probabilistic
negation semantics for general logic programs. Since June 2011, I
decided to turn my research into a more "languages" direction, and I'm
currently working with professor David Warren in the general
area of Logic Programming. In particular, we are looking into ways of
making Prolog easier to use by both the first learner and the more
experienced user by the means of IDEs, a type system for "correctness
reassurance", and using XSB-Prolog as a static analysis tool for large
I have been a lab assistant at the programming labs of 1st and 2nd
semester in the NTUA for 4 years. While in Stony Brook, I've been a TA
for CSE 150 (Honors in Computer Science), CSE 307 (Principles of
Programming Languages) and CSE 548 (Analysis of Algorithms).
During my undergrad studies, I've taken many courses in Programming
Languages, Compilers and Theory. In one of these courses, I was
introduced by another professor I mostly respect, professor Kostis Sagonas, to the
magic of Prolog.
I didn't realise the greatness of this language (btw I consider myself
as a novice Prolog programmer) until I had CSE 505 - Computing with
Logic in Stony Brook, by professor David S. Warren. Anyway, I try to
write most of my code in OCaml, Haskell
since I am a big believer in small and compact code. However, noone can
underestimate the power of C, especially when efficiency is key in a
project, and that's why my work involves lots of C code, which I think is
responsible for many small instanity crises I have been experiencing.
My OO skills are a bit rusty, but I can wrap my hands around some C++
code without much trouble.
During my career as a graduate student, I've taken CSE 548 - Analysis
of Algorithms, CSE 540 - Theory of Computation, CSE 506 - Operating
Systems, CSE 526 - Principles of Programming Languages, CSE 541 - Logic
in Computer Science, CSE 614 - Advanced Programming Languages, CSE 505
- Computing with Logic, CSE 504 - Compiler Design.
You can find a complete resume here. Don't
hesitate to contact me for any further information!