Computer science is a discipline that spans theory and practice. It requires thinking both in abstract terms and in concrete terms. The practical side of .