Computer Science 1000 Introduction

advertisement
Computer Science 1000
Introduction

What is Computer Science?

the study of computers?
not quite
 rather, computers provide a tool for which to
carry out (some) computer science and its
applications


"Computer Science is no more about
computers than astronomy is about
telescopes." – E. Dijkstra*
* Also attributed to Michael Fellows

What is Computer Science?

programming?
better, but still not quite
 there is much more to computer
science than simply programming
 many in the computer science field do
not program



theorists
interaction researchers

What is Computer Science?

difficult to state precisely

the scientific and practical approach to
computation and its applications
– Wikipedia

in other words, the critical component is the
computation, not the computer

What is Computer Science?

much of the discipline does not involve
computers at all

Ex #1: computational geometry


study of algorithms (processes) for solving
geometric problems
often never implemented – sufficient to show that it
can be computed within a certain time bound

What is Computer Science?

much of the discipline does not involve
computers at all

Ex #2: quantum computing



research into designing programs to run on
quantum machines
many examples exist (e.g. Deutsch-Jozsa)
no practical quantum computers exist*
* http://www.sciencedaily.com/releases/2012/06/120607154138.htm

Computer Science
often divided into two categories:
 theoretical computer science

the "theory" of computation
 often considers more abstract concepts


applied computer science
the application of computers and computational
theory
 deals in the tangible


Theoretical Computer Science

example: convex hull problem

given a set of points, find a set of points that "contains" all
of the other points
goal of theorists is to find efficient methods for doing this

applications include GIS, games (collision detection), etc

For a more rigorous definition, see: http://mathworld.wolfram.com/ConvexHull.html

Applied Computer Science

example: chess


design a computer program that can play
competitive chess
interesting history:

Herbert Simon predicted that a computer
would be chess' world champion in less than
a decade


that was 1957
so when did it happen?

Applied Computer Science

Answer: 1997!
vs
"Deep Blue" (IBM)

Garry Kasparov
http://www.youtube.com/watch?v=NJarxpYyoFI

The Many Faces of Computer Science
computer science encompasses a broad
range of topics
 many of these topics are the subject of
intense research
 we consider a few examples here


Topic #1: Programming (of course)
The science (art) of constructing a program
to achieve a specific goal
 That is, for every program you have on your
PC/laptop/phone, a programmer (team of
programmers) had to design and implement
that program


Computer Program


A sequence of instructions designed to perform a
specific task, or collection of tasks
Eg. Microsoft Word






Monitors keyboard input, displays it on the screen
Formats input for more readable presentation
Spellchecks your work
Prints your work
Saves your work
….

Programming

How do you make a computer into a word
processor/internet browser/gaming
console?
You give it step-by-step instructions
 Each instruction is performed by the processor


Your computer is like a good assistant,
willing to perform any task that you ask

However, you must learn to speak its language

Example

Suppose we wish to perform the following
calculation:
(17 + 29) x 56

how do we program our computer to make
this calculation?

Machine Code

the language of your processor

each line represents an instruction to be executed
0000100100010001
0000101000011101
0001001100101000
0000110000111000
0010010101110000

place value "17" in memory location 1
place value "29" in memory location 2
add values in loc. 1 and 2, place in loc. 3
place value "56" in memory location 4
multiply values in loc. 3 and 4, place in loc. 5
the solution to the problem is in memory location 5

High-Level Programming Language
e.g. C++, Java, Python
 offers a more natural language for
programming
 commands are much less tightly coupled to
the instructions of the processor

cout << (17 + 29) * 56;

HL Code to Machine Code
processor does not understand high-level
code
 a separate program called a compiler
translates the code to machine code

Compiler
(17+29) * 56;
0000100100010001
0000101000011101
0001001100101000
0000110000111000
0010010101110000

Topic #2: Artificial Intelligence

a branch of computer science dealing with the
simulation of intelligent behavior in computer
- Merriam Webster

examples






game-playing agents (Deep Blue)
robotic controllers (RoboCup)
automated medical diagnosis
pattern recognition
simulating human behaviour (Turing Test)
etc ...

Topic #3: Computer Networking

Networking allows information from one
computer to be transferred to another
computer

This simple act has given us:

The World Wide Web






Facebook
Twitter
Instagram
Wikipedia
P2P File Sharing
Connectivity


Skype
Facetime
The History of the Internet

Today:

Internet has over 2.4 billion users




78% of North Americans use internet
people of all ages
Internet has over 900 million hosts
Challenges faced:




addressing (DNS)
scalability
security
bandwidth

Many other topics:
hardware and architecture
 database programming
 graphics and games
 human-computer interaction
 privacy and security


What makes Computer Science unique?

it is young



first general purpose computer: 1946 (ENIAC)
phrase "computer science" coined: late 50's
consider your other university science topics:



mathematics:
chemistry:
economics:
~5000 years*
~3000 years*
~240 years*

What makes Computer Science unique?

it is dynamic
My first computer (1997)
My current computer (2013)
• 200 MHz processor (single core)
• 32 MB RAM
• 3.1 GB HD
• 15 inch CRT monitor
• 28.8K bps (time to download a
song: 19 minutes)
• $4000
• 3.4 GHz processor (4 cores)
• 8 GB RAM
• 2 TB HD
• 3 flat screen monitors
• high-speed internet (time to
download a song: 5-10 seconds)
• $800

What makes Computer Science unique?


it is accessible
consider what it takes to be an experimental
physicist?



expensive equipment
a laboratory
what about a computer programmer?

a computer

many programming tools are freely available
Download