0% found this document useful (0 votes)
4 views

Computer Programming - An Overview (1)

The document provides an overview of computer programming, emphasizing its importance and the challenges faced when communicating with machines. It discusses the strangeness of using programming languages, specifically Python, to instruct computers, and highlights the potential for unintended consequences in complex programs. Additionally, it addresses the ethical implications of programming in high-stakes environments where mismatches between intended and actual behavior can lead to harmful outcomes.

Uploaded by

marlonsimunovic
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Computer Programming - An Overview (1)

The document provides an overview of computer programming, emphasizing its importance and the challenges faced when communicating with machines. It discusses the strangeness of using programming languages, specifically Python, to instruct computers, and highlights the potential for unintended consequences in complex programs. Additionally, it addresses the ethical implications of programming in high-stakes environments where mismatches between intended and actual behavior can lead to harmful outcomes.

Uploaded by

marlonsimunovic
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 2

Computer programming: an overview

Introduction and challenges


During the first two-thirds of this course, you will be doing computer
programming. A computer program is a set of instructions written in a
programming language that a computer will follow. Each instruction in the
program tells the computer to carry out a single activity, such as to add two values
that are stored in memory. A programming language is a language that the
computer can directly translate into hardware to carry out calculative operations.
Python is the name of the computer language that we will use this term for our
programming work. Computer programming is the activity of writing computer
programs. The instructions in a computer program (“program” for short) will
specify what the computer will do, step by step. You will in essence be talking to
the computer. You will in fact be commanding the computer, which will follow your
instructions precisely. Although you have a choice about which instructions to give
to the computer, or whether to even do any of the homework, the computer will
have no choice but to carry out any instructions that you give it. In other words,
you have free will and autonomy, but the computer must obey your commands.
Computer programming is not the only thing that computer scientists are called
upon to do, but it is arguably the most common and important thing that they do.
In addition, learning a bit about computer programming will help in making sense
of an increasingly computerized world for those who have no interest in taking
additional courses (let alone working professionally) in computer science.
There are two key challenges that we will confront in computer programming. The
first concerns the strangeness of using language to talk to a machine. The reason
that this is so strange is that the only other things that we human beings are
accustomed to speaking and listening to are other human beings. And other human
beings have free will, have culture, have history, have their own viewpoint on
themselves, other people, and the entire world. We are so accustomed to talking
with other human beings that we do not realize how accustomed we are to talking
with other human beings. It seems to come naturally to us. For example, when we
talk to a friend, we just turn to them and start talking, and we expect that they will
understand us, or if they don’t that they’ll tell us. But when we start talking to
machines, particularly when we first learn to do computer programming, we
generally do not realize how different computers are than human beings. The most
important thing that makes computers different from people is that computers are
a particular kind of formal system. A formal system is completely specified by
rules, which makes them special yet at the same time strange for us humans. One
way to think of a formal system is that they are like many of the familiar games
that people play, such as chess or checkers. Step by step, we will learn more about
working with the kind of formal system that a computer is during the first two-
thirds of the course. We will go slowly but deeply, to avoid anyone getting
overwhelmed, and so that you can really understand what it is we are doing in
dealing with rule-specified machines.
The second challenge we confront in computer programming is that, though we
might intend for our programs to specify instructions with a particular purpose in
mind, the effect that the computer has in the world can sometimes surprise us. For

This document and its content are copyright of Josh Tenenberg - © Josh Tenenberg
2022. All rights reserved. Any redistribution or reproduction of part or all of the
contents in any form is prohibited.
the kinds of programs that we will be writing in this course this is less of an issue.
But for complex programs that operate in the real world, such as programs that
recommend to judges sentencing terms for people convicted of crimes, or
programs that run fully automated (self-driving) cars, or even ordinary Internet
search engines like Google, the effects can sometimes lead to unethical, unjust, or
harmful outcomes. Why does this happen? The short answer is that, since
computer programs slavishly follow their instructions, the computer programmer
has to specify absolutely every anticipated possible world event that should be
taken into consideration by the computer in executing its program, and how the
computer should respond to these events. Alternatively, with Machine Learning
programs, the computer will have to try to learn about the world from its inputs. In
practice, whether explicitly programmed by a person or using Machine Learning,
there will inevitably be some kind of mismatch between the intended behavior of
the computer system and its actual behavior. Which is frightening in a world in
which such high-risk things as driving, operating nuclear powerplants, running
missile detection systems, and even teaching are increasingly coming under the
control of computers. We will learn more about these mismatches, the anticipated
and actual problems that they are presenting, and how human beings are
responding to this new world of computer-controlled existence to try to mitigate
the harms.

This document and its content are copyright of Josh Tenenberg - © Josh Tenenberg
2022. All rights reserved. Any redistribution or reproduction of part or all of the
contents in any form is prohibited.

You might also like