CS Education

 

 

 

Looking back on my computer science education at Notre Dame, it’s hard not to remember conversations I’ve had with friends at other universities over the years about the differences in their CS programs and ours. I also find myself remembering comments I’ve heard from companies and interviewers along the way regarding the ND CSE department organization. Many friends and interviewers have wondered why ND waits until junior year for data structures, essentially making it much more difficult to land an internship for the summer between sophomore and junior year. Others have wondered why we go so far in mathematics. The CS department recently reorganized a few things, and the data structures question will be a non-issue soon, something I think is a huge positive move. Notre Dame is not a top engineering school nor is it the best CS school around. But after reading through the ACM guidelines and the ABET accreditation criteria, it would be hard to say that it isn’t a great one. Copied below are the knowledge areas in the ACM guidelines and the number of Core Tier1 and Tier2 hours that should be spent on them.

 

Screen Shot 2016-04-19 at 9.58.52 AM.png

A few things stuck out to me when I was reading through the guidelines. For one, we at ND spend much less time on Algorithms and Complexity than the guidelines recommend. Some students go further through electives, but the requirements in algorithms might need to be increased in the future. When reading through the specifics of Computational Science, I didn’t feel knowledgeable in the subject and there were many topics I had never seen before. While I am  currently in a Human Computer Interaction class, I am taking it as an elective – Notre Dame doesn’t require any courses in HCI. After taking the course, I partially believe it is something that should be required, as it gives a very different view to CS than any of my other classes have. Outside of these topics, I believe the ND CSE education manages to cover most of the KAs. I also noticed some areas that ND seemed to cover more than the guidelines recommend. For instance, the guidelines mention that they don’t believe either Linear Algebra or Probability and Statistics need to be required courses, but ND requires both for CS majors.

Looking at the ABET requirements, I didn’t see much that ND doesn’t have covered. CS-specific, they require 1.33 years of computer science teaching and 1 year of science and mathematics. The first specific bullet point for CS is “1. Coverage of the fundamentals of algorithms, data structures, software design, concepts of programming languages and computer organization and  architecture.” I believe ND gives us a strong base in all of these topics. Through our college and major requirements, we cover the science and mathematics side as well.

I found the CS2013 Curriculum guidelines very interesting and surprisingly easy to follow. Honestly, I expected to read a bunch of nonsense paragraphs that had been written by a group of 75 year old men in a small room, reminiscing about what computer science used to be, but it was far from that. I especially liked the way the guidelines are organized and how the ACM divides requirements – what was previously just divided into Core topics and Elective topics, we now see the Core topics divided into Tier 1 and Tier 2 topics. This organization is because the ACM found that many institutions were still not able to cover all of the core topics. By dividing them into tiers, the hope is that institutions will cover all of the tier 1 topics, while sacrificing some tier 2 topics if need be (but still covering a minimum of 80% of tier 2).

I’m not sure if you need to go to college to be a good computer scientist or programmer. I’ve seen documentaries on homeless men who are given computers and who teach themselves how to code without ever sitting in a classroom. For the majority, though, I think the college education is necessary. Can you learn to code on your own? Yes. But computer science isn’t just coding. One of my biggest takeaway classes at ND was Programming Paradigms junior year. We learned a good chunk of new languages and had a few weeks of practice with them, but the point of the class was not to expose us to a few basic concepts and then to move on to the next language. The class got us to think outside of the languages and just look at the code structure itself. Every language is different, but the patterns that they abide by are what you have to recognize. Without an education, who knows if I ever would have picked up on those patterns that allow me to code much more easily and efficiently, as well as confidently, now.

Do I know everything I need to go about computer science? Absolutely not. But I don’t believe that is a requirement of heading into the real world and a career. A job can teach you the skills that you need to be successful there. When I start my job in August, I immediately head to orientation and developer school for two weeks. If the company believed my CS education taught me everything I needed to know, there would be no need for developer school. However, do I feel that Notre Dame has adequately prepared me for future careers? All that and more. I am so grateful to have been able to attend this university and to have been a part of the CS department. I feel like I have a strong background in CS, but additionally I have taken courses in math, science, philosophy, psychology, business, humanities, history, and even acting. This wide range of courses and requirements has helped me to round out my education as well as who I am as a person, and I know that I will be able to relate to many people and problems both in and out of the workforce because of that background.

 

Project 4

For project 4, Tim Pusateri and I did a podcast response to the movie Ex Machina, which I coincidentally watched last weekend before I knew it was a project option. My opinion of the movie is explained throughout the podcast, but to summarize, I thought it was fantastic. It was very thought provoking as well as emotional, a combination that doesn’t always work out well in movies. I can’t say for sure what the writers’ goals were when creating the film, but I would venture to say they included the general goal of informing the public about possible dangers of AI and different issues we could encounter in the future. In my opinion, this goal was fully accomplished.

 

Link to podcast: https://drive.google.com/open?id=0B0CUu4TIs84PUmVEOEttWkZkTkk

 

Censorship

 

For a long period of time, China was stuck in a digital and innovative lull in which it was years behind the modern technology found in the rest of the world. As it has moved to catch up with others, it has done so with restrictions. Censorship of the internet is at an all-time high, with new words being added to the watchlist every day. Through censorship, “the government hopes to foster an Internet society that doesn’t concern itself with politics or current affairs. It has been largely successful, but the firewall and its architects still infuriate a large part of China’s online population.”

The government uses many tools to go about censoring the internet and the information that can be found on it. For one, it creates bottlenecks. “Internet traffic to China is channeled through three computer centers — near Beijing, Shanghai and the southern city of Guangzhou.” Forcing the internet traffic to go through only these three cities causes uploads to be much slower, allowing the government to observe and moderate information much easier than if the internet were spread out as it is in the US. Along with the bottlenecks, packet sniffers for suspicious material are sent out. If something fishy is returned, the internet connection for that user can be blocked. Self-censorship of both companies and single users is also used; companies are told to cooperate and remove any suspicious material from their websites, or else their sites could be blocked completely and business could be lost. Many users censor themselves for fear of losing internet privileges. Propaganda can be found throughout the Chinese internet to scare users into behaving properly. “Authorities in the southern boomtown of Shenzhen created two cute cartoon cybercops — the male Jingjing and the female Chacha — that pop up on websites to remind Internet users they’re being watched. The Beijing Youth Daily newspaper quoted a security official admitting that the big-eyed cartoon duo were designed “to intimidate.””

In terms of ethics when it comes to companies in censored countries, I think there are a few options. One, companies can comply with the censorship laws. While I don’t think this is morally right, I believe the wrongdoing exists at the higher level – the government imposing the censorship, not the companies working within it. If companies are uncomfortable with the censorship requirements, they have every right to do what Google did the second time around and pull themselves out of the country. From a business standpoint, working within censorship guidelines is a treasure chest – in China alone, there are twice the amount of internet users than there are residents in the US. Expanding into that market would mean huge gains for a company. The moral obligation lies with each company. Does that company wholeheartedly believe in freedom of speech and expression? If so, it is their moral duty to try to uphold those ideals, and that means not complying with censorship. But if a company does not believe in those ideals, I believe it is their moral right to stand for what they believe in, even if that means standing for censorship. Personally, I side with the former.

Technology companies thrive off of new inventions and innovative software. That being said, I believe that technology companies and developers are operating ethically when they develop tools that circumvent censorship restrictions. I do not, however, believe it is ethical to distribute those tools. I am in full favor of freedom of speech and expression, but I believe it is up to each individual person to decide how far they want to take that. If a user is adamant about getting around firewalls, as were some of the users in the articles we read, there are many “ladders” they can use, they just have to go find them.

The concern about online censorship is something that varies from person to person. If it is to be overcome at any point, it will have to be an incredible group effort. Technology companies will have to hold firm in their belief that information should not be censored and should not conform to limitations. Like Google and Skype, companies will have to be willing to lose operating rights in a country to stand for what they believe. As long as there are companies willing to work within those limitations and believe they are for the better, such as WeChat, censorship will continue to thrive.

 

Automation

 

For as long as I can remember, automation has been slowly creeping into the working world. This trend did not just start in my lifetime – technology and automation has been influence the workforce since the 20th century and probably even before that. In my mind, the word “automation” brings up images of machines doing the work that humans used to do, such as the Kiva robots in Amazon warehouses. Recently, as the increase in technology has been booming, people around the world are considered the repercussions of tech and wondering what the job force will look like down the road.

At many Panera Bread stores now, when you walk in the door, you have two ordering options – you can wait in the conventional line and order at the counter from a person, or you can enter the ‘fast lane’ and order off of a computer. This fast lane has incentives as well – at the last store I visited, ordering in the fast lane meant getting a free cookie with your order. And while it was convenient to order in the fast lane, it was hard to not consider the consequences. When previously I would see two or three employees manning the counter and taking orders, recently I’ve only seen one. This trend could continue in other stores as well if the minimum wage rises. “About 70% of the respondents that pay less than less than $15 an hour said a higher minimum wage would push them toward automation.” Yes, some of that labor that would have been behind the counter is now shifted to creating the automated machines, but how much? Even if just one person is put out of work at each Panera Bread in the country, that would be a loss of 1,972 jobs, and it takes way less programmers to create the machines used.

On a massive scale, I think this could be detrimental. No, I don’t think the Luddites were completely correct, as they considered the amount of jobs to be fixed. That certainly isn’t the case. One article discussed the topic of creating more jobs as well. “[A]s labour is displaced, workers become more productive (if the same amount of output is being produced with fewer workers) and that rising productivity means higher wages and more economic demand. That rising demand can create new markets for new goods and services and ultimately new jobs. That is the compensation effect.” However, with support of the readings, I don’t believe it can come close to balancing out. Another article described productivity. “Machines might substitute for labor in the short term, but in the long term they complement labor and increase its productivity. Yes, new machines used in production will be more sophisticated and do more things than the old ones, but that shouldn’t be surprising; that’s what new machines have done throughout history.” But productivity doesn’t ensure jobs. Productivity could be increased because less people are in the workforce, so with the help of the automation, more work is getting done by less people. Some labor will be complemented, but overall we still have problems. As with the Panera example, many more people will be displaced than will fill new roles. It’s hard to say that with certainty because anything could happen, but what we know is that jobs will be replaced and essentially eliminated. However, I don’t believe the solution is to halt innovation or automation, but rather to find new ways to combat the workforce problems.

Universal basic income may be a possible solution. I was very intrigued by the Y-Combinator study suggestion. The results of a five year study of basic income should be very interesting. I don’t know that it is the best solution, but it sounds like it has the potential to be. I worry about laziness and lack of motivation, though. Many people would take the basic income and do everything it is that they love that also gives back to the community – volunteering at hospitals and animal shelters, spending time in community gardens, or working on art that goes into museums. But what about the section of the population that spends their days lounging on the couch and watching TV? A universal basic income sounds like it would drag most meaning out of their lives, but maybe that’s okay with them. I look forward to reading the results down the road.

Ultimately, I think automation, while scary, is a good thing for humanity. Innovation and ingenuity continue to bring new capabilities to life that we didn’t think were possible. In order to continue automating and innovating, we must also look toward the future and think of solutions to the replaced jobs. We may not know when the workplace shift will begin in full force, but I think it’s smart to start considering alternatives to work now. Many jobs require the creativity and emotion that machines lack, but for the less skilled jobs – like the cashiers at Panera – it seems like it could only be a matter of time.