The root cause of the Therac-25 accidents was for three main reasons. First there were serious bugs in the code base, second there were no hardware safety checks, finally an inefficient user interface. The race conditions in the code were serious problems. They allowed code to be executed when it was not ready. Because the program shared variables poorly, it lead to execution before the code and hardware were actually ready to be executed. This meant faulty code could be run without the proper hardware set up with the proper inputs. Also, there were overflow errors in the code that allowed improper application again. This could have been largely protected against with hardware interlocks. If there were hardware checks in place to ensure that the hardware was properly in place before operation many of these problems could have been avoided. Finally the user interface was poorly operated. By having a high number of innocuous sounding error messages, such as “Malfunction 54,” caused the operator to ignore what was a very serious malfunction. In such cases the machine should have probably locked itself to ensure the user did not accidentally kill someone. The error messages could have been more descriptive as well, this would have allowed the technician to see the problem and fix it rather than simply ignoring the malfunction. Thus the root causes of the Therac-25 accidents were because of the bugs in code, lack of hardware safety features, and poor UI design. The challenges of software developers working safety critical conditions is the risk involved. Safety critical conditions can have major effects on people even possibly death, such as with Therac-25, if coded poorly. In these cases, simply rolling out patches when a bug is reported is not enough, people could have already died. The developers must extensively test all possible conditions before releasing the code to ensure no problems arise. One of the articles suggests third party testers to ensure no bias. This sounds like a great idea, in house testers are a great asset, however, may overlook some bugs as unimportant if it will launch the product faster. If a third party is used to ensure that there are no bugs, these biases will not exist. The developer must ensure that their programs in safety critical conditions is as bug free as physically possible. Sending out buggy software could have major negative side effects. These side effects would be the fault of the developer and of the company they work for. In these situations the developer should ensure they have tested their code as much as physically possible. At the same time, the company the program is for must also ensure they do not release products without extensive testing of their own. The company has more resources than the developer and therefore they should ensure to have all safety critical code tested extensively. Therefore, both the developer and the company are both responsible for ensuring that the code and the product are as stable, reliable and non faulty as possible. These steps could save lives.
Reading04:R-E-S-P-E-C-T
Diversity in Computer Science can be a very touchy subject. Stuart Reges talks about how an executive at Google was fired because he expressed, in Reges opinion, honest thoughts on the subject of women in Computer Science. He suggests that its totally possible that women simply don’t want to be Computer Scientists and that is the cause for the gender gap in computer science. Reges supports this claim by providing suggestions that in elementary schools when both male and female students were tested, female students who scored similar math scores as their male counterparts often scored better in reading. What this data seems to be suggesting is that female students are more geared toward reading and similar subjects. While the data may point to this I am not convinced. I believe that looking at test scores divided by gender is an arbitrary measure. People as a whole are unique. I do not believe that the gender of a person determines their academic interests. There are probably similarly arbitrary ways to break up the data presented to draw similarly indistinct conclusions. It is entirely possible that the data will show that children who play more sports are more inclined towards reading, again it would be completely arbitrary. However, even if on average young girls are more inclined towards reading (which I do not believe as I feel that each person shapes their own academic interests not their biology) that should not change the approach of Computer Science towards women working in the field. I feel that the best person for the job should get the position, as such it should not matter what a person looks like or what gender they are, instead their ability should be what causes them to get a job and be respected for that ability. Some may argue that the problem of women in Computer Science starts earlier with not enough women being encouraged to take introductory classes or even consider the major due to external pressures. This is a potentially valid point. Young women may feel discouraged to pursue an interest in Computer Science for external reasons and this is wrong. All people should be encouraged to follow their interests. This could mean that women will always be in a minority in Computer Science or women could become the majority in the field, however, in the end to fix the problem I feel all people should be equally encouraged, as individuals, to pursue their interest in any field of study and to not discourage any person from their study. Society may initially press against both women and minorities who try to advance in fields such as computer science, however, to combat this the field should encourage everyone to follow their passion. That means that men, women, everyone should be encourage across the board to create a better equality. I think outreach programs by the industry that target young children could help to foster a better culture of involvement in the Computer Science Industry. If all children are encouraged to follow their passion from a young age even if society does not immediately accept the changes that are coming these students can believe in themselves and their peers to excel.
Susan Fowler’s blog post about her time at Uber is awful to hear. Uber’s poor treatment of women compounded by their poor overall management combined together to create a very difficult and discouraging work environment for all. The numerous reports she made about sexual harassment being ignored is extremely discouraging. Uber should not be trying to keep down its engineers for internal political reasons or reasons of sexism it is simply wrong. A company should make all people feel welcome and comfortable working there. If this is how a major software company treats its employees it shows a major problem in the industry of employees not being respected as people. While some companies may be trying to encourage all people, others are clearly not and this should not continue.
Reading 03: Visa Cash Back Program
The controversy surrounding the H-1B Visa is that is can be seen to either improve United States Industry or hurt United States Workers. The view of H-1B as a benefit is that the Visa offers employment opportunities to non-American citizens in the United States. This view can be broken down to see it as retaining foreign nationals who are schooled in the United States and bringing the best possible employees to work in the United States. I think it is a good idea to try to gain the employment of foreign nationals who are educated in the US, almost like a return on investment. The United States would gain from people who are being taught at American institutions instead of these people taking the talents they learned in the United States somewhere else. Also, if the United States wants to have the best companies it can, it should allow the best workers, no matter nationality, to work in the United States. The other side of the coin however says that when companies can hire similarly skilled laborers internationally, the company can generally pay the international employee less and as a result pay the domestic employee less as well. So the visa can be seen to be limiting salary growth.
Personally I am in favor of the H-1B visa, I think the idea of including people from other countries in the United State’s industry can strengthen it significantly. Also I do not think that people should be limited in terms of employment based on where they were born. Personally after studying abroad in the spring semester of my Junior year, I can see the appeal of working, even if only for a couple years, in another country. I think the spread of knowledge and information around the world will lead to a better world culture and a better relationship around the world. Also, I would hope that any country I would potentially work in, if I were to work abroad, would welcome me as I try to work in and improve their industry, like H-1B Visa immigrants are in the United States. It is understandable that people would be concerned about the lowering of wages as a result of the H-1B, however, I think that the positives out weight the negatives. As a whole I feel Americans would gain more from talented people from other countries coming to work in the United States then they would from a few people making a little bit more per year. Also, I feel that the problem of lowering wages is not a result of the H-1B visa, instead it is a societal problem in industry. The culture that foreign nationals can be paid less than American employees, and then stagnate American employee salaries is a problem that is not necessarily related to the H-1B visa. Salaries should be, ideally, based on competency not on locality or origin. Personally I view foreign competition and outsourcing the same way I do domestic competition. There are people that I am competing with to get a position and their nationality does not change that these people exist. While it could be argued that there is more competition and so less chance that I could be hired, this also works the other way, I could search for opportunities in other countries and be the foreign competition in that country. Thus I feel the United States should live up to the ideal of being a land of opportunity and continue to allow people in with H-1B Visas.
Reading 02: Money Moves
Money sucks but it is central to our lives in many ways. The best way to get money is by working, but how much we will make and how much we should make are not that easy to figure out and is even harder to get the amount you want. There is a negotiation, because your employer would love it if they could pay you less for the same work and you would love it if you could get more. Reasons money sucks number fourteen: negotiations. Personally I plan on biting this bullet as soon as possible. Negotiations are uncomfortable but like Patrick McKenzie says “Dude, it’s five minutes.” Five minutes of discomfort would definitely be worth it if it could result in an extra five thousand dollars per year. Negotiations, specifically salary negotiations, are the necessary evil of our world today, no one likes them but we have to do them. Engineers, or all employees, really should participate in these discussions and not just immediately take the minimum amount the company offers you as good enough. Why should someone with just as much experience doing the same job as you make more money than you, they will if you don’t negotiate salary.
Personally, I have yet to negotiate my salary for a position relating to my major. My internship came at the last second and I was just happy to have the opportunity. I have however, negotiated pay for another job I had. I was a lifeguard for a number of years, so long that I became one of the senior lifeguards on staff. There was a lot of turn over at the pool and beach I worked at and so a lot of different people came through. The pay system of the company I worked for valued education over experience. What that means is that as a lifeguard, the company held that someone who had a bachelor’s degree was worth more than someone who did not, even if the person without the bachelor’s degree was a better lifeguard. This did not sit well with me, so I had a discussion with my boss about pay. To substantiate my claim for more money I outlined my experience, my ability as a lifeguard, and my willingness to pick up shifts for others who called out regularly. I made my point that for these reasons I deserved at least as much as people with less experience but a bachelor’s degree. My boss agreed, partly because he already knew I was a good lifeguard, and was willing to give me a raise. In the end when I went into salary negotiations, I focused on my abilities and my history with the company to show that my time was worth the extra money.
Negotiations are not fun but they are a natural and necessary evil in the world today, everyone thinks their time is worth more and every company disagrees, if we simply let the company dictate what we make we will be much less satisfied with ourselves and our work.
Link to article referenced: https://www.kalzumeus.com/2012/01/23/salary-negotiation/
Reading01:The Nature of Computer Science
Computer Science is neither an art nor engineering discipline, and while it is most similar to a science discipline even this is not exactly accurate. Computer Science is definitely not an artistic discipline. Artistic disciplines suggest that the end product is for purely creative purposes. Though computer science can be used in artistic ways, such as creating a film, video game, or modern song, computer science is more the vehicle rather than the process itself. Computer Science is also not arbitrary like artistic disciplines often are. Painting can either be very picture accurate or a colorful square and both are just as valid pieces of art. However, in computer science a well made algorithm is valid, but simplistic poorly written code is objectively worse and cannot just be appreciated as a different way of practicing Computer Science. Computer science is also not an engineering discipline because it does not have the strict structure of traditional engineering disciplines. When a civic engineer designs and builds a bridge, if there is a problem they cannot simply send out a bug a week later with a message that says the problem is fixed now. If a civic engineer has a problem with their bridge it could cause millions of dollars of damage not to mention the possible loss of life. For this reason there is a much stricter training structure to become an engineer in the classical sense. Any person who knows how to program, no matter their experience or level of schooling could be considered a computer scientist. Ian Bogost mentions that there are four years of upper level schooling and a number of years of experience under a registered engineer before a new engineer can be considered a professional engineer. None of this is true for computer scientists. Computer Science is more similar to a scientific discipline. In scientific disciplines there are very few laws only theories that can be disproven if enough evidence is found contrary to them. While most of the theories are so widely accepted they are basically laws, this is also true of computer science. While computer science has very few rules that programmers must abide by, there are many accepted structures used to make programming easier. These are generally the programming languages or larger structures, such as object oriented programming, that computer scientists will use to optimize code. Scientific disciplines are however different than computer science in that they tend to try to understand and discover the nature of the world while computer science is a discipline that largely supports its own development. Computer Science is not discovering anything but instead is inventing new ideas. Overall, Computer science is not like art or engineering at all, due to the creative principles of art and the structure and rigidity of the engineering discipline. While Computer Science is similar to science in the use of theories and rules, it is also very different because science exists to discover more about the world where computer science exists to innovate itself. I think Computer Science is a new discipline independent from any of the more traditional academic disciplines.
Reading 00: Morality
When I try to determine if something were right or wrong my first course of action is to ask myself if I would like if that was done to me. Would I like it if that was said to me, or if it was done to me etc. I feel like this is a good place to start when considering if an action is right or wrong. It makes the action more personal and makes me take into account the perspective of the other side. This however, is only a first step, if I am not sure about if an action is right or wrong by asking if I would want it to happen to me, because maybe it does not apply, I then ask societally if it is considered right or wrong. There are very few things that cannot be defined as right or wrong, or at least find a discussion about the ethics of an action from a societal perspective. There is however a lot of overlap between the two ways I determine if an action is right or wrong. This is because I have grown up in society and my standard of beliefs are a reflection of the society I grew up in to a large degree. Then if neither of those two questions provides me with a satisfying answer about the ethics of an action I will assume it is probably wrong, because it is better to be safe than sorry. I feel like if I’m not sure if I would want something to happen to me, and society does not have a conclusive stance one way or the other on the action, it is better to be on the safe side. I feel that if I am able to put myself into the shoes of the other side of the issue and conclusively state whether or not I believe that action is for right or wrong, I can feel much better about my decision. This is largely because society, despite having opinions on almost every topic rarely has unanimous agreement on moral or ethical issues. If I can say myself I also do not rely on the opinions of others who I don’t know to make ethical decisions for me. Something that I also consider when I’m asking myself if I would be upset if an action occurred to me I also have to consider that people are different. So while I may be perfectly fine with being called a name or being mildly insulted others may take much more offense. It is these situations societies opinion is important to the question. When I think that personal opinion may play a part in the ethics of an action, I try to consider it not from my own perspective but as a general member of society. Then I am better able to say if an action is right or wrong. Overall I think the best way to determine if an action is right or wrong is to take a personal perspective of the issue from the other side. This would be the quickest and easiest way to determine the ethics of an issue. Despite society attempting to outline the ethics and morals of all people it is the responsibility of the individual to make the final decision regarding their own actions and their morality.
Reading 00: About Me
I am Computer Science and Film double major, who enjoys film and the process of making the film. I’m studying Computer Science in order to work in the film industry working on special effects and CGI for movies. Films are a passion of mine and being able work in the film industry is a dream of mine. It is for this reason I am a Film and Computer Science major, to further my ambition to work on films using my computer science knowledge. From this class I hope to better understand the ethics of technology. A lot of emerging technology has very interesting ethical questions behind it. From self driving cars to Artificial Intelligence each has their own interesting ethical questions to delve into. The question of how self drivings cars should prioritize life, as in if a car could not stop should it run into a pedestrian or into a wall and kill the driver. It is an interesting ethical question that I am excited to delve into. Another interesting topic to consider is Artificial Intelligence, what is it to be alive? Is an Artificial Intelligence considered alive? If it is what does that mean for programmers? Should the people who build an artificial intelligence be responsible for it to a greater degree than they would be for normal code? Ethics are an interesting question to consider in terms of programming. I hope to have a better understanding of how to approach a lot of the ethical issues surrounding programming that I may not have considered before now. There are even ethical concerns when considering computer science and its use in the film and entertainment industry. As computer graphics get better and out ability to replicate the real world improves there will be more and more questions that have to be considered about what should actually be made with computer graphics. Already there is push back to advances in computer graphics as seen in the response to Peter Cushing’s computer graphic appearance in Star Wars Rogue One. Industrial Light and Magic used state of the art motion capture and computer graphics software to create a real to life representation of Peter Cushing despite Cushing having died in 1997. Industrial Light and Magic with the full consent and support of Cushing’s estate, however, the practice still raised concerns about the ethics of cgi representation of dead actors. Further in the entertainment industry the improvement of Virtual Reality and the possibility of it being used as a substitute for real world interaction and living is something that must be considered. Virtual Reality is only in its infancy but already the potential for it to be misused are obvious. Further with hyper realistic computer graphics and improved virtual reality coming in the relatively near future. A world that looks real and can be interacted with as though it were real but is not real is an ethical dilemma that must be addressed in the near future. Overall I am looking forward to discovering and exploring the ethics of cutting edge technology.