Month: April 2016

Computer Science Education

Nearing the completion of my Computer Science education at Notre Dame, I feel that I can accurately comment on its quality. I can also analyze how closely the education I received aligns with general Computer Science education guidelines and criteria. The Computer Science 2013 Guidelines provide 18 “Knowledge Areas” for all comp-sci graduates, so I decided to see how many of these Knowledge Areas I have been taught during my time at Notre Dame. Scanning the list, I see that there are some knowledge areas that we’ve obviously covered, like Algorithms, Architecture, Operating Systems, and Programming Languages, and then there are some that are offered as electives, and many students would not have exposure to them, like Graphics and Visualizations, Networking and Communications, Human-Computer Interaction, and Information Assurance and Security. Is it a problem that the mandatory curriculum at Notre Dame does not include classes from all 18 knowledge areas? Well, later on in the 2013 Guidelines, a set of principles for Computer Science students is listed, and many of these principles mention how graduates should learn in a way that they could be flexible and work across many disciplines and be prepared for a variety of professions. Maybe a Notre Dame computer science student could hit all 18 knowledge areas if he chose to overload schedules and work hard for it, but for many students (including me), there are some topics of computer science that interest us and some that do not. Exposure to different parts of computer science is very important, and being able to choose certain classes as electives rather than be forced to take it allows us to learn what parts of computer science we love. I got to take Biometrics, Networking and Security, Web Science, Databases, and Data Mining because they sounded interesting to me, and sparked further learning. The balance that Notre Dame provides is important for fostering a student attitude that enjoys learning and discovery rather than being forced with an impossible course load.

But is a college education necessary to be a good computer scientist? For me personally, I don’t think there’s any way I could have acquired the knowledge I have without college. Learning from professors and alongside classmates was something that could not be replicated on my own. I do think, though, that it is possible to be a great computer scientist without formal education. It’s not the way I learn, but for many, self-teaching is the way to go.

However, I did not go to college just to become a great computer scientist. I came to be a part of groups and activities, build relationships, extend my faith, and become an improved human, in general. Not only become more educated, but become a better person. Notre Dame has helped me be the type of computer scientist that not only has the knowledge, but also has the ability to make ethical and educated decisions based from what I’ve experienced at this university.

Internet Trolls

The anonymity of the Internet has made it easy for users to post whatever they want, and not face any repercussions. Anonymity gives a new-found freedom to users, and the users that use this freedom to post offensive things or try to start arguments are known as “Internet Trolls.”

In my experience, there is a complete spectrum of Trolling. On one side are harmless trolls whose trolling is clever, in good taste, and not really offensive. On the opposite side are offensive, bigoted trolls who post only to hurt people. I’ll talk about both of these type of trolls.

The best example of the harmless troll I can think of is a user known as “Ken M.” Ken M comments on posts as a character who seems like the most oblivious person on the face of the earth, basically baiting other users to respond to his ridiculous comments. From the outside, and knowing that Ken M is a troll, the comments are hilarious and they don’t hurt anyone. Ken M even has a sub-reddit dedicated to his clever acts of trolling. (https://www.reddit.com/r/KenM/)

On the other, darker side of trolling are the hurtful, bigoted trolls whose only purpose is to spread hate and harass others. I was first introduced to these types of trolls when I was in high school, when the website Formspring became popular among teenagers. Formspring is a website that allows people to anonymously “ask questions” to users. However, what the website really allowed was for people to post hateful comments directly to people, and to do it anonymously. Formspring became the perfect medium through which to cyber-bully people. I didn’t personally have a Formspring account, but I saw many of my classmates’ pages. Even likable people’s pages were filled with hateful comments, usually girls being called “whores” and “sluts.”

This spectrum also has examples in-between these two extremes. What about the protestors who troll the Westboro Baptist Church? These trolls are technically harassing, but their main purpose is to silence the organization that was originally spreading hate. Trolling isn’t always a black and white subject, and it is sometimes difficult to see which examples are ethical and should be allowed, and which ones are not.

Freedom of Speech is important, but technology companies have a responsibility to suppress online harassment. This is why you can “report” a users on Youtube or COD if you find something they say or do to be offensive. Yikyak, the “anonymous Twitter,” tries to prevent cyber-bullying by not allowing the app to be used within a certain distance from a school. That way, the people who are most like bully through anonymous mediums and be affected by harassment the most (i.e. teens and pre-teens) do not have the means to do it through Yikyak. I also thinks technology companies have a responsibility not to create things that foster and encourage harassment. A website like Formspring should not have even been created, even if its intentions were good.

Trolling definitely is a problem on the internet. Just look at Youtube comments for any video (especially a political video), or spend 20 minutes in a Call of Duty game lobby, and you’ll see how harassment and online anonymity go hand-in-hand. Personally, my approach for handling trolls is to ignore them. Sometimes, if I have a clever response I’ll fire back, but those occasions are rare. It’s not easy for everyone to ignore trolls and harassment, though. The negative side of trolling is a problem, and technology companies and internet users should be working diligently to solve it and make the internet a place where everyone can feel safe and free of unnecessary harassment.

Artificial Intelligence

In the simplest sense, Artificial Intelligence (AI) is the sub-set of computer science that focusses on creating computer programs that can mimic human intelligence by solving tasks that normally a human would do, and solving them intelligently. With this definition, it is easy to see how most programs written can be categorized as AI. If I write a program that lists the first hundred prime numbers, the program would use the same logic I would use in solving the problem, but it would do it much faster. However, when I think of AI, I usually think more about complex programs that not only mimic human intelligence in performing calculations, but also are able to learn and adapt, and have intangible, hard-to-program characteristics like emotions or a sense of humor, all of which encompass the idea of human intelligence.

I remember watching IBM’s AI machine named ‘Watson’ that was a contestant on Jeopardy. One of the most difficult things the designers of Watson had to consider were all the puns and clever clues that were given as Jeopardy questions. For Watson to succeed in the game, he would have to understand the very human concept of humor. It was amazing to watch as Watson correctly answered questions that, at first, I wouldn’t think possible to be programmed. Watson’s capacity for something so complex as humor made me start to believe real AI was viable.

The Turing Test is used to test how successful an AI program is. If a computer can convince a human evaluator (usually through text-based conversation) that it is actually human, then the program passes the evaluator’s Turing Test. The recent film, “Ex Machina,” presents this very situation. A human evaluator is brought in to test whether a female AI robot can pass his Turing Test. The creator of the robot is so convinced that she will pass the test, that he tells the evaluator in advance that she is a computer, upping the ante. *SPOILER* The real kicker happens in the movie’s twist ending, when we find out that this AI program passed our (the viewers of the movie) Turing Test, without us even thinking about it. We were shown that this girl was just a computer, and we still believed she had human intelligence, including intangible human characteristics like emotions, trust, and love. *END SPOILER* The movie brings up a lot of the ethical issues surrounding AI, and I suggest it to anyone in the computer science field, especially the members of this class.

But can we ever truly reach complete artificial intelligence? Could a computer system ever be considered a mind equal to that of a human’s? I don’t think so. There are just too many intangible, complex characteristics that are a part of human intelligence. Can we program a computer to feel things like sadness, anger, and love? We’ve proven computers can understand humor and puns, but can they create jokes of their own? I think the closest we can get is for a computer system to simply mimic a human mind. Imitation but not equivalence.