{"id":9,"date":"2018-08-27T21:40:15","date_gmt":"2018-08-28T01:40:15","guid":{"rendered":"http:\/\/sites.nd.edu\/john-mcguinness\/?p=9"},"modified":"2018-08-27T21:40:43","modified_gmt":"2018-08-28T01:40:43","slug":"reading01","status":"publish","type":"post","link":"https:\/\/sites.nd.edu\/john-mcguinness\/2018\/08\/27\/reading01\/","title":{"rendered":"Reading01: What is Computer Science"},"content":{"rendered":"<h3>Reading01: What is Computer Science<\/h3>\n<p>The precise role of computer science is open to much debate. As the domain of software development has progressed over the last three quarters of a century, the most appropriate way to categorize the discipline has not always been obvious. \u00a0Is it an art, a science, or an engineering discipline? \u00a0Does it matter? \u00a0Compelling arguments can be given for each, so throughout this post I will detail why I think computer science\u00a0<em>is<\/em> an engineering discipline &#8211; just one of a different sort than we are used to. \u00a0However, I will ultimately explain why I think the distinction is essentially irrelevant.<\/p>\n<p>The relevant entry for the word &#8220;engineering&#8221; in the Webster dictionary gives a two part definition: engineering is (a) &#8220;the application of science and mathematics by which the properties of matter and the sources of energy in nature are made useful to people&#8221; and (b) &#8220;the design and manufacture of complex product.&#8221; \u00a0Using the dictionary definition as the standard of proof for whether software development is an engineering discipline leaves a relatively simple task. \u00a0For part (a) of the definition, I think it is quite difficult to argue that software engineers do not &#8220;make the properties of matter and sources of energy in nature useful to people.&#8221; \u00a0Sure, if it weren&#8217;t for the electrical engineers who build and design the necessary circuitry and chips, cell phones would not exist. \u00a0But neither would they exist without the computer programmers who developed the operating systems and software to allow average humans to interact with these machines at ease. \u00a0Thus, computer scientists qualify as engineers according to part (a). \u00a0Part (b) is even easier to deal with. \u00a0Software developers design and release complex products on a daily basis. \u00a0Just look at the code required to run Facebook or power a self-driving car if you don&#8217;t believe me.<\/p>\n<p>It could be argued that since computer scientists are dependent on the work of other engineering disciplines (especially electrical engineers) for their work to be possible, they are somehow less qualified as engineers. \u00a0Though I think this argument is shallow and ignores the fact that collaboration among engineers of different disciplines is commonplace (just think about what is required to build a skyscraper), I do think it underscores the idea that electrical engineers (and even the &#8220;computer engineers&#8221; responsible for hardware and very low level software development) are a more traditional sort of engineer than the software engineers of today. \u00a0The difference between software engineers and the more traditional engineering disciplines is that the traditional engineers work more closely with the raw elements of the earth, while software engineers work more with the products of other engineers (though all engineers today use software products, so this might be somewhat circular). \u00a0Thus, while I definitely do consider software developers true engineers, I will concede that a concrete distinction between them and members of the other classical engineering disciplines.<\/p>\n<p>In the end, though, I think this argument is somewhat unimportant. \u00a0Rather than getting caught up in semantics, I believe both traditional engineers and software engineers should look at their respective shortcomings and strengths and look to the other to improve. \u00a0Collaboration between engineers makes the world a better place.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Reading01: What is Computer Science The precise role of computer science is open to much debate. As the domain of software development has progressed over the last three quarters of a century, the most appropriate way to categorize the discipline has not always been obvious. \u00a0Is it an art, a science, or an engineering discipline? [&hellip;]<\/p>\n","protected":false},"author":3162,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-9","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/sites.nd.edu\/john-mcguinness\/wp-json\/wp\/v2\/posts\/9","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sites.nd.edu\/john-mcguinness\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sites.nd.edu\/john-mcguinness\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sites.nd.edu\/john-mcguinness\/wp-json\/wp\/v2\/users\/3162"}],"replies":[{"embeddable":true,"href":"https:\/\/sites.nd.edu\/john-mcguinness\/wp-json\/wp\/v2\/comments?post=9"}],"version-history":[{"count":2,"href":"https:\/\/sites.nd.edu\/john-mcguinness\/wp-json\/wp\/v2\/posts\/9\/revisions"}],"predecessor-version":[{"id":11,"href":"https:\/\/sites.nd.edu\/john-mcguinness\/wp-json\/wp\/v2\/posts\/9\/revisions\/11"}],"wp:attachment":[{"href":"https:\/\/sites.nd.edu\/john-mcguinness\/wp-json\/wp\/v2\/media?parent=9"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sites.nd.edu\/john-mcguinness\/wp-json\/wp\/v2\/categories?post=9"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sites.nd.edu\/john-mcguinness\/wp-json\/wp\/v2\/tags?post=9"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}