Education: Doctorate from Oxford University 1997.
Research Interests: programming language design, semantics, and implementation; logic programming; computer applications in music, art, and design.
I currently run the Asteroid project. Asteroid is an open-source, multi-paradigm programming language that supports first-class patterns and pattern-matching oriented programming. Asteroid is heavily influenced by Python, Rust, ML, and Prolog. Try it out at repl.it
Asteroid 1.0.0 released. See PyPI.
Teaching (Spring 2022):
Programming for Data Science, CSC/DSP 310
Programming Language Semantics, CSC501
Previously Taught Courses:
Fundamentals of Programming Languages, CSC301
Programming Language Implementation, CSC402
Topics in AI: Introduction to Machine Learning with Support Vector Machines, CSC581
Theory of Computation, CSC544
Models of Computation, CSC445
Programming Language Boot Camp
An Introduction to Artificial Intelligence with AI Game Development, CSC481
Theory of Compilers, CSC502
Discrete Mathematics, CSC/MTH 447
Foundations of Logic Programming, CSC491
Arduino Workshop at the AS220 in Providence
Cognitive Modeling, CSC592
Advanced Logic Programming, CSC491 Sec 9
Knowledge Discovery and Data Mining, CSC492/CSC592
Software Engineering, CSC305