Reading01: What is Computer Science

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.  Is it an art, a science, or an engineering discipline?  Does it matter?  Compelling arguments can be given for each, so throughout this post I will detail why I think computer science is an engineering discipline – just one of a different sort than we are used to.  However, I will ultimately explain why I think the distinction is essentially irrelevant.

The relevant entry for the word “engineering” in the Webster dictionary gives a two part definition: engineering is (a) “the application of science and mathematics by which the properties of matter and the sources of energy in nature are made useful to people” and (b) “the design and manufacture of complex product.”  Using the dictionary definition as the standard of proof for whether software development is an engineering discipline leaves a relatively simple task.  For part (a) of the definition, I think it is quite difficult to argue that software engineers do not “make the properties of matter and sources of energy in nature useful to people.”  Sure, if it weren’t for the electrical engineers who build and design the necessary circuitry and chips, cell phones would not exist.  But 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.  Thus, computer scientists qualify as engineers according to part (a).  Part (b) is even easier to deal with.  Software developers design and release complex products on a daily basis.  Just look at the code required to run Facebook or power a self-driving car if you don’t believe me.

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.  Though 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 “computer engineers” responsible for hardware and very low level software development) are a more traditional sort of engineer than the software engineers of today.  The 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).  Thus, 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.

In the end, though, I think this argument is somewhat unimportant.  Rather 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.  Collaboration between engineers makes the world a better place.

Reading00: My Ethical Framework

Reading00: My Ethical Framework

The concept of right and wrong seems relatively simple on the surface, but in reality it can be an extraordinarily complicated topic.  With so many differing opinions on what is and is not moral, it can be very difficult to decide what (if any) framework to follow.  Many people find it easier to simply slide into the relativistic stance that right and wrong depends completely on the person or culture.

Personally, I don’t know exactly what to call my stance, but the core of my position is that I am vehemently anti-relativist.  I think that relativism is one of the most dangerous ideas to emerge in recent years.  It can be used to justify almost anything, including unspeakable things from female genital mutilation to repression of speech.  I am quite disturbed that the technology industry has seemed to embrace a form of cultural relativism regarding privacy and freedom of speech.  If a company takes the stand that privacy is of the upmost importance and refuses to create a backdoor for American government investigators, then the same company should absolutely not build a system that allows the Chinese government such privileges simply due to the different culture and laws there.  I believe such behavior to be extremely hypocritical, but it can be easily justified with a relativist worldview.  Therefore, the first principle of my ethical framework is that morality is absolute.

Now that I have described what I feel to be an absolutely unacceptable approach to ethics, I will move on to a more hazy topic – how I actually judge the morality of actions.  I don’t think my personal ethics fall into one of the classical buckets, but I would describe my views as falling somewhere in between the Kantian and Utilitarian positions.  I believe first and foremost that the dignity of human life should be respected completely.  However, I will not go so far as to wholly embrace the Kantian position that whether an action is right or wrong does not depend on its consequences but on whether it fulfills our duty as humans (the categorical imperative).  I do believe that there are some things that are never acceptable.  For instance, using new technology to test genetic enhancements on humans without their consent is something I think is always evil regardless of potential positive outcomes.  However, there are some less severe cases where I think the ends can justify some otherwise questionable means.  One such case is the currently controversial topic of data privacy.  While I think it is immoral for the government to indiscriminately target all civilians and access their personal data, I think that an intelligence agency hacking into a suspected terrorist’s information to attempt to discover information about a potential attack is probably just.

In summary, I take the Kantian position that there are certain things that simply are never acceptable, but in more general and less severe cases, I take more of a utilitarian position that the intended outcome of some actions can justify methods that could otherwise be seen as immoral.

Reading00: Intro

Reading00: Intro

Hi everyone!  My name is John McGuinness and I’m a senior computer science major originally from the Washington DC area.  I first took a coding class my senior year of high school and found coding to feel less like work than any other academic endeavor I had previously undertaken, so I naturally decided to major in CS and have had no regrets.  Outside school, I love to golf, am an avid DC sports fan, and have a strong interest in the weather.  I’m also a proud member of the Fisher hall community.  In this class, I hope to continue some of the discussions surrounding privacy and consent that I had in my Philosophy of Technology class last semester.  I’m looking forward to a great semester!