Computer Science
What it is,
What it's not,
and
How it is changing the world
Notes for CSC 100 - The Beauty and Joy of Computing
The University of North Carolina at Greensboro
Things you should be doing…
Before Friday:
● Watch pair programming video (link on class schedule)
● Pre-lab work for Lab 2
On Friday:
● Check lab partner info on door to lab!
Before Monday:
● Finish reading Blown to Bits Chapter 1, and submit Reading
Reflection (before Mon. class) - can contribute to online discussion
at any point before deadline (Wed., Sept. 6)
Readings for Today
Article 1: What is Computer Science? ...
Question 1: What is an abstraction, and why is it important?
Question 2: How does this article line up with what you think/thought CS is?
Article 2: A Commencement Speech for Graduating 2013 CS Majors
Comment 1: You spend a lot of your life on your career - you better like it!
Comment 2: “Continuing Professional Development” is a part of every field
Question: Did anything strike you as particularly interesting/relevant in this
article?
Question to Start the Day...
What year did people start talking about
computers?
New York Times announces first Electronic
Computer (ENIAC) in Feb 1946
Why does this say
"Electronic Computer"
rather than just
"Computer"?
Before Electronic Computers,
"Computers" were people!
NY Times "Want Ad" from 1892:
Have you seen this???
Fun fact: The two universities with the
largest number of graduates in NASA’s
human computer program were Hampton
University* and … UNCG**
* then called “Hampton Institute”
** then called “Woman’s College of UNC”
From a book in 1855
(but reporting on writings from 1727)
His computer was his servant.
Computing things was a
routine task, working under the
direction of the person who did
the exalted problem-solving.
No different from today, except
such tasks are done by
machines rather than servants
- the thinkers that direct the
computations are still doing
the creative and interesting
work.
One of the earliest recorded English-language
uses of "Computer" - from 1692
Definition from the Current Oxford
English Dictionary
computer, n.
1. A person who makes calculations or computations; a calculator, a reckoner;
spec. a person employed to make calculations in an observatory, in surveying,
etc. Now chiefly hist.
2. A device or machine for performing or facilitating calculation.
a. An electronic device (or system of devices) which is used to store,
manipulate, and communicate information, perform complex calculations,
or control or regulate other devices or machines, and is capable of
receiving information (data) and of processing it in accordance with
variable procedural instructions (programs or software); esp. a small,
self-contained one for individual use in the home or workplace, used esp.
for handling text, images, music, and video, accessing and using the
Internet, communicating with other people (e.g., by means of email), and
playing games.
b. by (also on) computer: by means of a computer or computers.
What's the Point?
Broaden your perspective!!
A computer is something that computes.
It can be:
● An electronic device
● A mechanical machine
● A person
Babbage’s “Difference Engine”
(designed in the early 1800’s).
Next Question....
What is science?
A definition from dictionary.com
Science
noun
1. a branch of knowledge or study dealing with a body of facts or truths
systematically arranged and showing the operation of general laws: the
mathematical sciences.
2. systematic knowledge of the physical or material world gained through
observation and experimentation.
3. any of the branches of natural or physical science.
4. systematized knowledge in general.
5. knowledge, as of facts or principles; knowledge gained by systematic
study.
Question: Which of these apply to computer science?
Applied to Computers (of any kind)
We care about "body of facts or truths" and "general laws"
● Core focus is not on "studying" computers
○ However: The electronic computer is our main tool, so we learn how to
use them very effectively!
● Computer science is what makes computers useful!
● Computer science truths are independent of technology
○ Held 2000 years ago and will hold 2000 years from now
○ Why study computer technology when you can study computer
science?
Computer science is about the fundamental truths and general laws
that govern computing, whether the computer is electronic, mechanical,
or human.
Sample computational problem
How do we find the greatest common divisor (GCD) of 135 and 210?
Euclid figured out how to do this efficiently ... around 300 BC!
Euclid was solving a computer science problem 2400 years ago!!!
Differences:
His computer was the human mind - dealing with maybe dozens of
operations in an involved calculation.
He didn't have a clean way to express his algorithm.
He didn't have the background to understand "efficient computation" in
the way we do today (Euclid's algorithm first analyzed in 1844).
Fast Forward to Today...
We still use Euclid's algorithm in cryptographic operations!
Example: What is the GCD of
153103965093671035918341035160983 and
9813587135019680294860958134060915?
Those are 33 and 34 digit numbers. In cryptography we
routinely work with 600 digit numbers (and longer!).
Question: If your computer does a billion computations a second,
how long would it take to find the GCD of these numbers doing
"trial division" (testing all possible divisors by division)?
Some core computer science questions
Science is about asking questions - what kind of questions do we ask?
● Given some function, can we compute it? [Computability Theory]
● What is the most efficient way to compute this function?
[Computational Complexity]
● How do we express how to compute something clearly and
unambiguously? [Programming Languages]
● How can we organize a large amount of information so it can be used
in our computations? [Data structures and Databases]
● How can we make machines/devices that can compute things quickly?
[Computer Architecture]
● How can we coordinate multiple computations that might require the
same resources [Operating Systems]
The Electronic Computer is a Tool
Tools often enhance human capabilities
enhances... movement!
enhances... lifting!
More tools...
Tools often enhance human capabilities
enhances... vision!
"Computer science is no more about computers than astronomy is about telescopes."
- Edsger Dijkstra
And the electronic computer?
Electronic Computer as a tool...
Tools often enhance human capabilities
enhances... information processing!
or...
... analysis
... thinking
"Thought enhancement" enables many things
that were never possible before!
"Information tool" opens many possibilities
Which of these innovations
involved computer scientists?
Consider “Grand Challenges”
Selected by the National Academy of Engineering
These are “game changers” for the future - how many can
computing impact?
1. Make solar energy economical 8. Engineer better medicines
2. Provide energy from fusion 9. Reverse-engineer the brain
3. Develop carbon sequestration 10. Prevent nuclear terror
methods 11. Secure cyberspace
4. Manage the nitrogen cycle 12. Enhance virtual reality
5. Provide access to clean water 13. Advance personalized learning
6. Restore and improve urban 14. Engineer the tools of scientific
infrastructure discovery
7. Advance health informatics
No End in Sight...
What does the future hold?
I'm not bold enough to predict the future, but leave you with this:
"The best way to predict the future is to invent it."
-- Alan Kay, 1971
You can be part of creating the future!