Date post: | 14-Jan-2016 |
Category: |
Documents |
Upload: | nicholas-cummings |
View: | 214 times |
Download: | 0 times |
EE1301: Intro. to Computer Science
• Browsing the “World Wide Web” with Microsoft Explorer™• File management Microsoft XP Operating System™• Writing documents with Microsoft Word™• Preparing presentations with Microsoft Powerpoint™• Operating on spreadsheets with Microsoft Excel™• Reading and composing electronic mail, “e-mail,” with
Microsoft Outlook™
The students will learn the fundamentals of computer science including:
CIS 106: Intro. to Computer Scienceat Pasadena City College
EE1301: Intro. to Computer Science
EE1301: Intro. to Computer Science
Computer Systems
Computer Engineering
EE1301: Intro. to Computing Systems
The course will introduce the fundamental concepts of computing systems from the machine level to high-level language programming, including:
• transistors and logic circuits• binary arithmetic and data representation• memory and pointer addressing• data types and structures• Assembly Language• C programming
• Quantum Physics (what’s an atom?)
• Material Science (why does doped silicon behave as a semiconductor?)
• Device Physics (how does a transistor work?)
• Circuits (how do we put transistors together to get simple logic functions?)
• Logic Design (how do we get complicated logic functions from simpler ones?)
• Computer Architecture (how do we build a computer from logic functions?)
• Assembly Programming (how do we specify tasks in the form of instructions for the computer?)
• High-Level Programming (how do we specify tasks in a form that can be translated into instructions for the computer?)
Vertical Slice of Computer Engineering
• Quantum Physics (what’s an atom?)
• Material Science (why does doped silicon behave as a semiconductor?)
• Device Physics (how does a transistor work?)
• Circuits (how do we put transistors together to get simple logic functions?)
• Logic Design (how do we get complicated logic functions from simpler ones?)
• Computer Architecture (how do we build a computer from logic functions?)
• Assembly Programming (how do we specify tasks in the form of instructions for the computer?)
• High-Level Programming (how do we specify tasks in a form that can be translated into instructions for the computer?)
EE1301
CS 1901 & CS1902
Vertical Slice of Computer Engineering
No Hamsters, No Magic
Any sufficiently advanced technology is indistinguishable from magic.
– Arthur C. Clarke
Examples of Computing Systems
Are all these systems “equivalent”?
Examples of Computing Systems
Are all these systems “ Turing Equivalent”?
Concepts vs. Jargon
“Now this end is called the thagomizer, after the late Thag Simmons.”
Turing Machine
Turing Equivalence
“It can be shown that a single special machine of that type can be made to do the work of all. It could in fact be made to work as a model of any other machine. The special machine may be called the universal machine.”
– Alan Turing, 1947
“The problems solvable by a universal Turing machine are exactly those problems solvable by an algorithm or an effective method of computation, for any reasonable definition of those terms. .”
– Church-Turing Thesis
Turing Universal Systems
Machine that can execute any C program.
main(){ for(;;){
printf ("Hello World!\n");}
}
Turing Universal Systems
Machine that can execute any Assembly program.
Turing Universal Systems
clock
inputs
),,( 1 nxxX
outputs
),,( 1 mzzZ
memoryelements
),,( 1 kyyY
combinationalcircuit
Synchronous Digital System
Building Digital Circuits
Intel 4004(1971)
Intel “Nehalem”(2008)
~2000 gates
~2 billion gates
1 transistor (1960’s) 2000 transistors(Intel 4004, 1971)
800 million transistors(Intel Penryn, 2007)
Boxes inside Boxes [inside boxes…]
From Chips to Computers
IBM’s Blue Gene: 64,000 Processors
The Computational Landscape
• Abutting true physical limits.
• Cost and complexity are starting to overwhelm.
“There are known ‘knowns’; and there are unknown ‘unknowns’; but today I’ll speak of the known ‘unknowns’.”
– Donald Rumsfeld, 2002
Semiconductors:exponentially smaller, faster, cheaper – forever?
Integrated Circuits
0
1
0
1
0
1
0
1
circuit
1
0
What do integrated circuits do? • accept zeros and ones as inputs;• produce zeros and ones as outputs.
inputs outputs
Integrated Circuits
0
1
0
1
0
1
0
1
circuit
1
0
Why do we want this? • zeros and ones represent information;• circuit performs computation.
inputs outputs
Integrated Circuits
0
1
0
1
0
1
0
1
circuit
1
0
How do we build (design) such circuits? • hierarchically, from components.
inputs outputs
All (or mostly) About “Bits”
0 1
zero one
false true
off on
open closed
not asserted asserted
not set set… …
Truth Tables
Example
8 rows3 variables
4 rows2 variables
2m rowsm variables
264 rows64 variables
1 1 1 1
0000111
0011001
0101010
0001010
x1 x2 x3 f
One made-up fact…
[well, an abstraction really…]
A Logic Gate
1x
2x
dx
di
ix
,,1allfor
{0,1}
{0,1}{0,1}: dg
),,( 1 dxxg
“AND” gate
0001
Common Gate:
1x
2x
g0011
0101
1x 2x g
Logic Gates
“OR” gate
0011
0101
0111
Common Gate:
1x
2x
g
1x 2x g
Logic Gates
“NAND” gate
0011
0101
1110
Common Gate:
1x 2x g
Logic Gates
1x
2x
g
“NOR” gate
0011
0101
1000
Common Gate:
1x 2x g
Logic Gates
1x
2x
g
“XOR” gate
0011
0101
0110
Common Gate:
1x
2x
g
1x 2x g
Logic Gates
Linear Threshold Gates
1x
2x
nx
1w
2w
nw
0w... ),,( 1 nxxf x
ni
ix
,,1allfor
{0,1}
0if1
0if0
2210
2210
nn
nn
xwxwwxw
xwxwwxwf
w
ni
iw
,,0allfor
R
Linear Threshold Gates
Useful Model?
),,( 11 mxxf a
),,( 12 mxxf a
),,( 1 mn xxf a
inputs outputs
Digital Circuit
1x
2x
mx
circuit
),,( 1 mn xxf a
),,( 11 mxxf a
),,( 12 mxxf a),,( 1 mxxf a
inputs outputs
1x
2x
mx
circuit gate
Digital Circuit
1x
2x
3x
4x
5x
6x
NAND
OR
ANDAND
AND
NOR
1
0
0
1
1
1
1
0
1
0
0
1
Digital Circuit
Data Structures
Example
Truth Tables
1 1 1 1
0000111
0011001
0101010
0001010
x1 x2 x3 f
x1
x2
x3
f
Sequential Circuits
clock
synchronous, finite number of states
inputs
),,( 1 nxxX
outputs
),,( 1 mzzZ
memoryelements
),,( 1 kyyY
combinationalcircuit
A Computing System…
“A person's mental activities are entirely due to the behavior of nerve cells, glial cells, and the atoms, ions, and molecules that make them up and influence them.”
– Francis Crick, 1982
Astonishing Hypothesis
“That the astonishing hypothesis is astonishing.”
– Christophe Koch, 1995
The Astonishing Part:
Domains of Expertise
• Vision• Language• Abstract Reasoning• Farming
Human
Circuit
• Number Crunching
• Mining Data• Iterative
Calculations
Artificial Life
US Patent 20070122826 (pending):“The present invention relates to a minimal set of protein-coding genes which provides the information required for replication of a free-living organism in a rich bacterial culture medium.” – J. Craig Venter Institute
Going from reading genetic codes to writing them.
Artificial Life
Going from reading genetic codes to writing them.
Moderator: “Some people have accused you of playing God.”
J. Craig Venter:“Oh no, we’re not playing.
Biochemistry in a Nutshell
DNA: string of n nucleotides (n ≈ 109)
... ACCGTTGAATGACG...
},,{},,,{ 2013 aaGTCA
Nucleotides:
Amino acid: coded by a sequence of 3 nucleotides.
Proteins: produced from a sequence of m amino
acids (m ≈ 103) called a “gene”.
},,,{ GTCA
protein},,{ 201 maa
Biochemical Reactions: how types of molecules combine.
+ +2a b c
Playing by the Rules
Biochemical Reactions
9
6
7
cellproteins count
+
8
5
9
Discrete chemical kinetics; spatial homogeneity.
Biochemical Reactions
+
+
+
slow
medium
fast
Relative rates or (reaction propensities):
Discrete chemical kinetics; spatial homogeneity.
Protein-ProteinChemistry
[computational] Biochemistry
y
x
quantities
z
Biochemical [computation]
quantity
Multiplication
pseudo-codebiochemical code
Exponentiation
biochemical code
pseudo-code
Raising-to-a-Power
pseudo-code
biochemical code
Language as a Window into the way the Brain Works
Steven Pinker, Harvard
Circuits & Computers as a Window into our Linguistic Brains
CircuitBrainConceives of circuits and
computation by “applying” language.
Lousy at all the tasks that the brain that
designed it is good at (including language).
?