Computer science

Computer science

Source
  • Alan Turing's insight: there are only five actions that a computer has to perform in order to do "anything".

Every algorithm can be expressed in a language for a computer consisting of only five basic instructions:[53]
  • move left one location;

  • move right one location;

  • read symbol at current location;

  • print 0 at current location;

  • print 1 at current location.
  • Corrado Böhm and Giuseppe Jacopini's insight: there are only three ways of combining these actions (into more complex ones) that are needed in order for a computer to do "anything".[54]

Only three rules are needed to combine any set of basic instructions into more complex ones:
  • sequence: first do this, then do that;

  • selection: IF such-and-such is the case, THEN do this, ELSE do that;

  • repetition: WHILE such-and-such is the case, DO this.

Note that the three rules of Boehm's and Jacopini's insight can be further simplified with the use of goto (which means it is more elementary than structured programming). Programming paradigms[edit]

Programming languages can be used to accomplish different tasks in different ways. Common programming paradigms include:


  • Functional programming, a style of building the structure and elements of computer programs that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It is a declarative programming paradigm, which means programming is done with expressions or declarations instead of statements.[55]

  • Imperative programming, a programming paradigm that uses statements that change a program's state.[56] In much the same way that the imperative mood in natural languages expresses commands, an imperative program consists of commands for the computer to perform. Imperative programming focuses on describing how a program operates.

  • Object-oriented programming, a programming paradigm based on the concept of "objects", which may contain data, in the form of fields, often known as attributes; and code, in the form of procedures, often known as methods. A feature of objects is that an object's procedures can access and often modify the data fields of the object with which they are associated. Thus object-oriented computer programs are made out of objects that interact with one another.[57]

  • Service-oriented programming, a programming paradigm that uses "services" as the unit of computer work, to design and implement integrated business applications and mission critical software programs

Many languages offer support for multiple paradigms, making the distinction more a matter of style than of technical capabilities.[58]


Academia[edit]

Conferences are important events for computer science research. During these conferences, researchers from the public and private sectors present their recent work and meet. Unlike in most other academic fields, in computer science, the prestige of conference papers is greater than that of journal publications.[59][60] One proposed explanation for this is the quick development of this relatively new field requires rapid review and distribution of results, a task better handled by conferences than by journals.[61]


Education[edit]

Computer Science, known by its near synonyms, Computing, Computer Studies, has been taught in UK schools since the days of batch processing, mark sensitive cards and paper tape but usually to a select few students.[62] In 1981, the BBC produced a micro-computer and classroom network and Computer Studies became common for GCE O level students (11–16-year-old), and Computer Science to A level students. Its importance was recognised, and it became a compulsory part of the National Curriculum, for Key Stage 3 & 4. In September 2014 it became an entitlement for all pupils over the age of 4.[63]

In the US, with 14,000 school districts deciding the curriculum, provision was fractured.[64] According to a 2010 report by the Association for Computing Machinery (ACM) and Computer Science Teachers Association (CSTA), only 14 out of 50 states have adopted significant education standards for high school computer science.[65]

Israel, New Zealand, and South Korea have included computer science in their national secondary education curricula,[66][67] and several others are following.[68]


See also[edit]


  1. ^ In 1851

  2. ^ "The introduction of punched cards into the new engine was important not only as a more convenient form of control than the drums, or because programs could now be of unlimited extent, and could be stored and repeated without the danger of introducing errors in setting the machine by hand; it was important also because it served to crystallize Babbage's feeling that he had invented something really new, something much more than a sophisticated calculating machine." Bruce Collier, 1970

  3. ^ See the entry
    "Computer science" on Wikiquote for the history of this quotation.

  4. ^ The word "anything" is written in quotation marks because there are things that computers cannot do. One example is: to answer the question if an arbitrary given computer program will eventually finish or run forever (the Halting problem).



  1. ^ "What is Computer Science? - Computer Science. The University of York". www.cs.york.ac.uk. Retrieved June 11, 2020.

  2. ^ "WordNet Search—3.1". Wordnetweb.princeton.edu. Retrieved May 14, 2012.

  3. ^ "Definition of computer science | Dictionary.com". www.dictionary.com. Retrieved June 11, 2020.

  4. ^ Harel, David. (2014). Algorithmics The Spirit of Computing. Springer Berlin. ISBN 978-3-642-44135-6. OCLC 876384882.

  5. ^ "COMPUTER SCIENCE: THE DISCIPLINE" (PDF). May 25, 2006. Archived (PDF) from the original on May 25, 2006. Retrieved January 4, 2021.

  6. ^ The MIT Press. "What Can Be Automated? Computer Science and Engineering Research Study | The MIT Press". mitpress.mit.edu.

  7. ^ "Charles Babbage Institute: Who Was Charles Babbage?". cbi.umn.edu. Retrieved December 28, 2016.

  8. ^ "Ada Lovelace | Babbage Engine | Computer History Museum". www.computerhistory.org. Retrieved December 28, 2016.

  9. ^ "Wilhelm Schickard – Ein Computerpionier" (PDF) (in German).

  10. ^ Keates, Fiona (June 25, 2012). "A Brief History of Computing". The Repository. The Royal Society.

  11. ^ "Science Museum, Babbage's Analytical Engine, 1834-1871 (Trial model)". Retrieved May 11, 2020.

  12. ^ a b Anthony Hyman (1982). Charles Babbage, pioneer of the computer.

  13. ^ "A Selection and Adaptation From Ada's Notes found in Ada, The Enchantress of Numbers," by Betty Alexandra Toole Ed.D. Strawberry Press, Mill Valley, CA". Archived from the original on February 10, 2006. Retrieved May 4, 2006.

  14. ^ "The John Gabriel Byrne Computer Science Collection" (PDF). Archived from the original on April 16, 2019. Retrieved August 8, 2019.

  15. ^ "In this sense Aiken needed IBM, whose technology included the use of punched cards, the accumulation of numerical data, and the transfer of numerical data from one register to another", Bernard Cohen, p.44 (2000)

  16. ^ Brian Randell, p. 187, 1975

  17. ^ The Association for Computing Machinery (ACM) was founded in 1947.

  18. ^ "IBM Archives: 1945". Ibm.com. Retrieved March 19, 2019.

  19. ^ "IBM100 – The Origins of Computer Science". Ibm.com. September 15, 1995. Retrieved March 19, 2019.

  20. ^ a b c Denning, Peter J. (2000). "Computer Science: The Discipline" (PDF). Encyclopedia of Computer Science. Archived from the original (PDF) on May 25, 2006.

  21. ^ "Some EDSAC statistics". University of Cambridge. Retrieved November 19, 2011.

  22. ^ "Computer science pioneer Samuel D. Conte dies at 85". Purdue Computer Science. July 1, 2002. Retrieved December 12, 2014.

  23. ^ a b Tedre, Matti (2014). The Science of Computing: Shaping a Discipline. Taylor and Francis / CRC Press.

  24. ^ a b
    Louis Fine (1959). "The Role of the University in Computers, Data Processing, and Related Fields". Communications of the ACM. 2 (9): 7–14. doi:10.1145/368424.368427. S2CID 6740821.

  25. ^ "Stanford University Oral History". Stanford University. Retrieved May 30, 2013.

  26. ^ Donald Knuth (1972). "George Forsythe and the Development of Computer Science". Comms. ACM. Archived October 20, 2013, at the Wayback Machine

  27. ^ Matti Tedre (2006). "The Development of Computer Science: A Sociocultural Perspective" (PDF). p. 260. Retrieved December 12, 2014.

  28. ^
    Peter Naur (1966). "The science of datalogy". Communications of the ACM. 9 (7): 485. doi:10.1145/365719.366510. S2CID 47558402.

  29. ^ Weiss, E.A.; Corley, Henry P.T. "Letters to the editor". Communications of the ACM. 1 (4): 6. doi:10.1145/368796.368802. S2CID 5379449.

  30. ^ Communications of the ACM 2(1):p.4

  31. ^ IEEE Computer 28(12): p.136

  32. ^ P. Mounier-Kuhn, L'Informatique en France, de la seconde guerre mondiale au Plan Calcul. L'émergence d'une science, Paris, PUPS, 2010, ch. 3 & 4.

  33. ^ Groth, Dennis P. (February 2010). "Why an Informatics Degree?". Communications of the ACM. Cacm.acm.org.

  34. ^ Tedre, M. (2011). "Computing as a Science: A Survey of Competing Viewpoints". Minds and Machines. 21 (3): 361–387. doi:10.1007/s11023-011-9240-4. S2CID 14263916.

  35. ^ Parnas, D.L. (1998). "Software engineering programmes are not computer science programmes". Annals of Software Engineering. 6: 19–37. doi:10.1023/A:1018949113292. S2CID 35786237., p. 19: "Rather than treat software engineering as a subfield of computer science, I treat it as an element of the set, Civil Engineering, Mechanical Engineering, Chemical Engineering, Electrical Engineering, […]"

  36. ^ Wegner, P. (October 13–15, 1976). Research paradigms in computer science—Proceedings of the 2nd international Conference on Software Engineering. San Francisco, California, United States: IEEE Computer Society Press, Los Alamitos, CA.

  37. ^ Denning, P.J.; Comer, D.E.; Gries, D.; Mulder, M.C.; Tucker, A.; Turner, A.J.; Young, P.R. (January 1989). "Computing as a discipline". Communications of the ACM. 32: 9–23. doi:10.1145/63238.63239. S2CID 723103.

  38. ^ Eden, A.H. (2007). "Three Paradigms of Computer Science" (PDF). Minds and Machines. 17 (2): 135–167. CiteSeerX 10.1.1.304.7763. doi:10.1007/s11023-007-9060-8. S2CID 3023076. Archived from the original (PDF) on February 15, 2016.

  39. ^ Turner, Raymond; Angius, Nicola (2019). "The Philosophy of Computer Science". In Zalta, Edward N. (ed.). The Stanford Encyclopedia of Philosophy.

  40. ^ a b "Computer Science as a Profession". Computing Sciences Accreditation Board. May 28, 1997. Archived from the original on June 17, 2008. Retrieved May 23, 2010.

  41. ^ Committee on the Fundamentals of Computer Science: Challenges and Opportunities, National Research Council (2004). Computer Science: Reflections on the Field, Reflections from the Field. National Academies Press. ISBN 978-0-309-09301-9.

  42. ^ "CSAB Leading Computer Education". CSAB. August 3, 2011. Retrieved November 19, 2011.

  43. ^ Clay Mathematics Institute P = NP Archived October 14, 2013, at the Wayback Machine

  44. ^ P. Collins, Graham (October 14, 2002). "Claude E. Shannon: Founder of Information Theory". Scientific American. Retrieved December 12, 2014.

  45. ^ Van-Nam Huynh; Vladik Kreinovich; Songsak Sriboonchitta; 2012. Uncertainty Analysis in Econometrics with Applications. Springer Science & Business Media. p. 63. ISBN 978-3-642-35443-4.

  46. ^ Phillip A. Laplante, 2010. Encyclopedia of Software Engineering Three-Volume Set (Print). CRC Press. p. 309. ISBN 978-1-351-24926-3.

  47. ^ A. Thisted, Ronald (April 7, 1997). "Computer Architecture" (PDF). The University of Chicago.

  48. ^ Jiacun Wang, 2017. Real-Time Embedded Systems. Wiley. p. 12. ISBN 978-1-119-42070-5.

  49. ^ Gordana Dodig-Crnkovic; Raffaela Giovagnoli; 2013. Computing Nature: Turing Centenary Perspective. Springer Science & Business Media. p. 247. ISBN 978-3-642-37225-4.

  50. ^ Simon Elias Bibri; 2018. Smart Sustainable Cities of the Future: The Untapped Potential of Big Data Analytics and Context-Aware Computing for Advancing Sustainability. Springer. p. 74. ISBN 978-3-319-73981-6.

  51. ^ Muhammad H. Rashid, 2016. SPICE for Power Electronics and Electric Power. CRC Press. p. 6. ISBN 978-1-4398-6047-2.

  52. ^ Rapaport, William J. (September 20, 2013). "What Is Computation?". State University of New York at Buffalo.

  53. ^ B. Jack Copeland, 2012. Alan Turing's Electronic Brain: The Struggle to Build the ACE, the World's Fastest Computer. OUP Oxford. p. 107. ISBN 978-0-19-960915-4.

  54. ^ Charles W. Herbert, 2010. An Introduction to Programming Using Alice 2.2. Cengage Learning. p. 122. ISBN 0-538-47866-7.

  55. ^ Md. Rezaul Karim; Sridhar Alla; 2017. Scala and Spark for Big Data Analytics: Explore the concepts of functional programming, data streaming, and machine learning. Packt Publishing Ltd. p. 87. ISBN 978-1-78355-050-0.

  56. ^ Lex Sheehan, 2017. Learning Functional Programming in Go: Change the way you approach your applications using functional programming in Go. Packt Publishing Ltd. p. 16. ISBN 978-1-78728-604-7.

  57. ^ Evelio Padilla, 2015. Substation Automation Systems: Design and Implementation. Wiley. p. 245. ISBN 978-1-118-98730-8.

  58. ^ "Multi-Paradigm Programming Language". developer.mozilla.org. Mozilla Foundation. Archived from the original on August 21, 2013.

  59. ^ Meyer, Bertrand (April 2009). "Viewpoint: Research evaluation for computer science". Communications of the ACM. 25 (4): 31–34. doi:10.1145/1498765.1498780. S2CID 8625066.

  60. ^ Patterson, David (August 1999). "Evaluating Computer Scientists and Engineers For Promotion and Tenure". Computing Research Association.

  61. ^ Fortnow, Lance (August 2009). "Viewpoint: Time for Computer Science to Grow Up". Communications of the ACM. 52 (8): 33–35. doi:10.1145/1536616.1536631.

  62. ^ Burns, Judith (April 3, 2016). "Computer science A-level 1970s style". Retrieved February 9, 2019.

  63. ^ Jones, Michael (October 1915). "Developing a Computer Science Curriculum in England: Exploring Approaches in the USA" (PDF). Winston Churchill Memorial Trust. Retrieved February 9, 2019.

  64. ^ "Computer Science: Not Just an Elective Anymore". Education Week. February 25, 2014.

  65. ^ Wilson, Cameron; Sudol, Leigh Ann; Stephenson, Chris; Stehlik, Mark (2010). "Running on Empty: The Failure to Teach K–12 Computer Science in the Digital Age" (PDF). ACM.

  66. ^ "A is for algorithm". The Economist. April 26, 2014.

  67. ^ "Computing at School International comparisons" (PDF). Retrieved July 20, 2015.

  68. ^ "Adding Coding to the Curriculum". The New York Times. March 23, 2014.

Overview[edit]


  • Tucker, Allen B. (2004). Computer Science Handbook (2nd ed.). Chapman and Hall/CRC. ISBN 978-1-58488-360-9.
    • "Within more than 70 chapters, every one new or significantly revised, one can find any kind of information and references about computer science one can imagine. […] all in all, there is absolute nothing about Computer Science that can not be found in the 2.5 kilogram-encyclopaedia with its 110 survey articles […]." (Christoph Meinel, Zentralblatt MATH)

  • van Leeuwen, Jan (1994). Handbook of Theoretical Computer Science. The MIT Press. ISBN 978-0-262-72020-5.
    • "[…] this set is the most unique and possibly the most useful to the [theoretical computer science] community, in support both of teaching and research […]. The books can be used by anyone wanting simply to gain an understanding of one of these areas, or by someone desiring to be in research in a topic, or by instructors wishing to find timely information on a subject they are teaching outside their major areas of expertise." (Rocky Ross, SIGACT News)

  • Ralston, Anthony; Reilly, Edwin D.; Hemmendinger, David (2000). Encyclopedia of Computer Science (4th ed.). Grove's Dictionaries. ISBN 978-1-56159-248-7.
    • "Since 1976, this has been the definitive reference work on computer, computing, and computer science. […] Alphabetically arranged and classified into broad subject areas, the entries cover hardware, computer systems, information and data, software, the mathematics of computing, theory of computation, methodologies, applications, and computing milieu. The editors have done a commendable job of blending historical perspective and practical reference information. The encyclopedia remains essential for most public and academic library reference collections." (Joe Accardin, Northeastern Illinois Univ., Chicago)

  • Edwin D. Reilly (2003). Milestones in Computer Science and Information Technology. Greenwood Publishing Group. ISBN 978-1-57356-521-9.

Selected literature[edit]



Articles[edit]



Curriculum and classification[edit]

Report Page