Speaking first about CS, it’s no doubt the defining umbrella discipline within the overall computing field, with most if not all of the others (computer engineering [CE], information systems [IS], software engineering [SE] and even IT itself) as potentially subs of CS with uniqueness incorporated from other fields not normally touched by CS on its own.
That being said, CS is more often than not the general introductory discipline that enables students to explore and pursue just about any area within the computing field. He may even be capable of trying out the other disciplines’ roles, albeit with some additional learning and training (e.g. application domain knowledge for IS, managing large-scale programming activities for SE, integrative programming and scripting for IT, digital logic and hardware engineering for CE).
In the same respect, however, CS on the whole is not particularly notable for being specialized and helpful with indicating where your specific end career paths and areas will be, compared to the other disciplines who came out due to their more obvious roles.
CS will allow you to explore the whole range of computing topics and knowledge but mostly from a learning standpoint. This is considered crucial for CS since it’s the only computing discipline that balances both theoretical and applied computing as part of its knowledge. Every other computing discipline touches on theoretical only to support and validate the mostly applied computing activities that they conduct. CS does either theoretical or applied impartially, or even both simultaneously, which only it can do. And it’s because of this required balance that studying CS requires that you spread yourself almost thinly across the discipline and the computing field in general.
Whereas all other computing disciplines are set to be industry practitioners, CS however can touch on that alongside research and academe due to its balanced approach and widespread knowledge, making the minor lack of specialization with immense flexibility.
Since IT is considered a sub of CS, it has many of the characteristics that CS itself possesses. Present in all computing disciplines is the appreciation and ideally strong foundation in systems fundamentals, namely systems development, computer architecture (hardware-software), information management (database), data communications (networking), human-computer interaction (interface) and platform technologies (web, desktop, mobile, etc.)
Distinct in IT is its ability to take these fundamentals steps further in order to take on management roles, such as those pertaining to organizations’ technological infrastructures. To that end, certain unique skills are found in IT like integrative programming (data mapping, scripting, security, intersystem communication), systems integration (acquisition, deployment, testing) and systems administration (technical support, communications, system maintenance).
Being on some form of opposite to CS, IT obviously has a more specialized set of skills for a specific role mostly within industry practice. Skill sets are presumably more well-defined and end career paths are clearer. This tends to limit the possible opportunities that IT could provide, although being chief information officer (CIO) and/or chief technology officer (CTO) is still within reach. Project management is also more than, especially in terms of certain specific technologies pertaining to the fundamentals (e.g. data communications leading up to wireless infrastructure management, information management leading up to data warehousing, etc.).
Just to make things clear regarding mathematics in the disciplines, CS usually tends to have the reputation for being the heaviest in math, although all of the other disciplines have their own weight. Whereas CS might need for algorithm design and mathematical modelling, IT needs math for management purposes such as in statistics of systems performance evaluation and in analyzing trade-offs, be it financial, technical or any other