ComputerScience is not only about algorithms and implementations but also about social processes and could/should even stretch to politics. The topics covered by ComputerScience during its existence developed from the hard sciences slowly toward the soft sciences. I will try to develop a hierarchy here. I believe that * electrical engineering * theoretical models of computation - LambdaCalculus * practical models of computation - CategoryCompiler * dealing with large computer systems - OperatingSystem * studies of the development environment (IDEs) - SmallTalk * dealing with developer fallibility (errors) - UnitTest FormalVerification * practical aspects of social development processes - ExtremeProgramming AgileMethodology * politics of software development (ongoing) - IntellectualProperty OpenSource * theoretical aspects of social development processes (emerging?) - PsychologyMatters MyersBriggsForProgrammers You may add years to these items and add references, but please do not reorder and add comments below. You may add large topics that I missed. Notes: * I know that ComputerScience has two main roots: Electrical engineering and mathematics which first needed to converge and therefore this is no strict procession and also there are branches in and out that I discount on this simple exposition. Examples: Physics and math branche in with QuantumComputation. Math branches in with lots of topics like cryptography. Linguistics branches in and out a lot. * I think that any discipline will go from hard science to soft science as it matures because as it influences practical aspects of life more and more (at least if it does), then the side effects increase more and more. The focus shifts from logic the technique to the effects of the technique. * I hope I ordered this roughly by "main interest in". For each of the items above earlier or later examples can be found easily. -- GunnarZarncke ---- Discussion: * '''Order of these items is wrong.''' * '''Items are missing.''' * '''There really is no such procession.''' ** ''There is a clear separation: SoftwareEngineeringVsComputerScience one is hard the other is soft. There is no continuum.'' ---- See also SoftwareEngineeringBodyOfKnowledge