| Academe
|
This page is about my academic / professional /
computer-science-related interests.
Geek / Academic / Project News
- I am very pleased to announce that I will be in Seattle this summer
working at Microsoft as a developer intern. Details to come.
UPDATE!
At this point, I can at least say that I'll be working with the Visual
Studio team. It looks like I'll be staying with a couple of other
"Microsofties" (Surely, somebody else must have already coined this
word?) in a house in Kirkland. I'm looking forward to it.
- My committee and I have agreed on a date and time for my oral qualifying
examination. Details to come. My committee are:
UPDATE!
I've passed my examination. I think that it went fairly well, and I'm
extremely glad to have it done. Now, I just need to finish up the
paperwork.
- I've started a page for Pure2, the pure type systems
interpreter that I've implemented for use in my qualifying examination
presentation; the code and binaries will be available shortly.
UPDATE!
The Pure2 interpreter and some simple documentation is up.
- For the purposes of my work, "property-aware programming" has been
renamed to "evolving types". Thanks to Amr for that!
- Now that the readings list is together, I am working on a committee for
my qualifying examination. This should be finalised soon, at which point
I'll add a list of the members (in addition to my advisers Amr and
Andy At some point, perhaps I shall post the reading list also.
- Work / Academic Projects
- BB–search for Busy Beaver continues (with B.van Heuveln, S.Bringsjord, O.Kellet, et al.)
- Braque–a prototype property-aware programming language
- LibCompTool–complexity analysis for simple generic programs
- MiniKanrenCaml–O'Caml library implementing the core of
MiniKanren, an adorable logic programming language
- Motion–a simple library for scripting interpolations
- Braque / property-aware programming (with A.Sabry, A.Lumsdaine, and P.Gottshling)
- Pure2–a simple interpreter for the functional pure type systems
- Seqs–theorem prover for constructive sequent calculus with unification
- subrecursive composition languages and escapes (with T.Veldhuizen)
- U-Space–a parser for natural-language sentences (in a small subset of English)
- Toy / Personal Projects
- C++-Template Lambda-Calculus Interpreter
(just because we can!)
- Caml-S–System S in O'Caml
- CamlTrax–layout for O'Caml
- DX6–"digital flashcards" for studying vocabulary
- Function Flow Diagrams–a type of diagram for documenting systems from afunctional perspective
- FPk–an open-source implementation of J.Backus's FP language in O'Caml
- KVS2–a simple version control system
- Match–a simple utility for filtering text
- Morphine–a typed functional language
- NoteTex–a simple preprocessor for Latex to allow for rapid authoring of notes and outlines
- SubCode–a lightweight, general preprocessor for embedded languages
- SchemeS–System S in Scheme
- SCurses–a very simple binding of curses for O'Caml
- WebGen–the tool / language that generates my web-site
- While'–a sub-recursive imperative language with extensible records and references
Academic / Research Interests
Within the area of programming languages, I am primarily interested in the
following interrelated topics:
- functional programming
- pure type systems
- dependent types
- programs as proofs
- reüsable abstractions
- semantics
- language-level property manipulation
Postgraduate School
I am currently a Ph.D. student at
Indiana University, Bloomington in the
Department of Computer Science. I am doing my Ph.D. minor
with the Department of Gender Studies. I am a member of the
Open Systems Laboratory.
Apparently, this is what comp sci grad school is ... according to some
people at CMU, at least ... It doesn't look so hard, does it?
|
Postgraduate Coursework
mostly so that I can remember!
- Rensselaer Polytechnic Institute
- 2002
- Generic Programming (D.R.Musser)
- Chalmers University of Technology
- Indiana University
- 2005
- 2006
- 2007
- Logic, Belief, and Self-Reference (independent study, A.Sabry)
- Ancient Women (K.A.Pyburn)
- Concepts of Gender (S.Sanders)
- Property-Aware Programming (independent study, P.Gottschling)
- Type Systems (independent study, A.Sabry)
- 2008
- Gender, Medicine, & the Body (F.Malti-Douglass)
- Logics and Type Sytsems (independent study, A.Sabry)
Programming Languages Group
I am a member of the PL Group. We meet to present work, discuss problems,
practise talks, etc. We now—with the blessing of our fearless leader (in
the sense that it is he who coerces us into giving talks),
Roshan—have a web-page that I'm maintaining. It's mostly
filler for now, but you can visit it here.
Teaching
- Chalmers University of Technology
- term 1 2003-2004, term 1 2004-2005
- terms 3-4 2003-2004, terms 3-4 2004-2005
PacMan
I studied animation for a bit as an undergrad. A somewhat unique PacMan
animation set to Steppenwolf's _Magic Carpet Ride_ was the end result. My
professor didn't think terribly highly of it, but I am rather pleased.
The endless evenings, nights, and weekends in the lab with the other
animation geeks comprise a particularly fond memory for me.
|
SpaceWars
Katie Schaeffer & I created this game for a computer graphics course
we took at RPI; we're pretty pleased with the fruits our efforts. We have
a compiled version for a few operating systems.
|
Erdös Number
P.Erdös
|
|
|
|
K.D.P.Ross
|
The Erdös number, honouring the late Hungarian mathematician Paul
Erdös, one of the most prolific writers of mathematical papers, is a
way of describing the "collaborative distance", in regard to mathematical
papers, between an author and Erdös.
In order to be assigned an Erdös number, an author must cowrite a
mathematical paper with an author with a finite Erdös number. Paul
Erdös has an Erdös number of 0. If the lowest Erdös number
of a coäuthor is X, then the author's Erdös number is X + 1.
Above is the chain of authors demonstrating that my Erdös number is
(at most) 4. Many thanks to Marcin for pointing me to
the Schupp-Krishnamoorthy-Zalewski-Kilbride paper! –and– Here is a
constructive proof of the bound:
My (greetings and) apologies to any Hungarian-readers for
incorrectly rendering the "o" with double acute accents as one with
an umlaut. I cannot find a way to encode the former in HTML, so if
anyone knows the trick(s) necessary for doing so, I would be
grateful if you would mail me.
Online Papers, etc.
- Rensselaer Polytechnic Institute, undergraduate
student, Dept of Computer Science,
Dept of Cognitive Science (1999–2002)
- papers
- talks / presentations
- Rensselaer Polytechnic Institute, researcher,
Dept of Computer Science,
Dept of Cognitive Science (2003)
- Chalmers University of Technology, Ph.D. student,
Dept of Computing Science; researcher
Software Methodologies and Systems Group (2003–2005)
- papers
- talks / presentations
- Indiana University, Ph.D. student,
Dept of Computer Science,
Dept of Gender Studies; researcher,
Open Systems Laboratory (2005–present)
- papers
- talks / presentations
- "Adventures Parsing English –or– Where science fails and what you can do about it" (03 May 2006)
talk at the OSL lunch talks series
- "Towards an Automatic Complexity Analysis for Generic Programs"
(28 September 2006)(pdf)
talk at the OSL lunch talks series;
very
similar to talk at WGP 2006
- "Introduction to Arrows" (9 November 2006) (introduction, arrows implementation and examples)(Haskell)
talk for Quantum Programming Languages
- "Motion: An interpolation / motion library for Haskell"
talk at the OSL lunch talks series
- "Ban Zhao"
(15 February 2006)(pdf)
talk for Ancient Women
- "Ada Lovelace"
(22 February 2006)(pdf)
talk for Ancient Women
- "F|LOSSin' 'n' Set Bangin': A comparative analysis of women in F|LOSS and street gangs" (26 February 2006)
talk for Ancient Women, based on my paper for the same course
- "Property-Aware Programming: Shades of Grey" (10 October 2007)
talk at the OSL lunch talks series
- "Property-Aware Programming: Shades of Grey: Part 1" (19 October 2007)
talk at the PL group talks series (This version is significantly expanded and more technical than the previous talk of the same name.)
- "Property-Aware Programming: Shades of Grey: Part 2" (2 November 2007)
talk at the PL group talks series (This will conclude the previous talk at the PL group.)
- "Evalving Types: Rectifying Computing with Reality" (23 April 2008)
talk at the OSL lunch talks series
- "Typed Lambda Calculi" (06 May 2008)
talk for my oral qualifying examination
(software for which I'm an author / contributor is marked with a
*
)
- Applications
- DX6
(a simple vocabulary-study program)
*
- Emacs
("the extensible, customisable, self-documenting real-time
display editor")
- Firefox
(fantastic web browser)
- It's All Text
(use Emacs or VI to edit text areas in your web browser)
- Tor
(browse anonymously)
- Privoxy
(non-caching proxy; you'll probably need this to use Tor, on GNU/Linux at least)
- Tor Test Page
(are you browsing through the Tor network?)
- Zotero
(fantastic research tool)
- OpenOffice
(a Free office suite with open file formats)
- Thunderbird
(mail client)
- VLC
(multiplatform video player for a
lot
of formats)
- LaTeX
- Listings
(package for formatting source code)
- Lyx
(graphical front-end for LaTeX)
- NoteTex
(a simple tool for rapidly writing notes)
*
- Operating Systems
- GeexBox
(live MPlayer-based media-player GNU/Linux)
- Knoppix Linux
(bootable, live CD GNU/Linux)
- Slax Linux
(small, bootable, live GNU/Linux)
- Ubuntu Linux
(running on most of my machines; also available in a live
version)
- Philosophy
- Programming Languages
- Haskell
(non-strict, purely-functional language)
- Morphine
(my System-F-based functional language)
*
- OCaml
(general-purpose functional programming language with a
powerful module system and native-code compiler and an
interpreter)
- Caml-S
(System S in OCaml)
*
- CamlTrax
(layout for OCaml)
*
- DypGen
(LGR parser-generator with positional variables)
- Godi
("advanced programming environment" for
OCaml—provides many useful libraries and packages
with a painless installer system)
- Menhir
(LR(1) parser-generator with named variables)
- KVS2
(a simple version control library; also nice for
writing OCaml programs that interface with the
"outside world")
*
- OCaml+TWT
(layout for OCaml)
- OCaml-Curses
(curses wrapper for OCaml)
- SCurses
(simple curses wrapper for OCaml)
*
- Opium (my newest project; details coming soon)
*
- Stratego
(strategy-based term rewriting)
- While'
(sub-recursive imperative language with extensible records
and references)
*
- Proof Systems
- Coq
(types-based, intuitionistic proof assistant)
- Proof General
(very handy Emacs mode for Coq and other proof assistants)
- Tools
- GraphViz
(a real life-saver if you draw a lot of Turing machine
diagrams or function flow diagrams ... great for a lot of
graph-drawing)
- Match
(line-filtering utility)
*
- SubCode
(flexible preprocessing orchestration)
*
- RLWrap
(a super-handy line-editing tool)
- Unison
(file synchronisation)
- version control
- GNU Arch
(a.k.a. "TLA" ... an alternative version-control
software)
- Darcs
(simple, decentralised version-control that claims to
be based on physics phenomena)
- KVS2
(my simple version-control library)
*

This page was generated by WebGen on PhoenixFyre on Sun May 11 23:11:56 EDT 2008. (W-Links mode.)