Watch a self-organizing map (SOM) learn the 'swiss roll' data set implemented with our popsom package published in R. This shows that a SOM is able to learn the 'swiss roll' data set if you give it enough time to converge. Our newly developed convergence criterion reports whether the SOM had enough time to fully converge. (Animations due to Vishakh Gopu)
Education: Doctorate from Oxford University 1997.
Research Interests: machine learning, data science, programming language semantics and implementation, logic, logic programming.
Teaching (Fall 2019):
Fundamentals of Programming Languages, CSC301
Programming Language Implementation, CSC402/CSC502
Previously Taught Courses:
Programming for Data Science, CSC310
Programming Language Semantics, CSC501
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
Software Systems I am involved with:
Asteroid - A pattern-level Programming Language.
POPSOM - An R package for self-organizing maps providing advanced visualization and statistical quality measures.
GPX - Gene Phylogeny eXplorer for spectral genome analysis.
PentaPlot - a visualization system for phylogenetic content.
ErrorEngine - a system for automatic narrative evolution.
UCG-E - an equational logic programming system.
OBJ3 - an equational specification system.
TRIM - an abstract machine for order-sorted rewriting.