theoretical foundations of computing 2227