Reading 14: Cause your friends don’t code and if they don’t code, well they’re no friends of mine

As part of the Computer Science 4 All movement, many states are making changes to include computer science classes as part of their curriculum.  This has become a polarizing topic for some.  The group in favor of more computer science education opportunities in schools argues that as the world becomes more technologically integrated, people should have a better understanding of how the devices we use everyday work.  Not only will this give everyday people an idea as to how their devices work, but it could inspire more kids to go into computer science, helping to fill the many computer science related jobs currently out there.

The other side of this argument is concerned about people getting into this field for the wrong reasons.  The article titled, “Please Don’t Learn To Code” talks about how the Silicon Valley lifestyle is overly glamorized.  And that if you did not get a traditional computer science degree, it is very hard to make that leap from learning to code to making money as a software programmer.  Their main concern is that this huge push to make everyone learn to code will not pay off.  My problem with this argument is that I really do not see how it could hurt to have kids take at least one programming class before leaving high school.  I was forced to take things like History, Biology, and English, so why not additionally have everyone take a coding class?  I’m not sure if taking a coding class before going to college would have affected me in any way, but it might have an impact on someone else.  I, for some reason, used to think “I don’t think computer science would interest me”.  But sometimes people just form these types of ideas and we get stuck in our ways.  If I had been forced to take a computer science class sooner, I would have had a very different opinion about it because I would have realized how much fun it is.  I do think that making programming more accessible to kids at younger grade levels is very important and is an initiative that schools should be taking.

Can anyone learn to program?  My first response to this is yes.  But, this may be because I already know how to program and it seems intuitive at this point.  But after spending a very long summer trying to help my mom through her company’s R Cloud optional training class, I realize that not everyone finds this skill as intuitive as I do.  Should everyone learn to program?  This question is a bit trickier.  What I do believe is that everyone that want to learn to code should have the opportunity to do so.  Additionally, everyone should have an understanding as to what it means to build and write code.  A lot of times people do not want to learn because they see learning to code as this huge impossible task.  But, if more people had an understanding of how coding really works, I think there would be a lot more people in computer science classes.

Reading 13: Copyright Licenses – Open and Proprietary

When deciding which type of license to use for a piece of software, the developer must think of the intensions for the code.  Open source licenses are used for software that allows developers to edit and share the code.  Having the code be public means there are more eyes available to spot bugs, errors, security flaws, etc.  With proprietary licenses, the owner of the software has more control over what can be done to it.  But, there are fewer regulations for proprietary software.  Instead of more regulations, usually software that has a proprietary license will require you to agree to their terms and conditions.  While bugs from a software with an open source license may get fixed faster, the developer of the software with a proprietary license is more guaranteed to be able to profit, since they are they only ones able to actually make changes to fix those bugs.  It’s hard to say if one is better than the other.  If your goal is to profit from your software, then a proprietary license might be the way to go.  But if you want your software to reach more people that can contribute and help the software grow, then an open source license might be the way to go.  Additionally, things like HeartBleed and ShellShock that affect the security of open source software argue against using open source licensing.

Free software and open source software describe very similar sets of software.  The ideas behind the two concepts do differ, though.  Free software refers to the ability of the user to do whatever they want with the software.  Open source refers to the idea that free software leads to better collaboration.  It is not a guarantee that all free software is open source and vice versa, but more often than not, a piece of software is likely to fit into both categories, not just one of them.

The main difference between GPL and BSD licenses is that BSD allows anyone that uses an open source software with that license to then turn that new software into a proprietary product.  GPL allows changes to the software that are only allowed under the license.  I believe GPL protects the owner of the software more, while BSD gives any contributors more possibilities.

In regards to the Oracle v Google case, it seems that Google used Java APIs in a competing product, and therefore it was ruled that they violated Oracle’s copyright.  The ruling that they APIs were “fair use” means that you can use them, but you just can’t use them to package and sell that software for yourself.  I do think that they are correct in this ruling, but the decision will have some effects.  This will make any future Google products that would have used this software more expensive for consumers.  If they had used only fully open source Java to build Android to begin with, this wouldn’t have been an issue.  This suite will make developers more aware of the software and APIs they are using to build their own systems, and be more aware of copyrights in general.

Reading 12: Planes, Trains, and Automobiles

Self-driving cars and “mobility” are becoming our not so distant future.  Transportation is something that is a part of everyone’s lives in some way.  More specifically, most people drive a car somewhat frequently.  Possibly more importantly, there are some people that have a need to drive a car every day but are prevented from doing so, possibly because of a disability.  Self-driving cars are a way of giving the option to drive to more people.  In general, driving is a dangerous activity, taking the lives of 1.3 million people per year.  One of the goals in self-driving cars is to make driving a safer activity, including preventing drunk driving accidents.  Every company is trying to be a part of this field and they are smart to do so.

Not all advancement is good advancement.  There are a lot of dangerous implications that come with this new advancement.  A lot of people are skeptical of how safe these cars can be.  While they might be less dangerous if all of the cars on the road were also self-driving cars, they have to drive on roads with mainly human drivers.  This can still lead to accidents and possible injuries and deaths.  There is also a concern for the threat to numerous transportation based jobs.  Taxi drivers have already experienced this with the rise in popularity of ride-sharing apps like Uber and Lyft.  Now professions like truck drivers are worried about their own job-safety.

How these autonomous vehicles approach life-and-death situations is widely debated.  Something to help explain this problem is called The Trolley Problem goes.  Let us say that a trolley headed on its current track is about to hit and kill five people.  There is a lever that you could pull that would change the trolley’s course, making it hit and kill only one person.  Do you pull the lever? Most people would choose to pull the lever and kill the one person, saving the five people.  But when it comes to the context of the autonomous vehicle, it becomes more controversial.  If the car was about to hit five people crossing a street, should the car choose to swerve and hit another car and another person?  What if this swerve resulted in the death of the driver? If we treated this situation like The Trolley Problem, then we would have the car kill the driver.  However, most people have a problem with this.  People believe that these vehicles should protect the drivers.

I would definitely consider getting a self driving car.  As someone who falls asleep the moment she is inside of a moving vehicle, there are a lot of benefits to owning a self driving car.  I would want the car to allow the driver to have some control in some situations where I felt I needed to take over.  I like having up to date technologies and owning something like a self driving car would be very exciting.  It is transforming the transportation industry and I want to be a part of it.

Reading 11: “Sometimes it is the people no one imagines anything of who do the things that no one can imagine.”

Artificial Intelligence is the idea of programming computers to behave like we, as humans, do.  For some that means that computers should behave exactly as we do; this is called “Strong AI”.  The goal of a system like this would be to study human cognition.  On the other side of this is “Weak AI”, which is making computers to behave like we do, without telling us anything about the way we think.  And additionally, there is a third stream of thought, which is a combination of the two; this uses human reasoning as a guide and is not striving for perfection.

Some examples of Weak AI include things like AlphaGo, Deep Blue, Watson, and AlphaZero.  While the main functionality of  these systems are to play (and win) a game, they mean much more than that for the Artificial Intelligence world.  At the time each of these were created, the games they were meant to play were thought of as “too strategic” for a machine to be able to win, let alone against a human champion.  But in the end, no human proved to be a match for these systems.  This goes to show that we should never assume that there is a limit to what a computer can do.  I believe that the methodologies behind these types of advances will one day be used to solve more

The Turing Test is designed to find out if a machine can think.  Supposedly, a human “interpreter” asks questions to both a human and a machine and, based on their responses, is supposed to determine which is which.  The idea is, if the machine can fool the human, then the machine can in fact think.  I don’t think that this test is an accurate way of determining if a machine can think.  The Chinese Room demonstrates why this is not an accurate measure.  This test describes a Chinese-speaking man conversing with a machine that can pass the Turing Test.  Seale then describes a situation where they replace the machine with himself, a non-Chinese-speaking person, and he is to process the Chinese input as a program instructed, and give the responses back to the interpreter.  If he were to pass the Turing Test, it would mean that he “understood” the Chinese input.  But, he does not, in fact, understand Chinese and is just following a set of instructions to make it appear as if he does.  Here, the machine does not actually understand the input, but is just translating based on a set of instructions and feeding back responses that were programmed in.  This relates back to the idea of “Strong AI” vs “Weak AI”.  Are these machines actually thinking as humans do?  Or are they merely accomplishing the task of making it seem like they think like we do?

Any possible dangers that could come from Artificial Intelligence really come from the people in charge of it.  They can decide what the machines’ limits are.  I do think that we have a moral obligation to ensure that any AI machine does not do harm to people.  There is a lot of potential for these types of machines to do a lot of good, and I am hopeful for where this field is headed.