Reading 05 – Therac-25
There were many things that went wrong with the Therac-25. First, it seems like major portions of the code were borrowed from an older machine that had little to do with the current one. They made multiple assumptions of this old code, claiming that use of the old machines was enough testing of this code. However, at the same time they felt comfortable giving a lot of the security checks of the machine to that software; security which was originally kept by the hardware in place. These assumptions were the primary root of the problem. This confidence on the old code is what led to a very lacking software developing process with a team of only 1 member. There was no severe evaluation of this code. Furthermore, most testing was made either on a simulated module or on very controlled environments.
This great confidence on the code was made even more apparent later on when after receiving death reports from people who received treatment, they were reluctant to admit that there were errors in the system. When they eventually went in to check, they thought they found the bug and after making the small fix they boasted that “analysis of the hazard rate of the new solution indicates an improvement over the old system by at least five orders of magnitude.” Yet, after this bold claim, more deaths were reported.
Given the bugs were obscure ones (one happening only within a frame of time and another occurring on a 1/256 chance overflow), the company had multiple chances to discover this bug. It shouldn’t have gone past the first death before they involved themselves in a rigorous investigation of the error. True, accidents happen, but the best should be done to prevent them. Today, there are better software development approaches in place that help at the very least reduce these dangers: including extended physical testing, review by external parties, and instant review and patching of errors found.
Given the nature of this error, AECL is 100% liable of the incident. However, in other situations the line may be harder to draw. To assist in this, it is important that strict legislation is passed on regards to the process through which safety-critical systems are developed. For example, having code for these systems be reviewed by at least two external parties could be a possible rule. Other rules would be added as required by applications. In general, the goal would be to ensure that unless a company made an honest effort to address all dangers (preventive and post-accident), they will be held liable for all damage caused.
What we can learn about the Therac-25 incident is that programmers and people in charge of programmers should exhibit great skepticism over the correctness of their code. There is no perfect programmer. Bugs happen and are extremely common. I hope that we never hear another incident like the Therac-25 in the future, but the only way we can do it is by preparing the future programmers with the lessons learned from this.
In that regard I’m disappointed that in my 4 years at Notre Dame, I have seen very little focus on error checking and having robust code. The error checking is usually seen as cumbersome and unnecessary for our domain, but it an important skill for us to learn and master. Many of us will oversee safety-critical systems, but few of us will be trained on the skill from our degrees. My wish is that this could be changed in the future, to the point that a course targeted specifically at robust code writing be made part of the core curriculum. I’m not sure how prevalent this kind of courses are in other schools, but that would be a great step for all computer science programs to take. Until then, we may at least hope that enough programmers have heard of the Therac-25 so that they can help prevent this from happening again.
Reading 04 – Diversity
I believe there is definitely a problem with diversity in the tech industry. I also understand, however, that it is a difficult problem to address. There are multiple causes for these problems. In regard to the lack of women in tech the greatest problem is the male-dominated environment in tech companies. This creates a very hostile environment towards women in tech that may dissuade them from pursuing such a career. Certainly, not only are the numbers of women in tech low, but many women leave the tech industry all together. In Why Is Silicon Valley So Awful to Women? women in tech describe how they are often looked down upon and given tasks that are simple and not given to their male colleagues. They also constantly receive unrequested sexual advances that are out of line. Susan Wu describes her experience like this: “the countless times I’ve had to move a man’s hand from my thigh (or back or shoulder or hair or arm) during a meeting (or networking event or professional lunch or brainstorming session or pitch meeting) without seeming confrontational (or bitchy or rejecting or demanding or aggressive).” This is not a safe environment for anyone. It’s a self-feeding cycle. Women don’t feel safe because there are not enough women, but there will never be enough woman when they don’ feel safe.
However, this unsafe environment and prejudice is not the only factor. Why Prejudice Alone Doesn’t Explain the Gender Gap in Science explains that women also tend to prefer jobs in the ambit of social science. For example, there is a disproportionate number of women in psychology compared to men. Similarly, women are more likely to become veterinarians than men are. This shows that lack of diversity of tech is not due to lack of skill, but simply a matter of preference. Women who might be great programmers or engineers, may have different goals in mind than just earning money. They may follow a different path with their own genius. However, the problems of prejudice and a hostile work environment truly exists. It’s important that those problems are addressed.
Besides a lack of women in the tech force, there is also an apparent lack of minorities on the work force. Same as with women, this problem may be two fold. On the one side we have a similar environment full of prejudice and hostility towards minorities. This will dissuade them from entering tech all-together. Another problem is that as Why Doesn’t Silicon Valley Hire Black Coders? explains, some universities that have been historically black don’t have the resources or expertise to prepare students to pass rigorous tech interviews. Again, we find that this is not a matter of innate skill, but of different environmental factors.
The question now is how to solve these problems. This is difficult. Many smart people have tried and while there has been progress, its slow and painful. However, I do have ideas. First off, having quotas is a terrible idea. It will lead to more resentment and prejudice. If quotas are put in place, it will lead to the belief that the female and minority employees were only hired to meet a quota and not because of their skills. This will only serve to increase the problem of prejudice.
Second, I believe a stronger effort should be made to increase not only the diversity of the workforce, but also the diversity of in-company connections. This is a problem that seems to be often overlooked. Lena Alston, for example, describes the culture shock she felt at google. “When I went out to lunch or something with my team, it was sort of like, ‘Soooo, what are you guys talking about?’ ” she says. “It could be something as simple as, like, what they watch on TV or what kind of books they like to read. And those are just not TV shows that I watch or books that I read.” While I believe that a cultural identity is important to keep and cherish, I believe some effort can be made to increase understanding between different groups. For example, I am happy to say that my friend group at Notre Dame is rather diverse, and we all share our culture with each other. Sometimes I DJ and play some Latino music. Some other times we’ll be dancing to K-Pop. Slowly, we all have come to understand each other’s culture better. The other day I was teaching some of my friends how to salsa. I had no success, but it was really fun. Throughout this all I have never felt disconnected from my cultural identity. I’m still strongly attached to it. However, I’m happy to share in other’s cultures and learn from them. I believe it is this sense of openness that will create a more open environment at the workforce. Make it less about race and more about people.
Finally, changes must be made at the root of the problem. For example, help should be given to these primarily black colleges so that they can prepare students to face interviews in Silicon Valley. Stereotypes should also be shifted. Have advertisement that feature women and minorities coding. Have them give tech talks at conferences so that their colleagues can see their work. Put more women and minorities in charge of teams to help them show their skills. Slowly I believe we can shift this bias.
Reading 03 – Immigration – Part 2 – A Personal Voyage
I decided to write a second post detailing my personal experience on this issue. Currently with the hostility of the current administration towards immigrants, I’m just filled with fear. During the last years, interviews to foreigners have significantly dropped. The cause for this is the uncertainty towards the future of H1B visas. While there are many proposals in place, no one knows what’s going to happen.
As of this time, I currently haven’t found a job. As graduation date approaches, I am filled with fear. I must consider the prospect of not finding a job, and, unlike other students, I have a deadline. I will get kicked out of the country 2 months after graduation if I don’t find a job. After that happens, it will become exceedingly difficult for me to find a job here in the future. For one, after I’m sent back, I am no longer eligible for OPT (Optional Practical Training). OPT is the only solace companies have in hiring international students after graduation. OPT is extensible up to 3 years, giving companies 3 attempts at obtaining your visa. Without that, there is virtually no incentives for companies to invest on me.
It almost seems unfair. I have worked as hard if not harder than most other students to get to where I am now. I had to learn a foreign language and move away from my country and my family. Because flying back to Nicaragua is expensive, I have only visited my family once in the last 2 years. It is difficult. It is also a great burden to my family, which has to pay an American valued tuition with a Nicaraguan wage. I’ve also tried my best to make myself an ideal candidate. I have had programming jobs every summer, I’ve worked on independent projects, and I’ve gotten myself involved in relevant organizations. I’ve done my best to build my foundation, going as far as taking extra free classes online during my breaks to improve my skillset, and yet I am still unemployed.
It seems like a waste. I consider myself a very capable programmer. I know I have great potential. I want to be part of this country and make a difference. If I go back, there’s nothing waiting for me. My country doesn’t have the development or the infrastructure to take advantage of my skills. The currently political state of my country also makes me doubt I’d would have any kind of economic stability. I want to stay here, and I believe I would be a positive addition to the workforce.
All I can do now is keep applying. Hopefully it will turn out for the best.
Reading 03 – Immigration – Part 1 – An Impersonal Opinion
There are two main concerns with H1B visas. The first problem is taking away jobs from Americans. The second problem is the decrease of wage on competitive jobs because of cheap labor from hiring foreigners. I shall address my opinion on both matters.
On the first issue, many make an argument on the matter by making simple math. “The inflow of guest workers is equal to half of all IT hires each year and fully two-thirds of annual hires of workers younger than 30…At the same time, U.S. colleges are graduating more than twice as many science, technology, engineering and math (STEM) graduates than the number of STEM openings generated by our economy each year” (PBS).
However, people making these studies must realize that not all college graduates are made equal. Despite the apparent stalling in the rise of programmer’s wage, programmers still boast one of the highest paying salaries; even in early careers. There is great incentive for people to take on computer science, computer engineering, and other computer related majors while in college. Not only is the pay good, but there is constant rhetoric on the lack of programmers on the work force. Add all this together, and it makes for a highly attractive and seemingly easy career path. However, this is not the case. Along with other STEM related fields, computer science is not an easy way to success. A degree in Computer Science doesn’t cut it to land you a job. You need to demonstrate competence through your work in various projects and by passing a rigorous technical interview process. The needs are high, and the needs can’t be easily met.
Paul Solman argues “Our fieldwork finds that reports of hiring difficulties often reflect unrealistic expectations and sometimes strategic posturing. Traditionally, during tight labor markets, such as before the dot.com crash, employers will hire good candidates who may not be “perfect,” but the firms will invest in training them.” However, anyone who has attended tech interviews can tell you that these interviews rely on the knowledge of two of the most fundamentals pieces of courses for any programmer: algorithms and data structures. These two elements make up the foundation for any capable programmer. If someone with a four-year education in the field cannot meet those basic requirements, no kind of training will do. This is no secret either. Tech companies are adamant in relaying the message that applicants need to be capable in algorithms and data structures. If you refuse to practice and learn these skills, it may show that you don’t care enough.
On top of this, despite Solman’s claim, I have found that in my search for a job that most companies do go over a training period with their new employees, especially for those straight out of college. This training will go over the specifics of a company and the specific technical knowledge necessary for the job, but just as you wouldn’t expect to train an EE graduate on how a circuit works, you shouldn’t expect to train a programmer on how to write an algorithm.
The other claim is the hiring foreign workers lead to a decrease in overall wages to workers in IT. There is clear evidence that wages in IT have remained stagnant for the last couple years. However, H1B can’t be the only reason for this. While there is still a shortage of tech workers today, back in the mid 2000’s there was certainly an even greater scarcity of IT workers. It is naïve to expect wages to remain proportionally high when the lack of supply of tech workers has at least been partially met. While tech companies still have a need for more capable employees, the need has been met to a point that they can bear to wait for the right candidate. The candidate will come eventually.
This wasn’t true in the mid 2000’s. While interest in CS had risen rapidly in the late 90’s and early 2000’s in the dot-com boom, there was a sudden dot-com collapse that happened in 2004 (see figure below). As the demand for tech workers exploded around this time, universities had trouble keeping PhD students to teach their classes. Most PhD students, attracted by the high paying job offerings, decided to leave Academia completely. This left many universities struggling to keep a CS department. Suddenly, students couldn’t find strong CS programs at Universities, forcing them to search careers in other fields. This, in turn, caused a massive shortage of tech workers across the country. It took years to overturn this shortage. Thus, it is no surprise that wages for tech workers at the time were comparatively high.
Despite all this, there is some truth to the claims made. Companies like Infosys have taken the wrong approach towards H1B visas. Their business strategy is clearly that of selling underpaid foreign works to perform cheap work for other companies. This was never the spirit and intention of H1B visas. The approach of these companies is wrong. Not only have they violated laws of H1B regarding equal pay, but they have undermined the hard work of other capable foreigners who try to come to the US seeking a competitive salary. On top of this, they hoard the lottery ticket process, making it impossible for smaller companies to even get a chance at hiring needed foreign skills.
Given all this, while I believe H1B migrants are a vital part of the economy, I do believe that reform is necessary to avoid the abuses by a minority of the companies, which unfortunately take a majority of the visas. First off, I completely agree that the lottery system should be removed. It is ridiculous to take all workers equally and make it a simple lottery. It is a great way to dissuade the best of candidates. While the US is currently the greatest tech giant, other countries are slowly starting to grow in the industry. More and more foreign skilled workers may deem it more worth it to work in other foreign countries with almost comparable pay than to enter a hostile environment towards foreigners. Rewarding the most capable is the best way to attract those with the skills the US needs.
The concern with this is what to replace the lottery system with. Some have suggested simply raising the salary cap from $65,000 to $100,000. This is most certainly not a solution. While it would certainly be a solution to a problem, it would damage smaller companies that also need to meet their needs with foreign workers. Medium gives a perfect solution. Make a whole new visa that is for outsourcing companies and cap them separately from non-outsourcing companies. Such a system would certainly be a great approach to solving this issue.
Another problem with the current H1B visa is the power that it gives to companies over their foreign employees. They can’t openly leave a company because doing so would force them to leave the country. This gives them little power to request for a hire wage or to find a job with a more competitive offer. Two possible solutions to this problem have been proposed. The first one involves expanding the green card program to allow more H1B visa workers to become legal residents. The other one involves allowing a grace period in which a worker may leave a company and legally live in the US while looking for a new job. While some people may feel aversion towards empowering foreigners in the country, this would help end the abuse of outsourcing companies which bank of the abuse of this lack of power.
While there are many proposals in place, there has been little action by the government. Currently, only uncertainty abounds.
Project 1 – Option 2 – Individual Reflection
The Manifesto reflects a position on the power of programming. It essentially puts programmers on a different plane of existence entirely. Although it’s a bit hyperbolic, I stand by its message, which is that more and more those who know about technology gain considerable power in our modern world. Take Facebook for example. It was started by a technologically driven programmer that wanted to explore something new. Now he has great power over what people see daily. One such display of this power was when Facebook carried out an emotion experiment in 2014. They manipulated people New’s Feed to display either mostly positive or mostly negative posts, such that they can explore the effect of social media on people’s emotions. There was a huge backlash because of that manipulation.
The manifesto claims that programmers would be able to defend themselves better against this. The reason this is true is that we are more aware than others that this can be easily done. We also know of ways to avoid tracking and avoid targeted displays of information. This can’t always be possible, but the fact that we know makes us stronger against it.
The portrait we wrote was very general. A statement written was that most CS students are white, which I’m not. I’m also not a big fan of football or catholic. The CS students’ portrait at Notre Dame was based greatly on what’s the general image of the average Notre Dame student. I don’t think we defer too much from other majors. Maybe we have more quirky jokes and we use our computers more, but I think we are all normal people: we party, we have fun, and we have normal interests.
I think stereotypes can be a problem. We tend to generalize and judge people based on stereotypes. This can’t be a good way to judge people. Unfortunately, it’s very difficult to avoid the problem. All humans have an almost unconscious disposition to judge people on as little information as we have from them, even if this just includes their appearance or their major. We may often find that our stereotypes are incorrect, but we never stop using them. I personally don’t find any benefit from a portrait. We are all individuals and we should be judged as such.
Reading 02 – Where do you see your career headed? Do you plan on staying with one company or do you envision moving from job to job? Is there such thing as company loyalty? Should you be loyal to your company and should your company be loyal to you? How do things such as non-competes and trade secrets influence your opinion? Are these contracts fair? Are they ethical? On the flip side, is job hopping an ethical practice?
I don’t have a job offer yet, so I am applying mostly to positions in California. From the readings I will guess that they don’t enforce non-compete rules. To be honest, this is something I have never thought about before. I was not even remotely aware that this was a common practice in businesses these days. I feel much more secure knowing about it now. I will be sure to look for this in any business contract I sign from now on.
The issues itself can be highly controversial. There are two sides of the issue. On the one hand, it seems that the broad practice of non-compete contracts essentially blocks people from advancing in their career. As Cameron Keng explains in his article, employees that don’t move between companies end up earning much less than those who change careers more often. The problem for this seems to be that company politics prevent companies from increasing the wage of their employees to something that better matches their skills and expertise. People are clearly unhappy with this. Thousands of employees almost sued a group of big tech companies in Silicon Valley which had secretly agreed to not compete for their employees. This agreement created a restriction similar to that imposed by the non-compete contract agreements. The lack of competition allowed their employers to underpay their workers while giving them little negotiation leverage.
On the other side of the coin, the fact is that companies truly need to protect their company’s secrets. A high senior executive may indeed be high knowledgeable on the secrets of the company. However, how this applies to low employees on the company is questionable. For example, as mentioned in multiple of the articles, Jimmy John’s sandwich making skills are an unlikely company secret, but their non-compete agreements bind their workers as if they were.
Due to this large employee dissatisfaction and employer abuse, the Obama administration urged states to completely ban the non-compete agreements completely. This worried multiple employers that argued this would put their company’s secrets in danger. Then, what is the solution to this dilemma? I believe the practice itself is not the problem, but simply its rising usage. Certainly, there are employees that hold secrets of a company, but confidentiality agreement should be enough to protect the original employer. On top of that, there is a second layer protecting company’s secrets: patents. Patents protect innovation by providing ownership over the innovation or invention. Proper use of patents should be enough to protect companies from the danger of the spreading of their secrets. Even if the secrets are spread out, by law they are not allowed to use them. Patents themselves are a counter-argument to the non-compete practices. Patents are open and often reveal the details of their inventions.
Regarding the employee’s expertise, I argue that expertise belongs to the person more-so than the company. The company trained the individual, but assuming the expertise they gained belongs to the company implies that the individual suddenly is an asset of the company. When companies hire, they should be aware that the training they perform is an investment that implies no binding.
With all this in mind, there might still be cases where non-compete agreements may be necessary. However, as Beth Milito said, “There need to be individualized assessments of the agreements that consider the industry and the geographical location”. In other words, these few exceptions should be looked at in a case by case basis. All in all, companies should strive to keep their employees through competitive salaries and growth potential, not through threats and questionable contracts.
Reading 01 – 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?
To me, a hacker is someone who finds a non-conventional way to approach or solve a problem. In this regard, I really like the example providing by Brett Scott in How Yuppies Hacked the Original Hacker Ethos: slaves practice capoeira under the guise of dancing, when they were in fact practicing martial arts. Such is the spirit of hacking.
With that regard, it is easy to see how hackers are usually seen as devious. They visit places they are not supposed to see, they break things they are not supposed to understand, they snoop things they are not supposed to know. Here there is a divide however, there are two kinds of hackers. The first one is the hacker that breaks things for the purpose of knowing. As the mentor describes in the conscience of a hacker: “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.” This is a great vision of the hacker, and one proud computer scientists will deliver while boasting of being one.
However, on the other side of the spectrum, there are those who not only have curiosity to learn, but curiosity to harm. “The media stereotype that began to be constructed was of a precocious computer genius using his technological mastery to control events or battle others.” I believe there is some truth to that. Whereas I believe all hackers have great intellectual curiosity and a desire to learn, I don’t agree that they all share a benign goal. There are those who want to use their superpowers to become a supervillain. They want things to go their way. They may just want money or to control the way the world works. A great example of this is Andrés Sepúlveda, who rigged elections in Latin America for a decade. Some may argue that this doesn’t make him a true hacker, but I think it would be more suitable to simply call him an evil one. Regardless, he is still a hacker.
To me, being a hacker is simply an approach to life, but not necessarily one that is born from any moral standpoint. I like this definition by Scott, which comes from his same article: “The hacker ethic is therefore a composite. It is not merely exploratory curiosity or rebellious deviance or creative innovation within incumbent systems. It emerges from the intersection of all three.” It simply comes to that.
With that in mind, there is certainly some danger in the softening of the hacker term. Hackers are dangerous. They can have great power. Mark Zuckerberg, for example, gives a description of hackers as if they were the best Facebook worker: “Hackers try to build the best services over the long term by quickly releasing and learning from smaller iterations rather than trying to get everything right all at once.” That has nothing to do with a hacker. Similarly, other voices in media have, over time, softened the term to mean this smart individual that can help the world. While that can be true at times, we should always acknowledge the danger of a super-villain.
Reading 00 – Why study Ethics in the context of Computer Science and Engineering?
Studying Ethics in the context of Computer Science and Engineering is important because of the growing significance people in those roles have. More and more, programmers have the power to greatly influence people’s lives. People spend multiple hours a day browsing in social media apps. This is where people get their news, love, and social connections. As Marc Andreessen puts it in his blog post: “In short, software is eating the world.”
Behind the power of software are the programmers who write it. It is, thus, in our hands to decide what and what not to program. In that respect it is easy for a programmers to wash their hands and say they were just doing what they were asked to. However, programmers should realize that they have a choice. By having a body of moral engineers and programmers, we can prevent corporations from using this power to harm people.
In modern medicine, Jonathan Harris describes how there’s two types of software companies: the dealers and the healers. The healers are those that satisfy an urge, but don’t lead to addiction. They usually provide a service for which there is a need. Take Uber for example. People have a need to get to places at an affordable price. Then there’s the dealers. The dealers are software companies that have taken people as assets. They offer people a free product, make them addicted to it, and then bombard them with advertisement to earn money from them. This is no different from a drug dealer.
Besides this, there are also companies that purposely damage people for money. In The code I’m still ashamed of, Bill Sourour describes how the pharmaceutical company he worked for performed underhanded business to get around regulations that prevented advertising drugs. To do this, they ordered Sourour to create an online quiz targeted at younger girls that suggested them to take their drug for virtually every case. Later Sourour found out that the drug was known to cause depression and that it led to the death of a teenage girl.
Besides the morality behind it, it is important to also be aware of that there are laws that have been laid down for years. Just like how industrial laws were laid down over the years after the industrial revolution, the software revolution led to new changes in legislation. Morality on software used to depend completely on the commitment of engineers to it. This has changed now, and programmers are liable by the law over any software they write. These laws range from respecting copyrights and patents to laws about privacy. Overall, they involve you being ethical and not performing underhanded business. Being ethical will protect you from being in trouble with the law and help you have a successful career.
Like Uncle Ben told Peter Parker “with great power comes great responsibility”. There may be lives at the tip of your hands. Be ethical programmers capable of tackling this world full of corporate giants who take advantage of people. Together we can make a difference.
Introduction
Hi, my name is Luis Prieb. I’m a senior Computer Science major. I was born and raised in Nicaragua, a small country with 6 million people in Latin America. I came to Notre Dame with the intention of majoring in Mechanical Engineering. I was always fascinated with Math and Physics and thought ME was a great fit for me. With this in mind, I joined the school of engineering and started my intro to engineering class, where we were introduced to LabVIEW. Before this, I had never coded in my life. I heard of a lot of people hating LabVIEW, so I wasn’t particularly excited, but at very least I thought it would be interesting to learn. In the end, I didn’t think much of it other than that it wasn’t too hard, but not particularly enjoyable either. The real kick happened the next semester. We started working with MATLAB, which I also heard people hated. I loved it. The homework assignments were like mini games to me. It was always the first homework I would start when I got back from class. Programming felt just right.
At the end of the semester, the moment arrived to decide our majors. I’m often stubborn in sticking with my decisions. I was still planning on being an ME major, but a thought had sparked in the back of my mind. It so happened that the information meeting for CSE overlapped with the times for the one for ME. I went to the ME meeting, but managed to make it to the last 5 minutes of the CSE information meeting. I grabbed an information sheet and took it home. That night I sat in my room looking at both information sheets, battling with the decision. After more thought, I decided I should just follow my growing passion. Of all decisions I’ve ever made, that’s the one I’m most thankful to myself for. Despite all those sleepless nights and the occasional class I hate (just one actually), I have never regretted my decision.
Being a CS major, I’ve done my best to explore most broad topics of it. Of all, the one that has interested me the most is Artificial Intelligence. I’ve read on the manner on my own and I have also started courses online on the topic. This semester I can finally take Machine Learning and fully explore that realm. Besides that, I’m also fascinated by Quantum Computer and by how it can revolutionize programming (despite destroying current encryption systems). Although I don’t fully understand the mathematics behind the theory, I try to keep up to date with the advances of the technologies and what can be made with it currently and in the future.
For this class, one the topics that interests me is the problem of privacy vs security. How can we find a point in the middle to compromise both sides? What are some possible solutions now and in the future? One interesting case to discuss could be Apple in the San Bernardino Gunman case. Another interesting topic is how to address liability of software product failures. For example, if a man dies because of a bug in a self-driving car, who goes to jail for it?