Three Pillars

Computer Science courses are divided into three main categories, described below, delineated by their numbers.

Category Descriptions

COSC 30-49. (Theoretical Courses)
These courses teach the mathematical foundations of computer science. Courses range from a discrete math course (30), a basic algorithms course (31), a course on the theory of computation (39), to more advanced courses in algorithms and complexity theory, like randomized algorithms (34), data streaming algorithms (35), and computational complexity (40).

COSC 50-69. (Systems Courses)
These courses teach techniques for building large, reliable, software and hardware systems. Courses range from the gateway course which teaches C, UNIX, etc (50), to courses that teach the innards of a computer system including architecture (51), compilers (57), operating systems (58), and programming languages (59). Augmented and virtual reality development (63) and human computer interaction (67) also fall in this pillar.

COSC 70-89. (Applications Courses)
These courses are more application oriented and more varied in flavor. Courses include a gateway course (70) teaching the foundations that cut across many courses in this pillar, computational linguistics (72),  courses on machine learning (74), AI (76), computer graphics (77 and 87), computer vision (83), computational photography (73) and many topics courses (89s).

See this page for a complete list, and feel free to reach out to individual professors to learn more about them.