About me

A Short History: I started my research career in computer science as a theoretical computer scientist, focusing on the theory of local versus global satisfaction for the generalized maxiumum satisfiability problem (MAX-CSP), still an active area of research. I also invented, independently and simultaneously on the other side of the Atlantic, an early form of non-chronological backtracking based on learned clauses (superresolution) which has become a key feature of most state-of-the-art SAT and CSP solvers.

Over the last few years, the work on P-optimal algorithms has influenced the development of a computational model for scientific communities. The model is realized as an exciting, fun but serious game, called the Scientific Community Game (SCG) (also called the Specker Challenge Game) which is used as a teaching innovation in CS courses. Besides teaching, SCG has applications to crowdsourcing of computational problem solving.

SCG has been analyzed in Ahmed Abdelmeged's dissertation. SCG is essentially a tournament of semantic games, guaranteeing that a perfect player must rank at the top. The players who are good at chosing the correct side (verifier or falsifier) and defending their side in a semantic game, win the tournament.

Next I applied my theoretical knowledge to another practical problem: the design and implementation of the Hardware Description Language Zeus, a predecessor of VHDL.

In the mid 1980s, I switched to Object-Oriented and Aspect-Oriented Software Development and focused on issues of software design and modularity. I founded the Demeter research team, which studied the then-novel idea of Adaptive Programming, also known as structure-shy programming and produced the Law of Demeter ("talk only to your friends": an explicit form of coupling control) and several systems for separating concerns in an object-oriented programming context: Demeter/Flavors, Demeter/C++, DemeterJ, DJ, XAspects. The new tool, DemeterF , adds the power of fine-grained type checking to control the evolution of functional, adaptive programs that can be easily re-targeted to different architectures, e.g. multi-core architectures.

My current area of research is about side-choosing games, again with the acronym SCG. SCGs are a basic concept for several areas, such as general game playing in AI, algorithmic problem solving and peer grading. We study techniques on how to solve and evaluate SCGs. For more information: Short Bio.