Getting Started

Course trajectory

Introduction to Computer Science

Computers have clearly become an indispensable part of modern life. We use computers to find information on the Web, to listen to music, to write papers, to pay our bills, to communicate with friends, and now to take classes on Zoom!

Computers are more than just our laptops and desktops, though. A smartphone or a smart TV is a computer in different packaging. We tend to use these types of computers primarily for communication, entertainment, and finding information, while laptops and desktops are also used extensively for creating and editing documents, like Word files or Photoshop documents.

Computers are increasingly used in Internet of Things (IoT) devices, such as thermostats that can be adjusted even when you are not home, and security cameras that allow you to monitor your home while you are away. Computers are used in many infrastructure projects, such as E-Z Pass to collect highway tolls, smart electric grids, and smart traffic lights. Computers are used extensively in medical devices, from Fitbit to much more advanced medical diagnostic systems. Robots are used to operate in dangerous environments such as after a nuclear accident, to work in warehouses, and to assist in surgery.

Computers are also used to assist in decision making. Who should be approved for a loan? Who should receive the next kidney transplant? Who should be approved for parole?

In summary, computers are used everywhere and to do practically everything. It is important to remember that computers are not flawless and developing software that works correctly in these many applications is extremely important. In this course, we will just begin to understand what it takes to program a computer to do simple tasks, but this is the foundation on which all of these advanced applications exist, so it is a good place to start!

What is Computer Science?

Computer science is a broad field concerned with understanding how computers work, how to program computers effectively, and understanding the theoretical limitations of computing. At the low end, computer science deals with hardware, such as the chips and wires that make up a computer and allow computers to communicate with each other.

At the high end, computer science includes machine learning that allows a computer to learn a concept from examples. These techniques are used to support face recognition and speech understanding to name just two common applications of this technology.

Computer science also includes a theoretical component that allows us to reason about the correctness of algorithms, to prove properties concerning the efficiency of algorithms, and to understand the limitations of what is practically computable.

What is programming?

What makes computers interesting is their software. While some may get excited about the speed of their CPUs or the size of their monitors, the truly interesting part of a computer is the software that it runs. It is software that allows a computer (a machine after all!) to do the wide range of applications we are accustomed to. Programming is the act of creating software, and it is the activity that allows us to turn creative ideas into functional pieces of software.

Now, you might think that computers are “smart”. After all, we have gotten accustomed to the terms smartphone, smart TV, smart watch, smart grid, etc. Don’t be fooled! Computers are not very smart at all. What they are good at is following instructions precisely and extremely quickly, and remembering details exactly. If you have an innovative idea for software, great! All you need to do is write the very precise instructions for that innovation, and the computer will take it from there. The smartness and creativity is inside the programmers. So, let’s get started learning how that works!