Computer science is the study of computers and computing as well as their theoretical and practical applications. Computer science applies the principles of mathematics, engineering, and logic to a plethora of functions, including algorithm formulation, software and hardware development, and artificial intelligence . Algorithms and complexity. Architecture and organization. Computational science. Graphics and visual computing. Human-computer interaction. Information management. Intelligent systems. Networking and communication.