Introduction Nano Programming
Introduction Nano Programming
Introduction
Ryan Stansifer
http://www.cs.fit.edu/˜ryan/
20 July 2009
Overview of Course
Introduction
What is CS?
Brief overview of fields in computer science
Architecture
Layers of Software and Hardware
Anatomy of a Computer
The Java Platform
Java Documentation
History of Java
Overview of Introduction
Introduction
What is CS?
Brief overview of fields in computer science
Architecture
Layers of Software and Hardware
Anatomy of a Computer
The Java Platform
Java Documentation
History of Java
What is Computer Science?
Introduction
What is CS?
Brief overview of fields in computer science
Architecture
Layers of Software and Hardware
Anatomy of a Computer
The Java Platform
Java Documentation
History of Java
Fields
I Computer architecture
I Operating systems
I Programming languages and compilers
I Algorithms, data structures, complexity
I Computability theory
I Numerical analysis
I Networking and distributed computing
I Parallel computing
I Database systems
I Software development (aka Software Engineering)
I Human-computer communication/interaction
I Intelligent Systems (aka Artificial Intelligence)
Architecture
http://www.ima.umn.edu/˜arnold/disasters/disaster.html
Distributed Computing — barbershop problem
Parallel Computing
C3PO and R2D2 are fantasy robots from the movie Star Wars, while
Kiva’s industrial robots can efficiently and intelligently move shelves in
a warehouse.
End of the overview of different fields of study in computer science
Outline
Introduction
What is CS?
Brief overview of fields in computer science
Architecture
Layers of Software and Hardware
Anatomy of a Computer
The Java Platform
Java Documentation
History of Java
Computing is complex. There are many layer of interesting stuff
between the person and the automaton.
The vastness and minuteness of time and space is a challenge to
comprehend.
SI prefixes
1018 exa E quintillion 1 000 000 000 000 000 000
1015 peta P quadrillion 1 000 000 000 000 000
1012 tera T trillion 1 000 000 000 000
109 giga G billion 1 000 000 000
106 mega M million 1 000 000
103 kilo k thousand 1 000
102 hecto h hundred 100
101 deca da ten 10
100 (none) one 1
10−1 deci d tenth 0.1
10−2 centi c hundredth 0.1
10−3 milli m thousandth 0.01
10−6 micro µ millionth 0.000 001
10−9 nano n billionth 0.000 000 001
10−12 pico p trillionth 0.000 000 000 001
10−15 femto f quadrillionth 0.000 000 000 000 001
10−18 atto a quintillionth 0.000 000 000 000 000 001
Because computers represent information in binary form, it is
important to know how many pieces of information can be represented
in n bits. 2n pieces of information can be stored in n bits, and so it is
necessary to be familiar with powers of two.
Powers of Two
0 1 00:00:01 second
1 2 00:00:02
2 4 00:00:04
3 8 00:00:08
4 16 00:00:16
5 32 00:00:32
6 64 00:01:04 about a minute
7 128 00:02:08
8 256 00:04:16
9 512 00:08:32
10 1,024 00:17:04
11 2,048 00:34:08
12 4,096 01:08:16 about an hour
Powers of Two
files
keyboard
program monitor
computer
OS
mouse
Application
Memory management
File system
OS:
Process management Networking
CPU Memory
Hardware: Network interface
Monitor
Disk Keyboard
Example Platforms
Try:
Introduction
What is CS?
Brief overview of fields in computer science
Architecture
Layers of Software and Hardware
Anatomy of a Computer
The Java Platform
Java Documentation
History of Java
Computer Hardware
Computer Hardware–CPU
control unit is the part of the cpu that controls all the internal actions of
the cpu escially the fetch/execute cyle.
arithmetic/logic unit (ALU) is the part of the cpu that does operations:
addition, multiplication, etc.
memory data register (MDR) is the reigister of the cpu that conaints
the data to be stored in the computer’s main storage, or the data after
a fetch from the storage. It acts like a buffer keeping the contents of
storage ready for immediate use by the cpu.
Computer Architecture
Computer Architecture
As the technology improves and the costs go down over time, the
typical size of each layer goes up. The ratio in access time between
two layers influences the design of the computer hardware. When the
ratio changes significantly a different design may achieve better
performance.
Computer Architecture
Introduction
What is CS?
Brief overview of fields in computer science
Architecture
Layers of Software and Hardware
Anatomy of a Computer
The Java Platform
Java Documentation
History of Java
Programming Language Interface
distributed programs
enterprise computing
WWW applications
programs
network centric
telephony applications
Sun Java SE 6 platform overview from the documentation
Sun Java Platform
I java.util, java.awt
I java.lang
I JVM, JRE
I Hardware and operating system platform
I Sun Microsystems
I James Gosling
I 1995: WWW, browsers, Java, applets