Wednesday, December 14, 2016

Project 5 (Final)

Link to file:

http://mc7013.no-ip.biz:88/classes/cse40175/blog/project_05/project_05.m4a

Monday, December 5, 2016

Blog 13

I think that, although Notre Dame is not universally acclaimed as a paragon of Computer Science teaching, we have a very solid program here. It covers all the fundamentals of the field while also adhering to Notre Dame's vision of providing every undergraduate with a balanced education. I think this aspect of our university's mission makes STEM, and particularly CS, education difficult. CSE is such a rapidly developing field, and for a student to be competitive for jobs and internships, they need to have the required knowledge as quickly as possible. But, Notre Dame, unlike other universities, dedicates an entire year to pursuing a core-curriculum rather than letting students go right into their CS education. That said, our curriculum, as it is laid out, definitely matches up with ABET criteria and the CS 2013 guidelines. Notre Dame goes through ABET certification, and we have maintained that certification. I generally agree with the ABET and ACM guidelines for CS programs. However, although it seems counter intuitive, I think that they should focus more on open-source contribution. This experience is very helpful, in a practical sense, for computer science graduates.

I am in favor of bootcamp programs. They provide many people the opportunity to develop real skills that help them get jobs. Not everyone has the resources or time to commit to a whole four year Computer Science diploma. These bootcamp programs let individuals develop their skills and learn about what interests them. In no way do these bootcamp programs completely replace college degrees in terms of breadth of education and level of knowledge. But, the do provide real skills to people.

I do think that you need college experience to be a good computer scientist. But, being a good computer scientist is different than being a good programmer. College gives insight into many of the foundational issues in Computer Science that, although they aren't going to be, used every day in a practical environment, shape how to approach solving problems. And, after four years at Notre Dame, I feel like I have been trained to be an excellent computer scientist.

Thursday, December 1, 2016

Project 4

Here is the link to the artifact for my fourth project:
http://mc7013.no-ip.biz:88/classes/cse40175/blog/project_04/Project_4.m4a

Monday, November 28, 2016

Reading 12: Intellectual Property

Patents are guarantees from the government of one's right to their own intellectual property. There are a variety of reasons for granting patents, primarily ethical and economic. It makes sense that one should have a right to their own creations. No one should be able to claim your work as their own. Economically speaking, patents create a great incentive for invention. A patent generally guarantees an inventor 20 years of exclusive right to sell their product. So, if one invents a new, or ground-breaking, invention a patent makes sure that they will not have any competition, having the entire market share, for that product.

I think that patents have a place in society. The economic incentive they provide to companies creates an avenue for many inventions that make society better. I don't think they are necessary for society, but they are beneficial. But, the current structure of our patent system hinders progress. Companies end up repeatedly renewing their patents, preventing beneficial products from entering the market, instead keeping the prices extraordinarily high.

I don't think that patents on specific software should be granted. Patents should be more specific, and concrete. When one patents a machine, or other concrete invention, it is obvious when a competitor is attempting to illegally copy that invention - without prying into the specifics of the machine. However, with software, this is not obvious. If one tries to file a copyright claim on software, the claim necessitates that that software is examined. But, this examination means that the company must reveal all the specifics of that program - losing their intellectual property in the process. There is one case, however, in which I think a software patent should be awarded. You can already patent processes for solving tasks. So, I think if one develops a new algorithm, that can be implemented in code, they deserve a patent for that process.

The current structure of the DMCA, and the way in which some companies deal with copyright requests, illustrates the broken nature of the copyright system. There are many examples today of youtube channels being completely shut down due to these copyright notices. What happens is that, as soon as a video is posted, a copyright claim is posted against this video. Youtube's policy regarding these claims is to immediately remove the offending video, and force the user to prove the fact that their video does not violate that copyright. This policy completely prevents new content generation. These videos are generally posted under the "fair-use" clause of the DMCA - as they are reviews of new games and videos and contain selected samples of this content. However, I think this is more of a problem with the content-sites response to these claims, than with the copyright system itself.

Monday, November 14, 2016

Reading 11: Self-driving Cars

Each time we get on the road, we put ourselves in danger. Driving in rush hour, you are trusting hundreds of other drivers, impatient after a long day and just wanting to get home, to pilot their 3,000 pound missiles safely and responsibly. One mistake can threaten not only them, but everyone around them. This concern, safety, is one of the primary factors driving the self-driving car movement. People are unpredictable and, in the smartphone age, easily distracted. These characteristics are hardly ideal when your momentary distraction can endanger many other people. But, if cars could operate independently, this fear would go away. They would have programmed behavior and, if they are regulated properly, be aware of the behavior of all other cars around them.

In addition to the safety motivation, there is one other primary drivers for self-driving cars: time-efficiency. Imagine a world with 100% self-driving cars. Each of these cars is aware of all the cars around it, their speeds, and their future behaviors. Stop-lights and stop-signs would disappear. Cars could self-adjust speeds going through intersections so that they avoid all other cars going in all directions through the intersection. Traffic would become a thing of the past. With no distracted drivers causing accidents, all cars on the road could travel at very high speeds with minimal, although safe, amounts of space between them. How much time do you spend driving / stuck in traffic each year? With self-driving cars, all of this time is freed up to accomplish other things. You could essentially sleep through your early morning commute and just arrive at work.

I strongly believe in the utilitarian approach to programming these life-or-death scenarios into the cars driving logic. It is always the case that saving more lives is better. When an accident happens, it should be the company that developed the driving logic's fault. Presumably, with better sensing ability, the situation could have been avoided.

Self-driving cars, and automation in general, pose a large risk to our social and economic structure. Truck driving is the most popular profession in upwards of 20 states. A large number of these drivers are uneducated, and do not have many other skills to fall back on. But, if we implement self-driving cars, suddenly these tens of thousands of low-skill workers are out of the job. As a society, we need to anticipate the rise of automation and prepare for it. As we increase automation, we need to provide free training to these affected groups to give them other skills that will be beneficial for society in the future. But, it is a given that not all these people will be able to find jobs. As we slowly automate out these low-skill jobs, I think the viability of a universal living income increases. Our industries will benefit so much from not needing to employ these workers and our economy, as a result, will thrive. We can't leave these workers behind, though. With the money we gain as a country, providing a living wage would be possible. I think the government has a hand in regulating these cars. That is just because I think it would be the easiest for the government to be the one to standardize the driving logical guidelines for these cars. The most efficient system would be one in which all self-driving cars are aware of all other cars on the road, and can predict their behavior. This can only happen through standardization at the level of government regulation.

I am a hard-core utilitarian. I would definitely buy a self-driving car, even with logic that may kill me, in certain situations. (Hopefully we have better safety equipment by the time these cars hit the road)

Monday, November 7, 2016

Reading 10: Artificial Intelligence

Artificial Intelligence is a very broad field of Computer Science. But, basically, it is the pursuit of endowing computers with some of the abilities generally associated with human intelligence. Of course, this definition is not all-encompassing. There are three categories of AI: strong,weak, and in-between. These categories arise from the ability of the implemented AI to reveal information to ourselves, the humans, about our own intelligence. This intelligence is fundamentally different, in so far as it has been implemented currently, than human intelligence. AI, as we currently think about it, is implemented for a specific purpose. Recently, we have developed AI to play human games (GO and Jeopardy). But, human intelligence is different, more flexible. We can apply our own logic to changing situations and adapt much easier than the AI we currently develop.

I do not think that applications such as AlphaGO, Deep Blue, and Watson do not completely demonstrate the viability of AI as a whole. These are applications developed to learn a specific task really well. Alpha GO was designed to learn how to play GO better than any human can. If anything, they prove that, currently, we are getting pretty close to having viable "weak" artificial intelligence (AlphaGO and Deep Blue) and "in-between" artificial intelligence (Watson). But, I think to truly demonstrate the viability of AI, we need to get closer on developing "strong" artificial intelligence. Until then, these AI examples will seem gimmicky. But, each of these examples is a step in the right direction.

I think that the Chinese Room argument provides a good counter argument to the viability of the Turing test. I think that it is true that, when we provide AI to a machine, we are not really teaching the machine to think, at least not in the same way that we think. We are providing a concrete set of rules for the machine, in the form of code and executable instructions. These rules then give the machine the ability to "think." Through the execution of this code, the computer is able to, in many cases, simulate intelligence and thought.

I do not think the concern of AI in our lives is completely warranted. But, this is because we have not yet succeeded in developing "strong" AI. There is comparatively little potential harm from weak and in-between AI. AI assisting our every-day activities, I think, is only helpful. We develop these AI's for specific purposes. I think there is probably little chance of our self-driving cars coordinating a revolt and causing the extinction of our species. This said, we need to be careful with its implementation. It may, for example, not be a good idea to implement an AI system to control our missile defense systems.

Monday, October 31, 2016

Reading 09: Net Neutrality

The rise of the world-wide-web has brought the world much closer together. Now, people across continents can communicate instantly. And, in this communication, is the opportunity to understand other cultures and, hopefully, bring the world to a new level of prosperity. However, online censorship fundamentally threatens this. It is well recognized that humans have a set of fundamental rights. Among these is the right to freedom of expression/ speech. But, some countries, generally those under authoritarian rule, do not recognize this. Not only do they express the real speech of their citizens, through the media and in-person, they restrict online communication.

I think, in most cases, it is not ethical for a government to suppress online speech. Countries are able to grow and prosper by facilitating open-discussion and finding optimal solutions through compromise. But, by restricting what can be said and seen on the internet, countries are purposely keeping their citizens ignorant. But, I do believe that there are certain cases in which it is ethical to filter online speech.

I do not believe that people should have the ability to directly incite violence. This rule applies to all forms of speech.

Cases:
Is it ethical for companies to remove dissenting opinions for governments?

No, this case is not ethical. People should have the ability to criticize their governments, as long as they are not endangering anyone. In fact, this criticism is one of the cornerstones of democracy. 


Is it ethical for companies to remove information broadcasted by terrorism organizations, or about terrorism organizations?

Yes, in this case, I think it is ethical to not allow terrorist organizations. This is because it directly falls under the speech stipulation I posed above. You don't have the right to incite violence and endanger others through your own speech. 

Is it ethical for companies to remove discriminatory, provocative, hateful content generated by its users?

In this case, it entirely depends on the context. It the questionable content is completely unwarranted, and is out-of-control, I think there is an argument to be made for removing it. That said, I do not believe that people have the right to not be offended on the internet.

Is it ethical for companies to remove information that does not promote or share their interests or political beliefs?

I do not think this is ethical unless the policy is explicitly stated by the company. There is a place for one-sided biased information on the internet. As it is the internet, people who don't believe or agree with the information don't need to visit that site.