Reading 13: Computer Science Education

Whenever I watch Good Will Hunting, the following scene always stands out to me:

Will: “See, the sad thing about a guy like you is, in 50 years you’re gonna start doin’ some thinkin’ on your own and you’re going to come up with the fact that there are two certainties in life: one, don’t do that, and two, you dropped 150 grand on a fuckin’ education you could have got for a dollar fifty in late charges at the public library!”

Clark: “Yeah, but I will have a degree. And you’ll be servin’ my kids fries at a drive-thru on our way to a skiing trip.”

In this scene, I identify with Clark-and it scares me.  This exchange always makes me think about my and my parents’ 200+ thousand dollar investment in my Computer Science education at Notre Dame.  Unfortunately, I really do not believe that I would not be able to achieve this same level of CS competence for free.  Nowadays I wouldn’t even need a library card, I can access everything from my computer.  In fact, during my education here I quickly learned that I do not need to buy any textbooks for any class as all of them are available online.  Additionally, for many classes that I have taken I have found very similar lectures recorded from other Universities online with problems, slides, and exams as well.  Sadly I have joked with some of my friends that for a few classes I learned more from Stanford professors than I did from my Notre Dame one.  With this in mind, my education was only worth it for building connections and for the degree.

Without a degree, I do not think I would have been hired.  I’m not a prodigy and would not have been as desired without my education background.  Plenty get by without one but for my family it never would have been acceptable (and I would have been too afraid to try).  But in all honesty, I think that all of the resources necessary for a top-notch CS degree are available online for free.

I believe that Notre Dame has prepared me pretty well for my future career but at the same time, I’m not sure. I still feel uncomfortable with my CS proficiency after receiving offers from Apple and Google and I do wish that I would have been forced to code more (as much as I’d hate the extra work, I feel like I did not have to write nearly enough code while here).

Going back to the main question, I think that Notre Dame’s CS catalog fits the objectives and outlines of CS2013 very well.  Additionally I also think that the courses and education I received here match all of the ABET criteria.  My education was great, it just could have been accomplished for free with enough motivation and only missing the critical degree part of the experience.  Even teamwork could be accomplished without classmates through Open Source communities and hackathons.

Lastly, I think that a CS education is hard to define.  Reading these articles, many of them seemed vague or contradictory in what they expected from a recent CS graduate.  “What every computer science major should know” was the most specific and therefore the one that I matched the worst.  The article named “essential skills” and mandatory languages that I do not know.  However, I don’t think these really are essential.  Why do I need to know Racket, Squeak, Standard ML, Prolog, Scala, and Haskell? I don’t know these and NONE of them have been an issue yet.  Furthermore, I recently found out I will be primarily a Java developer at my first job.  I haven’t touched Java in years.  But if I know C++ I do not anticipate it being a huge problem.  Last summer I made an iOS application in Objective-C.  Prior to the summer, I had zero experience with this.  But I learned the language from a free online class and was able to excel.  To me, defining many languages/things that CS students need to learn is a waste.  What I think is fundamental is theoretical knowledge about core CS concepts, an overview of the most important practical concepts, and a lot of practice in almost any language.  After that, everything pertinent will be learned on the job.  If you can think and have a background knowledge in theoretical matters, I think that is all that matters.

Reading 13: Computer Science Education

Project 04: AI in the Movies

Casey Hanley and my discussion about AI in the movie Ex Machina was emailed to you as we cannot upload it for free on WordPress.

During the podcast I blanked on an insight I had during the movie.  What I wanted to say was that the improvement that was made to the Turing Test was cool and seemed to make sense.  Allowing the tester to see that they are examining a robot and having them still decide that it is conscious is stronger proof than a written only test.  Additionally, testing the AI to see if it can escape confinement using a human is another improvement to the test that I found interesting, especially if the desire to escape or lie was not explicitly programmed.

Project 04: AI in the Movies

Reading 12: Freedom of Speech

Censorship is the practice of filtering and suppressing content and information that could be considered harmful or sensitive.  In my life, the main forms of censorship that I come across are profane and racist comments being removed from chat forums.  However, in many countries censorship is a much greater deal.  In many nations, the government takes extraordinary measures to prevent its citizens from seeing information that undermines the authority of the government or weakens the strength of the government in any way.

Some governments seek to limit the freedom of speech and information for several reasons.  The main reason is to keep power and control.  China, the most popular and skilled censoring example, censors to try to stifle independence movements that would threaten the government by filtering out what citizens can access on the internet.  China and many other nations also arrest citizens for posting anti-government messages or banned content.  North Korea also seeks to protect its power by preventing its citizens from seeing views and facts from the outside world.  However, this communist nation censors the web by prohibiting its citizens from accessing it at all.  In addition to filtering content, blocking access, and arresting dissenters, other censorship methods include threats/blackmail, bottlenecking traffic, propaganda and providing government-run websites.

The practice of censorship is a very controversial one.  While it is easy to say that censorship is bad and to argue that all individuals should have access to pertinent information about the world and their governments’ actions, there are also things that potentially should be left secret.  In order to protect their people, governments must keep some secrets.  Although I think it is a more dangerous position to take than many would realize, I still think censorship is mostly unethical.  I believe that all people should have freedom of speech and should be able to have their words heard if others choose to read or listen to them.  Especially in countries like China, censorship has risen to an extreme level and is by no means moral.  The citizens of China should be able to know what their government is doing and should not have information hidden from them.  The government should be responsible for its actions and hiding them and suppressing dissent should not be acceptable.

For third parties that are not part of the censorship and not being censored, the ethical implications are much trickier.  By law, tech companies like Google must abide by the laws of the countries that they serve information to.  This leaves the company in a tricky position of deciding whether it is most ethical to break the law, abide by the law and censor information, or refuse to serve information at all to a country.  Over the past few years, Google has changed its stance between all three of these options in China.  Originally, Google provided censored data to China under the thoughts that they didn’t want to lose an entire (extremely populous) country of consumers and that it would be better to provide censored information to China than prevent them from having any information at all.  However, the company soon changed their opinion and stopped abiding my censorship laws.  Within months, Google was cutoff from all of China and the Chinese people were left needing to rely on other providers for information.  It is difficult to say what is the most ethical choice.  Financially, it makes sense to abide by Chinese censorship in order to avoid losing a huge market.  However, I think that abiding by immoral acts is also immoral and that providing no information in the hopes that eventually China will change would be better than providing filtered information.

Reading 12: Freedom of Speech

Reading 11: Artificial Intelligence

Artificial Intelligence is one of my favorite CS related topics.  I love the concept of them, I love reading stories about them, and I would love to work on creating even Artificially Narrow Intelligence systems.  That being said, I do not think we will ever create a strong AI and I pray to God that we do not.  I am beyond fearful at what would happen if humans were ever able to create a self aware artificial intelligence.  One of my favorite articles about AIs is written by Tim Urban on his blog, WaitButWhy.  (http://waitbutwhy.com/2015/01/artificial-intelligence-revolution-1.html)  In the article, Tim writes about many theories and beliefs concerning Smart AIs of the brightest minds in computer science.  In the second installment of the article, he includes a short story about a robotic arm project at an AI company that becomes self aware and ends up killing every human on the planet without anyone’s knowledge that it is even self aware.  I am terrified that if a computer ever reaches self awareness, humans will fall impossibly far behind it’s intelligence in a matter of days.

That being said, I do not believe it is possible for us to create intelligence.  I believe that God created humanity and that we are unable of creating sentient life without divine intervention.  We cannot understand how we think or even how to define thought, so how would we ever be able to get a computer to think.  I am hopeful that this belief is valid and that Smart AIs will never be reached.  Computers will always be dependent upon the rules that we put into them and will never attain their own thought.

If truly Strong Artificial Intelligence was reached, then I would share the same mindset as Stephen Hawking and Elon Musk, why are both far smarter than I am and have also come to the conclusion that a smart AI would be a threat to the very existence of humanity.  The article, “Debunking the biggest myths about artificial intelligence” is a load of garbage in my opinion.  The author does not respect the opinions of some of the smartest men in the world and makes extremely bold claims about things that none of humanity understands.  He states that AIs won’t be bound by human ethics, AIs will spin out of control, and AIs will be a series of sudden breakthroughs are all myths.  I laugh at his naivety.  If a smart AI ever comes to fruition and he is correct, I would be happy.  However, making these claims when we have never created an AI, do not understand human thought, and have no idea of how our own ethics work seems ignorant to me.  If we can’t define our own ethics, how can we possibly say that machines will be bound by them?  The claim that AIs won’t spin out of control boggles my mind.  What evidence supports this?  Imagine a human who could think as quickly as every other human in the world combined and had access to all information in the world.  I don’t know about you but I can’t comprehend that.  How could anyone possibly claim that some unquantifiable level of intelligence will be controlled once it becomes self aware?  Anyway, his “myths” about AIs seem like baseless conjecture to me and differ widely from my own beliefs.

Now that I’ve spoken about my opinions about AIs and reacted to the article, I will also address the questions.  Sorry I didn’t get around to this until now…

Artificial Intelligence is the sense of weak or narrow AIs is basically another term for a computer with an extremely complex algorithm that can learn to do one thing really well, like play chess.  This can be a feedback loop from previous games and from collected data or through other means.  Strong AIs on the other hand, are AIs that can “think” on their own.  I think of this as being able to write and execute their own code as well as being able to understand and interpret data across all subjects and make informed decisions about all things based on this data, leaving behind their initial human constraints and embracing thought as we know it.

I think AlphaGo, Watson, and Deep Blue are fantastic and love the success that each of them have had.  I do not think any of them think on their own in the way I think of thought and I do not believe any of them are close to a Smart AI.

The Turing Test is an interesting measure but I do not believe that it proves whether a machine is intelligent.  With data mining and complicated algorithms (human programmed rules), I believe that a machine should be able to trick a human into believing that it is human via a five minute text exchange.  While it may be able to do this, it would not have to have any understanding of its output or what the conversation was.

Lastly, if an AI was ever created that was self aware, I think I would consider it a mind.  But I do not think that this is possible and certainly hope it isn’t so I have not considered the ethical implications fully.

Reading 11: Artificial Intelligence

Project 03: Security and Encryption

My group wrote a letter to Senator John Kasich advocating for strong encryption and warning about creating a precedent of lowering security standards at the government’s request.  Our letter can be found at https://caseyhanleyethics.wordpress.com/2016/03/24/letter-to-government-representative-regarding-encryption/.

In my opinion, encryption needs to be a fundamental right.  I think that privacy is a right that all citizens should have.  In today’s age, so many people keep extremely confidential and personal information on mobile devices and most have no idea how vulnerable their information is.  I believe that citizens’ personal information belongs to them and them alone.  In an ideal world, all information would be encrypted so that no entities could use the information in malicious ways.  At the same time, if these individuals committed crimes then the government would be able to see their data to help solve the crimes.  Unfortunately, the ideal world is not achievable with today’s technology.  As a result, my current hope is for encryption for all, regardless of the circumstances.  It is much more dangerous to lower security standards and potentially strip privacy from everyone in the US than it is to lose one form of evidence in a handful of criminal cases.

Encryption is a very important issue to me that unfortunately does not receive much attention due to the general public’s lack of knowledge about it and its implications.  I wish that it was a political issue that received attention and discussion.  Because it is not, I unfortunately do not make my political decisions based upon politician’s stance on encryption.  I do not normally spend enough time researching politicians to vote based upon encryption.  However, because it is a pressing issue I really hope that in the near future it will be brought into the spotlight at which point it will certainly influence my voting decisions.

In the struggle between national security and personal privacy, I am extremely scared that privacy will be reduced to the point of non-existence under the pretense of national security.  Already the Snowden leaks have revealed that our government lies to us and does not value security in the same ways that we (or at least I) do.  In so many popular dystopian novels, authors warn of a terrible future in which the ever prevalent factor is always no personal privacy under the guise of national security.  Despite all of these warnings, our world seems to be rapidly approaching this future.  I strongly believe that this is the wrong road to take.  However, I do not know how I can influence this future.  Sadly, in our political system I feel as though individual voices carry very little weight and I have trouble relating to the masses.  I want to fight for privacy and I do voice my opinions with my family and friends (even when it leads to arguments), but I do not know how I can influence the nation and the direction we seem to be heading.

Project 03: Security and Encryption

Reading 08: Patent Trolls, Open Source

Patents are government granted license granted to a person or company for an invention or unique process that allows the entity exclusive privileges to commercially produce and sell products that use the patented technology.  Patents are necessary because they protect all of the work that companies or people put into creating a new design/technology/method.  If these creations were not protected, there would be no incentive for people to continue to innovate because as soon as a new idea came to fruition, any other company could take the invention and sell it as their own.  Patents protect the rights to these new designs and help to incentivize continued creation of new and better things.

I think that patents promote invention.  Without protection of intellectual property, the incentive to research and invest in new technologies is largely diminished.  Patents help to even the playing-field so that companies with the means of quickly mass-producing products due to their scale are not at liberty to steal ideas of individuals or small companies and benefit unfairly from their work.  However, this line of thinking does have some problems.  When all parties collaborate, innovation would likely occur at a faster scale because all parties would have access to the most up-to-date technologies.  I think that this trade off is worth it because it protects individual rights and ensures product diversification, which is very important in preventing monopolistic markets.

I admire Elon Musk and Tesla’s decision to release all of their patents and to make their hard work and technologies public knowledge so that the world can benefit from cleaner energy usage.  However, I also recognize that this decision was not solely made for the good of the world.  While Musk seems to be an altruistic individual and in it for the betterment of the world, the article about the decision also stated that Tesla realized that their competitors did not have the electric car infrastructure necessary to quickly out produce Tesla with similar electric cars.  Instead, the lack of popularity of electric cars and continued output of new gas cars was the biggest competition that they faced.  Knowing this, releasing their patents also served to help other companies produce electric cars in the hopes that they would divert some energy away from gas cars and help to make electric cars more popular in general, which would help Tesla.

For the specific case of software patents, I definitely believe that software should be able to be patented.  Algorithms and complex strategies for many technological challenges are just as impressive and unique as physical inventions.  However, due to the fast-paced evolution of technology, I think that it would be preferable to have shorter-term patents for software.  A twenty year patent in the realm of computer science is absurd.  Some physical buildings take 20 years to build.  Cars can still be used 20 years after production.  Software is currently changing so rapidly that 20 years represents many several to dozens of evolutions in all aspects of computer science.  This extremely rapid period of growth makes me wish that software patents would only hold their value for a few years-enough time for the creators of the invention to benefit from the patent but not so long that progress is extremely hindered by a 20 year long hold on other entities being able to use and improve upon the technology.

Lastly, these articles discussed patent trolls.  Patent trolls seem sickening and despicable.  I can never imagine getting satisfaction out of working for a company that only produces patents and makes money solely off of suing other companies for infringing upon obscure protocols that we were able to get patents for.  However, I currently don’t know how a system can be made to protect rights while also preventing these patent trolls from abusing the system.  I hope to hear more about this from my classmates.

Reading 08: Patent Trolls, Open Source

Reading 07: Cloud Computing, Advertising

Cloud computing has become one of the ruling strategies of the future.  Just as it has become totally absurd for companies to store their data on printed paper when computer hard drives are available for so little with the capability to store the data in a much more secure manner, in less space, and a more easily accessible manner, so to has the era of storing electronic data locally come to its end.  For users, who wouldn’t want all of their data to constantly be available at the touch of a finger?  I absolutely love being able to switch off texts and internet tabs between my Apple devices, being able to continue shows where I left off from my iPad to my television, and being able to see all of my emails and important documents on my computer or phone.  This has become the norm and is what users want for conveniency.

Unfortunately, because cloud computing comes in so many varieties and is a new and vulnerable technology, it also leads to insecure data.  The sad truth is that currently nothing that is in the cloud is completely safe.  Whether it be from physical attacks destroying servers or (more likely) hacking and security holes in the system, all data put into the cloud can be lost or seen by other parties.  I think that this lack of security is where the ethical concerns about using cloud computing come into play.  While I see no problem storing my data on it and would happily volunteer for most of my data to be stored on the cloud, it would be irresponsible for me to store other’s info in an insecure manner without their permission.  This information can be stolen much more easily in a Cloud-based environment and therefore the users should be warned of the risks and asked if they would rather have extra convenience or security.  I suspect that it largely is based upon the application at hand.  Financial information, for example, while it is nice to have it at the ready on all devices, is dangerous if taken is should therefore not be willing to compromise security to convenience.  For most applications, I believe that the Cloud is the right solution.

Using cloud computing offers a ton of advantages such as speed, monetary savings, convenience, and cheap security of information in terms of redundancy.  At the same time, it takes some implementation options away from you and brings a lot of security risks into play.  Using cloud services can also put a developer at the mercy of their provider, who could have a system failure or sudden change of policy that you will have to deal with and receive the blame for if it results in a failure or poor performance for your system or application.  I think that these same advantages and disadvantages hold true for the consumer.  The Cloud offers savings, speed, convenience, and more copies of data in case of failure at the price of reliability and security.  To me, the tradeoffs are worth it.  I hardly consider cloud computing an ethical question.  I think that it is the technology of the future and as it improves, more and more information will live in the cloud.

Reading 07: Cloud Computing, Advertising

Reading 06: Edward Snowden, Government Backdoors

Earlier this week, I got in an argument with my dad.  My dad is an army veteran and contractor working for the Air Force on defense systems.  Our conversation began with a mention of the recent statement by Apple that it would not create a backdoor for the FBI to get information from the phone of a criminal.  While I argued about why I supported this decision, I mentioned Edward Snowden and how I was glad that he revealed the spying programs that our government has had in place on its own citizens.  My dad was shocked that I was a fan of Snowden.  Having taken the same oath that Snowden did, my father was outraged that Snowden broke his oath and compromised National Security for personal gain.  Since this conversation, I have been reading a lot about Snowden and trying to decide what I think of his actions and what I would have done in the same situation.

First of all, it does not seem like Snowden sold any of the secrets that he stole.  Given the dangers of releasing the documents, this makes me think that Snowden was motivated by helping the American people, not for personal gain.  However, Snowden also told the Chinese government about US hacks of their systems, which I am unclear on how revealing this information to the Chinese helped the American people.

That being said, I am still grateful for a lot of what Snowden did.  From interviews with him, it seems like he was trying to do the right thing.  Some of the secrets he revealed are terrible abuses of power and trust by our government and by exposing them, he has helped to reform them.  Unfortunately, Snowden admits that he could not read all of the secrets that he took and he willingly gave them to several public news sources that he trusted to release only safe information.  This aspect of Snowden’s whistleblowing is a very dangerous one.  Without going through the information himself, Snowden could very likely have released valuable government information that helps protect American’s security.  I think it is irresponsible to hand over secrets to the public that might very well be legal and deserving of being kept secret.  It is a slippery slope for me to think that Snowden choosing to reveal some secrets was okay because I (and the vast majority of the public) view them as unconstitutional while at the same time I condemn him for releasing the other secrets without evaluating him.  Who is to say that his evaluations are right?  It is hard to think that one man’s opinion is valuable enough to warrant revealing such highly protected information.  But as of now, I can’t see anyway around this.  I think Snowden was right to reveal the spying but wrong to hand over secrets that he did not think were wrong.

I think that had I been in Snowden’s position, I would hope that I would have let the reporters choose to reveal the secrets that they deemed should be public knowledge out of a small subset of what I stole.  I would only give them secrets that I thought were unconstitutional and should be public knowledge.  If the reporters agreed, the public would hear about it.  If either party thought something should not be revealed, then it would never be in order to minimize the potential harm that could be done.  Still, even in this situation it is dangerous to allow two parties to “play God.”  But when there are some injustices as huge as the ones the NSA was committing, I don’t think it would be ethical to stand by and do nothing.

Reading 06: Edward Snowden, Government Backdoors

Project 2: Demographics

Casey Hanley and my Demographic analysis and Infographic:

https://caseyhanleyethics.wordpress.com/2016/02/18/demographics-of-notre-dame-cse/

For our project, Casey and I looked at Notre Dame CSE demographics and compared them to the demographics of major tech companies in Silicon Valley, at Stanford, and in the general US.  The charts and analysis can be found by following the link above.

From looking at the Notre Dame computer science class data, I did not find anything too surprising.  I was a little bit surprised by a few pieces of information, however.  First, I was pleasantly surprised to see how rapidly the computer science department is growing.  The class size has been increasing steadily since 2013.  Hopefully, this trend of increased computer science interest increases and that the inflation is not simply because kids drop the major later in their schooling.  Another great trend to see was that over the past 6 years, the female percentage of the CSE department has been increasing steadily.  Despite this increase, ND’s department is still just behind on the female percentages of Stanford and the top tech businesses in Silicon Valley.  I was a little bit surprised to find how male-dominated my own class was.  I knew that there were certainly more males than females but I would not have guessed that the disparity between the two was nearly as large.  Other than these trends, the rest of the ND CSE demographics have remained pretty much constant in recent years.

When comparing Notre Dame’s Computer Science Department to Silicon Valley companies and Stanford, Notre Dame is very similar in most ways.  The only major difference is that Notre Dame has fewer Asians than the others.  That being said, Asians in CS at ND constitute a larger percent of the body than Asians do in the US as a whole.  In general, I was unsurprised by the comparison of Notre Dame’s demographics to the others.

After comparing the Computer Science demographics to those of the general US population, I was surprised to find that many of what I considered issues in CS are not.  In general, the fact that Computer Science is made up of mostly caucasians is only because the United States is mostly caucasian.  The number disparity was not alarming.  The only two major differences that I think need to be addressed after my comparisons are the percentage of African Americans and the male-female ratio imbalance.  As a whole, the black population is underrepresented in Computer Science schools and top companies.  Additionally, the huge gap between the number of male and female Computer Scientists is a major issue that needs to be solved.

I have already discussed why I think that these two particular demographics are less likely to enter into the computer science field.  I do think that this is a problem, as a more diverse workforce will inevitably lead to better products.  Even though this is a problem, I do not think that it should be solved at the collegiate level.  Personally, I think that the best way to increase the number of women and African Americans who pursue a degree in Computer Science is to have a mandatory Introduction to CS class in high schools, where students can learn about programming and make a decision about whether to pursue that major based on experience instead of societal stereotypes.

Project 2: Demographics