Thursday, April 23, 2015

Is "Close Enough" Good Enough?




When I began researching ethical issues in computer science, I really wanted to find something I hadn't thought of yet. One of the ethical issues that really caught my attention is shipping and selling software that isn't fully completed.  Why is this an ethical issue? Well, for one when it comes down to it, you are providing the consumer with something incomplete, when they are paying for the complete product. 

This doesn't tend to be that big of an issue, outside of morals, when it is pertaining to small things like entertainment websites that might crash once in a while.  The issue lies in the fact that software is such a large part of our society these days, that we need it to be complete and as bug free as possible.  There can be very costly mistakes when it comes to software.  One example is Ariane 5, this is a European Heavy Launch Lifting Vehicle, basically what helps launch a rocket into space.  The Ariane 5 unfortunately had a software malfunction that caused a rocket to self-destruct and cost hundred of millions of dollars.

Ariane 5ES with ATV 4 on its way to ELA-3.jpg

There are other cases that software malfunction has cost substantial amounts of money, and even lives.  For example, the case of Therac-25.  Therac-25 was a machine used for radiation therapy, but because of a programming error, it would give patients incredibly high dosages of radiation which would lead to serious injury and death.

https://fracasosdesoftware.files.wordpress.com/2012/05/21367-radiation_therapy.jpg

I think that it's easy to think, "Well those were extreme cases" and not think much of it, especially if whatever software you (if you enter the field) develop isn't something so large scale and important.  What it boils down to though is that is unethical for somebody to call a project complete when it isn't, even when it's a small scale project. This is because a lot of times, people are paying for the software they're using. It's the same as basically anything else you pay for, if you don't get what you paid for you get a refund or a replacement, why isn't it always the same when it comes to software?

Tuesday, April 7, 2015

Lenovo and the Superfish

One recent issue within the computer science field has to do with the company, Lenovo.  It has been reported recently that Lenovo has been selling computers installed with software called Superfish.

You may ask, why is this an issue? What was the purpose of them doing that? Well, I'll tell you! Superfish is an advertising software.  Simply put, Lenovo was putting it on their laptops so that they could better advertise.  This software works by intercepting communication between the computer and encrypted websites.  Where Lenovo went wrong, besides putting the software on the computers in the first place, is they chose a single password to access these communications.  This password was cracked within hours and a lot of sensitive information was potentially accessible.  Another negative side effect of this is that if somebody knew the password they could put whatever they want in your browser, similar to how the advertising software would put advertisements in your browser.

This is clearly a negative impact on anybody who uses a computer.  Although this is only found in Lenovo laptops, it shows that you can never really be too cautious.  As consumers we should be able to expect that we won't have malicious software installed on newly purchased products.

If you own a Lenovo laptop and are concerned you may have the Superfish software installed, there is a website that will check if you have Superfish or other SSL-disabling products on your computer.

Reviewing the Pi-Top


Pi-top is new product developed by a team of three people.  Pi-top is something that is a truly wonderful idea and is already starting to gain a lot of attention.  I'll jump right in with what it is.



Pi-top takes Raspberry Pi (A low cost credit card sized computer) and places it inside a 3D printed laptop case.  This is a big step because previously Raspberry Pi users would need to connect their Raspberry Pi to a monitor or TV and have a keyboard and mouse to connect and use.  The laptop case has a keyboard and mouse-pad built into it.  The purpose of the pi-top is to get students excited about computing and programming.

The pi-top is still very new and is currently being funded at indiegogo.com. I do not think that this product can be reviewed on the same criteria as a normal laptop for a few reasons.  The biggest reason is that it is not a normal laptop! With a 3D printed case and a computer that is the size of a credit card, this is one nifty little product! Another reason that it cannot be compared to normal laptops that one might be considering to buy, is it's intended purpose is to teach about computing, programming, and hardware for computers.

The pi-top team used their very first prototype (pictured above, this photo was taken from imgur.com) to teach over 400 people about computing and hardware!  The pi top has been featured in various technology expos and has managed to win some awards as well.  I would think that the pi-top is a huge step in the computer science field because it offers a simple, inexpensive way to learn about computers and programming! Although it still has kinks to work out, it is a very interesting project that I encourage you to read about!


Tuesday, March 3, 2015

An Exploration of the Computer Science Field

This blog will be a brief exploration into what the computer science field is.  It will look at what people in this field do, what they're interests are, the thoughts and values shared among those in the field, and the computer science field's larger purpose.

A few of the main careers in this field include, software development, database administrator, and web developer.  There are a lot more careers that one could do, but these are a few of the major ones.

As a software developer one could expect to review software systems, present improvements for those systems, writing program code, and working closely with other staff involved on the same projects.

A database administrator is somebody who is responsible for maintaining the security and performance of a database.  Along with that they can expect to monitor the database's security and user access as well as maintaining the physical storage of the database as well.

A web developer is someone who can expect to closely in a development team while they work towards developing a web page.  The job will entail converting raw images and layouts into HTML and CSS code and other tasks that the project manager might need completed.

Those in the computer science field share the interest of technological things.  One might think that is a broad statement, but to have your entire career focus on technology, it is hard to not develop and maintain an interest for those things.  It's difficult to speak for all those in the computer science field, but I would think that many in the field have an interest in programming as well.

Among with the shared interest of technology and programming, I would think that those in the computer science field would value code that is well organized.and easy to understand.  Other values that we learn in our degree that would hopefully continue are cultural, societal, and global issues, and dealing with them ethically.

The computer science field has a huge impact on the world today.  Many of the things that involve technology would have somebody from the computer science field involved.  Some of the major things that the field impacts is, you guessed it, computers.  Computers have become such a large part of our society these days, without people in the field, it would be impossible to improve and maintain the systems we have today.