definition of problem in computer science