Search

Computer Ethics

Blog posts from CSE 40175

Hero or Villain?

From the readings and in your opinion, is Edward Snowden a hero or a traitor? Should the US government pardon him for any possible crimes or should they pursue extradition and prosecution for treason?

  • What exactly did he leak and how did he expose that information?
  • Regardless of the legality of his actions, is what he did ethical and moral?
  • Ultimately, is what Snowden did beneficial to the public or did he harm the security of the United States and its allies? Personally, how have these revelations impacted you (or not) and your views on government, national security, encryption, and technology in general?

hero (n) – “a person, typically a man, who is admired or idealized for courage, outstanding achievements, or noble qualities”

Dictionary.com

In my opinion, after reading the articles and seeing the definition of “hero,” I believe Edward Snowden is a hero. There is no doubt that he is admired by many for the courage he displayed by revealing the government surveillance  programs.

What did he leak, and how? Snowden leaked information regarding government surveillance programs, specifically Prism (according to the BBC article). He did so by informing a couple journalists in secrecy, and then the journals were published to the American press. Unfortunately, one of the companies, The Guardian, later exposed the true identity of the man behind the leaks.

Prism was essentially a program under the government that was intended to track civilians, through phone and internet conversations. The government tapped into the servers of several tech giants in order to track online communication.

Was it ethical? I believe it was ethical and moral, because it was something that concerns many people’s lives and it was an ongoing program. It differs from the Challenger leak because that occurred after everything had already unfolded. It was no doubt a difficult move to make, but he knew it was the right thing and so he exposed the truth. It’s not as if he put people’s lives at risk by exposing the information; in fact, he did the opposite and made people aware that they were being watched by the government.

Ultimately, is what Snowden did beneficial to the public or did he harm the security of the United States and its allies? Yes, it was beneficial to the public. Honestly, most powerful countries know that the other countries are constantly probing into their cyber world to try to gain control or uncover confidential information. I don’t think that this leak was news to other nations, as many probably have similar operations. If anything, it just shed light on the situation to the American people.

Challenger

From the readings, what were the root causes of the Challenger disaster? Was Roger Boisjoly ethical in sharing information with the public? Was his company justified in retaliating against him? What good is whistleblowing if “[i]t destroy[s] [your] career, [your] life, everything else”?

From what I read, the root cause of the Challenger disaster (from a technical standpoint) was the cold weather. One of the rubber rings that sealed a rocket booster froze up and became useless due to the low temperatures. However, all technicalities aside, the root cause of the Challenger disaster was politics. By definition, politics encompasses “the debate or conflict among individuals or parties having or hoping to achieve power” (Dictionary.com). Everybody was relying on NASA to show them something extraordinary, and they decided to take a risk in order to gain that power.

I believe Roger Boisjoly was unethical in sharing information with the public, mainly because it was done after the fact. All it did was put NASA in a bad light — which I don’t disagree with, because members of the company did agree to launch regardless. However, the moment that his manager refused to postpone the launch, he should have taken it to the press anonymously. Who cares if your company will fire you or you will get jail time for speaking out? If Roger truly knew that people would die, he would not have sat there and let his managers go through with the launch. By whistleblowing after the incident, Roger simply provided a scapegoat for the disaster, and became famous for it. I am sure that all of those NASA engineers and managers had their lives changed forever when the Challenger went down, it is not as if they just shrugged it off and moved on.

Whistleblowing before an incident occurs or while an incident is occurring is definitely worth it, even if it destroys your career. However, whistleblowing after something goes wrong basically just shames people publicly for a mistake that they already know they made. Take Snowden for example — he revealed publicly that there was something fishy going on currently. Now imagine if he knew that the government’s system of tracking was stopped 10 years ago because they thought it was a violation of privacy, and he went ahead and revealed it to the public. To me, these are two very different scenarios. In one, you are trying to bring the public attention to a matter that is ongoing in an effort to stop it. In the other, you are bringing public attention to a matter to shame the people involved after it already occurred.

I don’t think Roger Boisjoly is a bad man, and I obviously disagree with the actions taken by NASA, both in their handling of the Challenger and their handling of Roger. But still, whistleblowing after it went through was not the right move.

 

Perspective

From the readings and in your opinion, is the lack of diversity a problem in the technology industry? Is it something that needs to be addressed or is it just a (possibly unfortunate) reality?

Any field that involves regular innovation requires perspectives. One person alone can easily overlook details when developing a solution to a problem. Similarly, groups of people who come from the same background run into the same issue. In order to solve big problems effectively, you need differing perspectives.

This figure comes from Google itself, and represents the population breakdown in their workforce. To provide some context for how poor these numbers are, read the following excerpt from the U.S. Bureau of Labor Statistics website.

By race, Whites made up the majority of the labor force (79 percent). Blacks and Asians made up an additional 12 percent and 6 percent, respectively. American Indians and Alaska Natives made up 1 percent of the labor force, while Native Hawaiians and Other Pacific Islanders made up less than 1 percent. People of Two or More Races made up 2 percent of the labor force.

-U.S. Bureau of Labor Statistics, 2015

What do we notice here? Well, for one, “Blacks and Asians made up an additional 12 percent and 6 percent, respectively.” This contrasts so starkly with the figures reported by Google, where blacks and Asians compose 1 percent and 34 percent of the workforce, respectively. Also, the male to female ratio in “tech” jobs is laughable. The worst part about that is that this is not just reflective of Google, this is very much reflective of software engineering in Silicon Valley in general. The problem with this lack of diversity is a lack of perspective.

I decided to do some research into why diversity is so important in the workplace, and stumbled upon an article written by the CEO of PwC, Dennis Nally. In it he says, “By working with people from different backgrounds and with different experiences and working styles, we learn and get another view.  Diverse views make for better decisions, and thus drive a high-performance culture.” This strongly aligns with the statements I initially made: if you want to make good decisions, you need people from different backgrounds to offer their perspectives. By not hiring employees from diverse backgrounds, companies are missing out on potentially game-changing perspectives on all kinds of situations.

So, why has it been so difficult to diversify the tech workplace? A couple of the articles that I read resonated with me quite a bit. For one, the fact that Computer Science discourages newcomers is a big problem. It is so true that professors and students will make jokes about programming languages in intro-level classes, where nobody except for those previously exposed to programming will understand. CS is also one of the, if not the, only major where you must do extensive work and research outside of class to succeed. I can say with confidence that most software engineers at Google, Facebook, etc. were not only exposed to programming through their undergraduate curriculum. They worked on side projects, pursued internships, attended hackathons, or did research with professors. In a field that is already so dominated by Asian and Caucasian males, it is important to make programming seem achievable by anyone, or the gap will only continue to widen.

 

Burnout

From the readings and from your experience, what are the causes of burnout? Have you ever experienced burnout? How did you overcome it or mitigate its effects? As you enter the workforce, how do you plan on preventing burnout or becoming overly stressed and burdened by work and responsibilities?

After going through the readings, I have come to the conclusion that burnout sets in when you are no longer able to separate work from the rest of your life. When you get home from work, in my opinion, you should be home. Sure, if you need to answer an important work-related email after hours every now and then, that’s fine. But when you get home and immediately VPN into the corporate network to continue writing code, after you already worked for 10 hours that day, there is a problem.

Although I have experienced a bit of burnout, I am thankful to say it has never been on the same scale as some of the examples in the articles. When I burn out, it usually just a few days of discouragement from coding. I usually overcome it by following similar steps to Andrew Dumont in his post, “Avoiding Burnout.” Sometimes, a morning workout can do wonders for my mental state. It allows me to completely clear my mind of anything related to school or work, and sweat it out. Also, Andrew notes the important of maintaining a healthy diet. I notice a significant difference in my state of mind when I am eating well, versus when I am eating Ramen and pizza for all of my meals. The last strategy from Andrew’s article that I employ myself is Intellectual Hobbies. When I have some alternate task to focus on, such as improving my shot in basketball or even progressing my account on some Xbox game, I find myself much less likely to burn out. It really comes down to finding anything that can take your mind off of work for any period of time. A vacation for a few days, a 30-minute break, or anything in-between can do wonders for fighting burnout.

As I enter the workforce, I plan on preventing burnout by maintaining a healthy diet and making sure I exercise regularly. As far as the exercise goes, I will need to change it up a bit. Instead of just going on a run once a day or lifting weights once a day, I will try to play basketball every once in a while or go on a bike ride, to keep the mind off of the routine. It is also important to learn when to say no. Just as Andrew Dumont recommended, I will need to “Take a day” every once in a while to be completely away from work.

Manifesto – Individual Reflection

How much does the Manifesto reflect your individual feelings and thoughts? Is it a warcry? What is it?

The Manifesto reflects my individual thoughts because I have been lucky to have people in my life who inspired my to study Computer Science. I was first introduced to programming by my favorite teacher in high school. He came into our math class and discussed a new course that he was teaching, called AP Computer Science (aka “AP Java”). Obviously, I enrolled in the course and he inspired me to continue along that path in life. It is a war cry, in a sense, because it is something I feel strongly about. Everyone has gotten helped out at some point, and it really is time to pay it forward.

How much do you identify with the Portrait? Where do you differ?

Well, I was born and raised in suburbs of Chicago, so it seems I at least fit the stereotypical Notre Dame hacker in that sense. I started coding a bit in high school, which is supposedly not the norm (according to our Portrait), but much of my interest did come from playing video games. As far as looks go, I would say I fit the standard for an ND hacker, as I am a caucasian male and I often wear jeans and a graphic t-shirt.

As I have mentioned in a previous blog post, I enjoy going to hackathons. However, I also love to play basketball and tennis; although it wasn’t mentioned in our Portrait, quite a few CS students at Notre Dame participate in interhall sports. I identify as Catholic, which is common amongst students here in general, not limited to CS.

All in all, I would say I identify pretty closely with the Portrait, although there are definitely a few discrepancies here and there.

How significant are stereotypes to how you view the world and how the world views you? Do you think the presence of a Manifesto or Portrait is helpful or harmful?

Stereotypes, whether we like it or not, play a big part in influencing how people view the world and how the world views people. I believe the presence of a Portrait is unhelpful. I don’t particularly  love the idea of a programmer being associated with a certain style of dress, affiliation for video games, etc.

Cracking the Coding Interview

It’s 5:06pm… 5:06! I was supposed to get called by the interviewer at 5, this is so unprofess — (phone rings).

Me: “Hello, this is Jack.”

Interviewer: “Hi Jack, this is Jill calling from (company name). How are you?”

Me: “I’m great, thanks! How are you?”

Interviewer: “Good. Alright let’s open up that link to Coderpad and I will explain your first coding problem.”

And this is how it goes. Every time. It is a rare interview indeed if the interviewer goes so far as to ask a question about me. I don’t know, maybe “Why do you want to work for us?” or “What do you enjoy doing in life?”. Instead, after a quick introduction, we immediately jump to writing code. And this is not only for the phone interview; many companies that bring candidates onsite for several rounds of interviews do the exact same thing. You code, you get a score, and onto the next interview. Code, score, next. Code, score, next. And if all of those scores average to a high enough number, you get a job. Awesome! Let’s not even consider as the company that we might have just hired someone who won’t get along with anyone on the team, but hey, he’s damn good at reversing a linked list in 20 minutes.

All that said, I do understand why the interview process is the way it is. Companies like Google and Facebook get huge amounts of applications, and they are really out to hire the best engineers possible. There is no better way to test a programmer’s coding and problem-solving abilities than putting him or her on the spot with a difficult task and a time limit. Sure, sometimes you might get unlucky and get a problem where the solution is not apparent, and then it might result in a rejection from the company. However, most of the time it is an effective interviewing strategy. Large tech companies are not worried if they accidentally reject a few solid engineers here and there, as long as they are not hiring bad engineers. If interviews for a software engineer were strictly behavioral, it would be nearly impossible to determine how quickly a candidate could learn a new technology on the job. I do wish behavioral interviews were also considered during the process, but it is what it is.

If the goal is to get a job at a strong tech firm, there is really only one way to prepare: code. Work on side projects, solve problems on HackerRank, and practice interview questions with Cracking the Coding Interview. Some people think that if they do enough practice questions, they will see questions they have done before in an interview. This is usually not the case; however, the process of solving all of those practice problems teaches a programmer how to think when he or she sees a difficult challenge. It is understanding when to use which data structures, how to think recursively, why a solution might not be optimal, etc. This is how I have prepared thus far, and even still I have seen mixed results. I have noticed that the more practice problems I solve (without looking at the solutions), the more confidence I gain in technical interviews. Confidence is key to succeeding: you have to be sure that you will figure it out, and you will.

 

 

 

The Hacker Way

From the readings and from your experience, what exactly is a hacker? That is, what are the key characteristics of the hacker archetype? Do you identify with these attributes? That is, would you consider yourself a hacker? What is your reaction to this characterization?

After reading the hacker articles and comparing them to my personal experience, I have found that there are many conflicting definitions of a “hacker” in modern culture. One common theme that I have observed, however, is that a hacker is someone who is intelligent and curious.

"Yes, I am a criminal.  My crime is that of curiosity.  My crime is
that of judging people by what they say and think, not what they look like.
My crime is that of outsmarting you, something that you will never forgive me for."
-The Mentor, phrack.org

According to “The Mentor” in one of the hacking articles, the trait that distinguishes hackers from all others is the curiosity they possess. A hacker is always trying to explore and see what he or she can discover, whether it is with malicious or benign intention.

In an interesting article called Portrait of J. Random Hacker, the author talks about the appearance and habits of a typical hacker. I found this a fun read, but I don’t agree with the stereotypical definition of a hacker. I think that those characteristics generally fit the model for what a “hacker” was maybe ten years ago. Nowadays, a hacker is just an intelligent and highly curious individual when it comes to computers.

One of the most common technical events that a Computer Science student will attend as an undergraduate is referred to as a “hackathon.” According to the old hacking definitions, one might picture a group of individuals wearing hoodies and talking about Star Wars while trying to crack a WPA handshake. However, nowadays hackers are much different. Sure, there are still people talking about Star Wars, but many of those programmers are also building applications that are intended to help others out.

I think that I do identify with the hacker culture in a couple ways. First of all, I am very interested in security. Most of my free reading and research has to do with penetration testing and books that deepen my understanding of cybersecurity. That being said, I am not someone who intends to use that knowledge for exploitation. I am simply following along with the modern hacker description and being curious. Whether it is related to security or just software development in general, I am always curious to dive deeper and explore new topics. In that sense, I would say that I do identify with hacker culture.

Although I may identify with hacker culture, I still don’t think I would walk around referring to myself as a hacker. Why? Well, the term “hacker” has not fully pivoted in definition in society at large. Most people I know who are not in software development would view a hacker as a bad guy, someone who is out to steal their passwords. In fact, every time I tell a family member about a “hackathon” I am attending, they all still believe that we are getting together to hack into a system (no matter how many times I explain that that is not the case). Ultimately, I do not think identifying with hackers is a bad thing, but many people would disagree.

Is Programming a Super-Power?

Is programming a super-power? Why or why not? What are the implications if it is?

“With great power comes great responsibility.”

-Uncle Ben, Spiderman

In the video posted alongside the readings, we see Uncle Ben lecturing Peter about the choices he has been making. At one point, Ben tells Peter that he is at a point where he must determine who he will become for the rest of his life. I believe that in Computer Science, after enough work and years of education, programmers must make a similar choice. Once a programmer reaches the point where he or she is able to do serious damage with code, a choice can be made to become a black-hat hacker, or to remain developing for good (or at least with good intention).

superpower (noun)

“power greater in scope or magnitude than that which is considered natural or has previously existed”

Dictionary.com

According to this definition of “superpower” by Dictionary.com, programming is not quite a superpower. Programming is a skill that is very much available to anyone willing to learn. I believe that the act of programming itself is not a superpower, but it can lead to innovations that are most definitely superpowers.

We all know that in every classic superhero movie, there exists a hero and a nemesis. Both the hero and the nemesis have superpowers (occasionally the same superpower), yet they use them as means to different ends. The field of software engineering is unique for this very situation. Consider two security engineers who have become incredibly well-versed in the field of firewall architecture. Both of them simultaneously realize that there is a serious flaw in their system that exposes a backdoor into the company’s corporate network. In this scenario, the superpower would be the knowledge of the security vulnerability as well as the ability to exploit it or fix it. It is a superpower because the power was something that nobody realized existed beforehand. Just as Spiderman had to make a choice with his superpower, so too do these security engineers.

I talked a bit in my previous blog post about automation in Computer Science, and the threat it poses to society. I believe achieving this could also be seen as a superpower, as the magnitude of its effects would be considered unnatural. As I stated earlier, though, the programming of the automation is not the superpower, but rather the final robotic product that puts potentially thousands of citizens out of work. Often in software it happens when a programmer is trying to do the right thing, and then unintentionally becomes the nemesis to a group of people. This can happen in many ways:

  • a programmer accidentally introduces a bug that exposes users’ sensitive data to the public
  • a programmer designs a system that automates a position in industry, and destroys jobs
  • a programmer in the military develops a targeting system for defense artillery and is indirectly responsible for deaths in war

Programming is always used as a means to an end. Sure, many of us program sometimes just to write some code and do something fun, but there is always an underlying goal. In most cases, the final result is nothing that puts people at risk; however, occasionally programming can lead to a superpower. Hopefully, the user of that superpower decides to be the hero, and not the nemesis.

Ethics Introduction

In your first blog post, please write a short introduction to who you are, what your interests are, why you are studying Computer Science (or whatever your major is), and what you hope to get out of this class.

Additionally, in your opinion, what are the most pressing ethical and moral issues facing Computer Scientists? Which ones are you particularly interested in discussing this semester?

I am Jack Ryan, a senior Computer Science major at Notre Dame. I hail from “fake Chicago”, a nickname given to the suburbs closely surrounding the city. I’m interested in music, basketball, computer security, and writing code to solve important problems. I chose to study Computer Science for a couple reasons:

  • I get to solve difficult problems and see the visual results of my efforts
  • Software is advancing quickly; we are in the midst of groundbreaking innovation
  • I like computers.

I hope that this class arms me with new perspectives on my interactions with the computer, whether I am actually writing code or simply browsing the Internet. Computer Science is currently faced with some incredibly difficult ethical dilemmas. Autonomous technology is advancing quickly, and people are losing jobs to robotic employees. This past summer, I interned for a company that is largely involved in robotics and automation; although the goal is never to put humans out of work, it is a sure consequence.

“…many workers in existing industries will be stranded on the wrong side of software-based disruption and may never be able to work in their fields again. There’s no way through this problem other than education, and we have a long way to go.”

-Marc Andreessen, Why Software is Eating the World

In addition to automation, I am interested in exploring the topic of hacking in computer ethics class. Computer security is always an issue in the connected world, and I would love to learn different perspectives on the hacking culture.

Featured post

Create a free website or blog at WordPress.com.

Up ↑