Fundamental Structures of Computer Science