A system that can have: A set of possible states A set of possible inputs that the system can recieve A set of possible outputs that the system can generate A set of rules for an Algorithm