The Importance of Teaching Computer Science Broadly

This page emerged as a result of my teaching CSC104 and the development of a curriculum relying on these notions. It is based in large part on the curriculum used at Georgia Tech which captured some of these ideas. It takes an essay format, feel free to contact me about it.

Computer science education is misunderstood; it is imperative to clearly present its value. A workaround to this problem is the requirement that every university student take a computer science half course (as done at Georgia Tech). I'm interested in asking students to take a computer science course, asking the general public to take advantage of amazing resources, and I'm interested in having departmental administrators and curriculum committees use this resource to better understand what having a course like CSC104 as a requirement would mean for their programs.

The arguments for computer science education fall into two main categories: Learning essential tools for the internet age, and learning to understand the world by understanding media. The former category is not about learning specific programs; one should not to decide the value of a course based a programming language. The main skill is learning how to think about process. Computer Science at its core is largely about the formalization of process. This way of thinking has caused massive changes in areas like operations research, economics, and even mathematics: the discipline from which computer science emerged. I'm hoping to help it also shape more thinking about education, and other disciplines where it has untapped potential. The key insight is that learning computer science will teach you how to present thoughts, ideas or instructions using structure as a tool to avoid ambiguity. This sounds simple, but it's valuable, try and remember the last time you dealt with ambiguous instructions and how much time you wasted because of that lack of clarity. Computer science helps one learn to organize thoughts to avoid ambiguity; this also helps recognize ambiguities to clarify them. For many, that saved time and gain in communication skills alone is worth taking a university half course, but it remains to address the value of media.

Computer science today is about learning to understand the media we use every day. This idea for computer science has been around since at least the early 1960's but is most accesible through the well known and highly regarded McLuhan statement "The medium is the message." Today, in the era of web 2.0, you are quite likely to think of social media, texting, and e-mail as common media you use frequently. How well do you understand how these communications work? Are you ever intimidated by them? Understanding media is empowering; it enables one to find comfort in communications: Knowing how something works enables both better communication and better choice of how to communicate. For instance, knowing what makes up a picture, a sound file or a video, provides comfort with sharing them. Understanding how such files can be manipulated or what be embedded in them changes how one reacts, for the better.

An important example is the case of digital editing of images in print media to present a certain unrealistic, and flawed notion of beauty. In recent examples, editing has become so extreme that even paid models are complaining about the presentation of their bodies. It's one thing to know that images are heavily edited, another to actually write code that edits an image, understand the underlying encoding and know what can be done to any image at all through this learning. In this case, the media is a digital encoding, even though it's natural to think of it as print because of how it appears. This topic can be difficult for many, and there is no requirement in any course I teach to work on specific images. However, editing any images at all, and understanding the basic encoding behind images leads to accepting that all images can have this level of editing, making one question where the image comes from and what the motives of that source are.

Another important example is understanding social networks. Knowing what form to communicate an idea in, and which media to use comes from understanding those media and their effects on other people. Which methods of communicating on your social network are most tied to you? Which are associated with your friends accounts? What level of privacy and security do each of these posts provide? When should you take a discussion to a more private media? These questions are all connected to understanding social media, the structure and organization, and the current level of law on social media. Understanding before you post that you should be thinking about questions like "Will my employer be able to view this?" and "Is this a profile that my employer or potential employer will be able to legally request viewing?", is something that comes from this understanding. While some of this is far from classical computer science, entire courses in my department are dedicated to computers and the law. I am planning on introducing a single lecture approach to this topic as part of understanding media, given that I teach a course where most students expect to take exactly one computer science course and I think most individuals benefit greatly from this information.

Understanding can also shape activism and change. In a lot of cases, legal rulings appear to misunderstand technology or apply inconsistent levels of protection. For example, protection on facebook profiles is far weaker than on e-mail accounts, or instant messanger accounts. This is despite the fact that facebook offers as a subset of the services an integrated tool that is basically a combination of these two communications media. My understanding of this ruling is that the main issue is that publications even to only facebook "friends" are public communications associated with your name and hence your employer so under some conditions they are allowed to see your profile. Unfortunately, seeing your profile also includes seeing your built in messenger/"e-mail" exchanges. My hope is that digital literacy will provide a tool to encourage the courts to limit access to profiles to the specific activities on those profiles that the legal requirement is based on. I also think that if the future activists learn about all these complications of social media and how their inherent nature affects privacy they'll recognize that social media can be used as a toolto form more private mailing lists, and understand the importance of doing the extra work to protect their membership. This is very far from computer science, but it's not a common offering for many programs that firmly believe in grassroots offering and it's something that can be provided in a CS course for the arts subject to the demand for it. It's certainly something I'd be willing to discuss with a student in office hours, anytime it doesn't make it into the course.

My hope is that reading this has convinced you of the need for computer science education. I will be linking options here shortly to provide easier access to various methods of achieving this goal.