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.

H1-B Visa Program

 

The H1-B Visa program is a very controversial topic. In recent years, the feelings toward it have gone from confusion to a mere contempt. Currently, the controversy stands around the way companies are using the visas. The goal of the H1-B program is to allow companies in the US to fill tech role voids with working from overseas. However, regulations are in place in order to ensure that the program is beneficial. Each year, Congress caps the number of overseas workers being granted H1-B visas “at 85,000, 20,000 of which are allotted to workers holding a master’s degree or higher.”

Arguments both for and against the visa program exist and are all over the web. Those supporting the visas speak openly about the fact that immigrants can be some of the brightest and best – both Google and Tesla were founded by immigrants, not to mention many other firms both large and small. In fact, a new study “shows that immigrants started more than half of the current crop of U.S.-based startups valued at $1 billion or more.” Even without considering huge companies that have been incredibly successful, studies show that immigrant workers help boost sales, therefore economy, therefore even create jobs in the end. The US is the leading technical and innovative country, and many believe that bringing in immigrant workers through the H1-B program is a way to hold on to that title. Bottom line, “America can never get enough brilliant innovators.”

The talk about the program is not all positive, however. For one, we currently have way more STEM field graduates than we do STEM field positions in the workforce. Why, then, would we bring in thousands of immigrant workers to take jobs that can be filled by other US STEM workers? In a recent dispute at Disney that is still being fought, waves of layoffs were scheduled. In the first wave, over 100 IT workers were laid off. They were offered severance packages and bonuses, but the ONLY way they would be able to claim both was if they were to stick around and train their replacements – younger, cheaper immigrant workers – before leaving. People were infuriated by this, and seven of the employees involved have taken the case to court. Many people believe that companies are hiring the workers because they are cheaper and don’t require taxes that US workers would. The arguments around this point come down to this: “The program’s purpose is to find and retain talent that’s lacking in the U.S. economy, not a cheap alternative to American workers.” Arguments that say the US is in high demand of the immigrant workers are fought with simple supply and demand logic. “Since the early 2000s, wages for programmers have virtually stalled. Yet, we know when there is demand for programmers in the tech industry, wages rise…STEM careers respond normally to the laws of supply and demand; if there truly was a dearth of programmers and engineers, we’d see wages rise.”

After reading the articles, I am not in favor of the H1-B visa program. I believe that the program has negative repercussions on both sides of it. Many employers, though not all, are taking advantage of the program and hiring workers that will be paid less and require less benefits. This is very harmful to US workers who could be in those positions, earning higher wages and adding to the economy. The program isn’t great for immigrant workers either. Workers are dependent on their employers petitioning for visas for them, essentially trapping them in that job, possibly with a stagnant salary, for an indefinite amount of time. None of these outcomes are good ones. I would like to point out, though, that I am not against immigrant workers. I do believe that America should strive to have the brightest and best citizens as well as workers, and many immigrant workers fit into those categories. I simply don’t believe that the H1-B visa program is the way to go about that. Rather, I believe some sort of program including green cards is the correct process. Yes, it would be more tedious and take longer, but I feel that the benefits greatly outweigh the time needed.

Competition due to foreign workers and outsourcing will always be a concern. This past summer, I returned to my previous internship with the expectation that I would be working in another technical position, only to find out that they had outsourced almost all of their technical work, so I understand competition. But I feel that there will always be competition in the workplace, regardless of where it comes from. Some will always be better than others. If we as a country can find some way to place limitations on hiring cheap labor, and only allow hirings based on the fact that the new hires are in fact better than the old, then I don’t think competition is a reason to hold back.

Project 3 Response

In my letter to the editor, I made my opinion on encryption pretty clear: “I stand firm with the belief that encryption should remain a safe way to protect data from everyone, including government or other forces that may want access.” The question of whether encryption is a fundamental right is a hard one to answer, because I don’t believe that encryption itself is a right. However, I do believe that privacy is a right that everyone should have. Rather than a right, I feel that encryption is a means to that right of privacy. Based on this, I think that US citizens should be allowed to lock the government out of their technology completely.

Encryption is of some importance to me personally, but the principle of it is much more important to me than the actual protection of my data – at least at this point in my life. I’m 22 years old, still in school, and I’m not sitting on a heap of money. I’m not too concerned about my medical information, and I don’t have a password on my phone as it is. However, I know there will come a point in my life where I will have bank accounts with (hopefully) large sums in them and identity information that I will want to keep to myself. For these reasons, I choose to support our right to privacy through encryption even when I don’t necessarily rely on it just yet. Socially, encryption doesn’t affect my life too much, but it definitely has an impact on my political and financial choices. Politically, I lean towards those with the same belief in encryption as myself and with plans to continue allowing US citizens to encrypt their data. It’s bothersome to me that many of our country’s government officials were in favor of Apple breaking the iPhone firmware. I believe that it’s partially due to their lack of technological knowledge, but no matter the reason, I worry about the future. On a smaller note concerning finances, I would absolutely lean toward a bank with higher encryption standards than one with lower standards when choosing where to open an account.

I’m not quite sure who will win in the struggle between national security and personal privacy. I hope that it will be personal privacy. Although the right to privacy is not explicitly stated in the constitution, I believe that our country was founded with the idea that citizens would have that right. The fourth amendment protects privacy against unreasonable searches – if national security wins the struggle, does that mean everyone loses their right to privacy? At what point does the monitoring extend beyond those who should undeniably be monitored and those that shouldn’t? If the government begins invading the privacy of people who haven’t given them reason to, even unintentionally, then we’ll have resorted to going against our constitution. I like to think I will fight for personal privacy, and I will do what I can to keep my information safe, but part of me wonders how long we will go without national security taking over. Part of the reason the Apple case has made so many headlines is because Apple decided to stand up to the FBI and refuse their request. Unless more people and companies begin to do the same, we could end up giving up part or all of our right to privacy.

 

 

 

Link to letter: https://hfredric.wordpress.com/2016/03/25/project-3-letter-to-the-editor/

It’s fun to stay at the… DMCA!

 

While reading the articles this week, I had a hard time distinguishing between them after the first few. It seemed that they were all saying the same thing – the DMCA is corrupted, out of date, and stifling – with an extra paragraph here and there. One article simply states “DMCA is a mess.” When it comes to reverse engineering, it seems that the DMCA is actually less harmful than in other cases, but in terms of circumvention, it sounds like just that – a mess. The DMCA generally prohibits circumvention of DRM schemes for any reason. This means any use other than the producer’s intended use is one that goes against copyright law and could be punishable by fine or even prison time. Every three years, however, Congress meets and hears arguments from users and producers alike to edit the list of what is considered “fair use.” This sends people into a never ending battle, one that often turns on itself. One article recalled one hearing in which e-books were allowed to be altered for those with visual impairments, and then three years, that privilege was overturned by the same group that fought for it in the first place.

In many cases, I feel that it is ethical for companies to use DRM schemes to protect their work, but I find it hard to make an overarching statement like that. In terms of copying DVD’s, I feel that DRM is perfectly acceptable – if a user wants more than one copy of a DVD, he or she should have to purchase more than one copy. But when it comes to downloading DVD’s to local files, I think that should be permitted. If a user purchases a DVD and wants to copy it to his/her computer so that he can watch it on the go without having to bring the physical DVD, I believe he should legally be able to. The user purchased that DVD and the content on it. Making unlawful copies is one thing, but simply making it more convenient to enjoy the content seems like it should be allowed. Same goes for removing DRM from music bought on iTunes. If you pay for a song, it should then become yours to move between your devices – you should not have to buy it multiple times to save it on multiple devices.

Reverse engineering laws seem to be slightly less clear-cut. In many of the court cases in the articles, cases would initially be ruled as unlawful, but then that ruling would be turned over and described as fair use. One article describes the boundaries of reverse engineering in a pretty simple way. If you are trying to create a piece of code that will function alongside some other software, “have the reverse engineering team that studies the code develop a written manual that describes the necessary interfaces in purely functional terms, then engage separate developers to build original code based on the manual and without access to the copyrighted software.” Reverse engineering in order to create useful products that work alongside other products, not that will overtake those products, sounds perfectly lawful to me. Circumvention seems lawful in some cases, but not in all. As I said before, if a user circumvents DRM on a DVD to make unlawful copies of it, I don’t believe that should be permitted. But if a user owns a tractor or a phone, it would make sense that they should be able to “unlock” the software. I also feel that museums or galleries should be able to circumvent DRM for the purpose of preserving works for the future. If everything is locked away tightly and curators aren’t able to legally store works, we may lose precious information. The DMCA is “basically putting cultural repositories in positions where they either have to interpret very murky scenarios or they have to decide that they are going to do something that they realize is forbidden and hope that nobody’s going to notice.” Rather than forcing curators to hope nobody notices, permissions should be granted to them so that we can ensure that so many incredible creations don’t die with their creators.

Overall, I agree with the many writers of most of the articles I read. The DMCA was probably a good force at one time, but it continues to exist in a world where it is completely outdated. The solution of updating exceptions every three years is tedious and unnecessary, and instead, the current DMCA should be thrown out and rewritten. Rather than meeting every three years to find exceptions, maybe Congress should meet every three years to rewrite the DMCA in order to ensure that it keeps up with time.

Patents

Prior to reading these articles, my understanding of patents was that they were used to protect something new that somebody creates. If somebody invented a new type of chair, one that folds up to an incredibly small size and you can take wherever, they might want to patent that so that Company A can’t just look at the chair, recreate it, and sell it for much less because they’re a larger company. My opinion of patents was that they were helpful and necessary to preserve innovation without allowing companies to stomp each other out. Ethically, patents seemed right. Take homework, for instance. If a child is working on their homework, they are taught to do their own work. If another child looks at that homework, writes down all of the answers, and turns his sheet in, he’s taking credit for the work as if it were his own. This is not fair to the first child, who put in the work and the effort to complete the assignment in the first place. To me, patents protected against just that – claiming someone else’s work as your own and benefitting from it. Economically, the patent system could help small businesses with new inventions thrive without being threatened by large companies that could put them out of business if the product were in the open. As the This American Life article mentioned, patents also allow products and inventions to be put out into the world without hesitations, such as Eli Whitney’s cotton gin. “If there were no such thing as a patent, Eli Whitney would have to keep his invention hidden in a dark room with no windows. Nobody would steal the idea, and then people would bring him their cotton, and he’d spit it out for them all processed on the other side. Instead of that, we had thousands of cotton gins everywhere. Patents make it safe to share and to innovate.”

After reading the articles, however, I’m not sure where I stand on patents. I do believe that patents served that purpose in the past and that they were absolutely necessary, and I do still believe that they should exist. As I mentioned before, I think patents serve a huge purpose when it comes to small business tangible inventions. In this case, I think that patents promote innovation. Like Eli Whitney, if a person or small company has something great that they want to share, they’ll be much more likely to do so if that something great is protected.

In terms of software patents, though, the line is fuzzy. Because software is so easy to create and mold, there isn’t much of a limit to what you can create. In the same token, it’s very easy for two people or companies to have the same idea and to create the same thing at the same time without ever having interacted. If the first company acquires a patent, does that mean the second company should have to pay fees to the first for inventing a similar system? I don’t believe so.If someone else wants to spend the hours and hours that you did to create the same program, I feel that should be allowed. Especially in today’s world, where the patent system seems incredibly flawed with the rise of patent troll cases, I’m not sure that software patents should be granted. The numbers are shocking. One article states that a “full 90 percent of tech patent cases are filed by patent trolls. That’s compared to 85 percent in the same period last year and 82.5 percent in the second half of 2014.” If this is the case, why file for tech patents at all? In his article, Elon Musk says “after Zip2, when I realized that receiving a patent really just meant that you bought a lottery ticket to a lawsuit, I avoided them whenever possible.” If the CEO of one of the most innovative companies in the world is avoiding patents, you know the system is flawed at least minimally. Going forward, I’m not sure what a solution would be, but sticking with the current system – at least in terms of software – will only continue to get worse.