The “Nothing is Obvious Story” Imagine a young boy in the Amazon jungles. This boy has always...
Preview:
Citation preview
- Slide 1
- Slide 2
- Slide 3
- The Nothing is Obvious Story Imagine a young boy in the Amazon
jungles. This boy has always lived in the jungle without any modern
conveniences. He has never been in a city; he has never seen a
television nor seen a book. Now imagine that for some unknown
reason this young boy travels to Colorado in the Winter time. The
little boy stands in a yard somewhere and watches the snow with
bewilderment. He is astonished; he does not understand what is
falling from the sky. Another little boy, about the same age, from
Colorado, looks at the boy's behavior. The Colorado boy is
confused, why is the boy acting so odd? Obviously it is snowing, so
what is the big deal?
- Slide 4
- Corn Flakes & Iced Tea Most Americans consider it "obvious"
that cold milk is poured on corn flakes. However, in Europe,
everybody knows you put warm milk on your cereal. Most Europeans
consider it "obvious" that Tea is to be served warm, preferably
hot. They are completely baffled when Texans actually put ICE in
their Tea.
- Slide 5
- The Exposure Equation Bewilderment + Exposure = Obvious
- Slide 6
- Exposure in Extracurricular Activities Drill team performance
Half-time band show Football Team blocking Basketball free throws
Baseball batting
- Slide 7
- The Curious Exposure Discrepancy Students recognize that only
continuous practice will result in a good showing at a brief
performance or brief competition Many of the same students barely
read or practice a topic once for an academic subject. It appears
that preparation for a known, short performance requires practice,
but preparation for life receives only minimal effort from many
students.
- Slide 8
- Roller Coaster Emotions The majority of computer science
assignments work or they do not work. This causes considerable
emotions with most beginning students. Many students get very
excited when a program works, and very depressed when many hours of
effort result in nothing. Accept the fact that a computer is not
intelligent and requires 100% correct information. Do not become
angry with the computer, nor with yourself. Determine the
discrepancy (small we always hope) and try again.
- Slide 9
- Learning Computer Science Read the assigned textbook pages
before the lecture. Read the material again after the lecture.
Listen closely to the lecture.Play with the computer. If program
examples are used at your computer, make sure that you are at the
same place as the lecture. Make sure that you get clarification in
any area that is confusing before you take a test. Read lab
assignments before arriving for a scheduled lab. Pay particularly
close attention when a test is returned Ask questions, if you are
confused with a lecture or lab. Please realize that cramming does
not work with computer science!
- Slide 10
- Excessive Help Positive Help Kind of help a student gets to
understand the required concepts, so that the student learns to do
the assignment Excessive Help Kind of help a student uses to
complete an assignment without learning the required concepts.
- Slide 11
- Excessive Help Catches Up: Lab Exercises Computer Lab
Programming Tests Class quizzes Multiple Choice Tests
- Slide 12
- Slide 13
- The Abacus 3000 B.C. The Abacus was originally invented in the
Middle Eastern area. This rather amazing computing device is still
very much used in many Asian countries today.
- Slide 14
- Napier's "Bones" 1617 A.D. John Napier used some bones marked
with special scales to simplify arithmetic by using addition for
multiplication.
- Slide 15
- The Slide Rule 1622 William Oughtred created the slide rule.
This device allows sophisticated mathematical calculations, which
was widely in use until around 1970.
- Slide 16
- Numerical Calculating Machine 1642 Blaise Pascal builds the
first numerical calculating machine. This device works similar to
the old car odometers and could perform addition and
subtraction.
- Slide 17
- Joseph Jacquard invents flexible cards that are punched with
information in such a manner that it is possible to program how
cloth will be weaved. It was one of the first examples of
programming. Jacquard's Loom 1805
- Slide 18
- Analytical Engine 1833 Charles Babbage invents a machine that
can read instructions from a sequence of punched cards. This
becomes the first general purpose computing machine.
- Slide 19
- Programming 1842 Countess Ada Lovelace designs programs that
work for Babbage's analytical machine. She is considered the mother
of programming. Today a programming language is named after
Ada.
- Slide 20
- Tabulating Machine 1884 Herman Hollerith invents a tabulating
machine that records statistics for the U.S. Bureau of census.
Hollerith starts a tabulating company, which after various name
changes eventually becomes International Business Machines
(IBM).
- Slide 21
- Colossus 1941-1944 This computer is developed in England in
various stages and helps to decrypt the secret code message of
German communication during Word War II.
- Slide 22
- Mark I 1944 This relay-based computer is developed by Harvard
University and IBM. Grace Hopper, then a Navy Lieutenant, becomes
the first programmer of the Mark I.
- Slide 23
- ENIAC 1946 The ENIAC (Electronic Numerical Integrator and
Computer) is the first fully-electronic computer. The computer is
two stories tall, weighs 80 tons, contains 19,000 vacuum tubes, and
is programmed by walking inside the computer.
- Slide 24
- Integrated Circuit 1958 Jack Kilby, of Texas Instruments, at
Richardson, Texas invents the planar transistor, which allows
creation of integrated circuits and micro chips.
- Slide 25
- Altair 1975 Altair becomes the first personal computer. It is
created by Ed Roberts and Bill Yates. The computer costs $397.00
and has storage for 256 bytes.
- Slide 26
- Apple II 1977 The Apple Computer Company is created and
introduces the Apple II personal Computer. It becomes the first
commercially successful personal computer.
- Slide 27
- VisiCalc 1979 Dan Bricklin created VisiCalc, a spreadsheet
program, which becomes the first wide spread software to be
sold.
- Slide 28
- WordStar 1979 MicroPro releases WordStar, which becomes the
most popular word processing software program.
- Slide 29
- IBM PC 1981 IBM's entry into the personal computer market gives
the personal computer a serious image as a true business computer
and not some sophisticated electronic game playing machine.
- Slide 30
- MS-DOS 1981 Microsoft, an unknown little company run by Bill
Gates, agrees to create the operating system for the IBM Personal
Computer and becomes a company larger than IBM.
- Slide 31
- The Macintosh 1984 The "Mac" was the first commercially
successful computer with the mouse/windows technology. The mouse
technology was already developed earlier by Xerox Corporation.
- Slide 32
- Slide 33
- Three Ways Where Computers Beat People Computers are faster.
Computers are more accurate. Computers do not forget.
- Slide 34
- A short - long B long - short - short - short C long - short -
long - short D long - short - short E short First Five Letters In
Morse code
- Slide 35
- Electronic Memory offonoff on 01000001
- Slide 36
- 0-31 in Bases 10 & 2 Base 10Base-2Base 10Base-2 001610000
111710001 2101810010 3111910011 41002010100 51012110101 61102210110
71112310111 810002411000 910012511001 1010102611010 1110112711011
1211002811100 1311012911101 1411103011110 1511113111111
- Slide 37
- Three Combinations of 8 Light Bulbs 01000001 01000001 (base-2)
= 65 (base 10) or char A 01000010 01000010 (base-2) = 66 (base 10)
or char B 01000011 01000011 (base-2) = 67 (base 10) or char C
- Slide 38
- Bits, Bytes & Codes Bit is a Binary digit that is either 0
(off) or 1 (on). 1 Nibble = 4 bits 1 Byte = 8 bits. 1 Byte has 256
different numerical combinations. 2 Bytes has 65,536 different
numerical combinations. ASCII uses one byte to store one character.
Unicode uses two bytes to store one character.
- Slide 39
- Slide 40
- Counting in Other # Systems 0-15 Base 10Base-2Base 16Base 5
0000000 1000111 2001022 3001133 4010044 50101510 60110611 70111712
81000813 91001914 101010A20 111011B21 121100C22 131101D23 141110E24
151111F30
- Slide 41
- Counting in Other # Systems 16-31 Base 10Base-2Base 16Base 5
160001 00001031 170001 1132 180001 00101233 190001 00111334 200001
01001440 210001 01011541 220001 01101642 230001 01111743 240001
10001844 250001 100119100 260001 10101A101 270001 10111B102 280001
11001C103 290001 11011D104 300001 11101E110 310001 11111F111
- Slide 42
- Motherboard & Computers Chips motherboard The main board
with all the primary computer components. Has several computer
chips attached: Read Only Memory (ROM) This chip stores permanent
information for the computer. Random Access Memory (RAM) This chip
stores temporary information for the computer. Central Processing
Unit (CPU) This chip is the brains of the computer.
- Slide 43
- Measuring Memory Note: Technically, a kilobyte is exactly 2 10
or 1024 bytes. KBKilo Byte1 thousand bytes MBMega Byte1 million
bytes GBGiga Byte1 billion bytes TBTera Byte1 trillion bytes PBPeta
Byte1 quadrillion bytes EBExa Byte1 quintillion bytes
- Slide 44
- Secondary Storage Devices Since RAM is lost when the computer
is turned off, files must be saved to some secondary storage device
for later use.
- Slide 45
- Program Definition A program is a sequence of instructions that
makes a computer perform a desired task. A programmer is a person
who writes a program for a computer.
- Slide 46
- Programming in Machine Code Programming the first computers was
an unbelievably difficult task. Individual vacuum tubes had to be
switched on or off. Instructions were sequenced by physically
plugging wires from one computer memory segment to another. Later
computers allowed tape and cards to be used for program input.
Still, thousands of 1s and 0s that had to be entered. Mistakes were
very easily made, and very difficult to detect.
- Slide 47
- Programming in Assembly Language Every CPU instruction has a
mnemonic name. For instance, mov AX,1234 is the instruction to
place the value 1234 into the AX register. Uses hexadecimal
(base-16) numbers rather than binary (base-2) numbers. There exists
a unique relationship between base-2 and base-16 numbers. An
assembler is used to translate the mnemonic commands into machine
code.
- Slide 48
- Slide 49
- Interpreters & Compilers Grace Hopper, a Navy lieutenant,
was largely instrumental for developing translating programs that
allow programming in a human-style language. Two types of
translating programs were created: An interpreter translates a
program one line at a time during execution. A compiler translates
the entire program into a machine code file and then executes the
file. The majority of todays program languages use compilers for
translators. Java, oddly enough, is both a compiled and an
interpretive language. How this is possible will be explained
soon.
- Slide 50
- High-Level Language Languages that are closer to human
languages. Examples: BASIC, Pascal, COBOL, FORTRAN, PL/1, C, C++,
Java Low-Level Language Languages that are very close to binary
code. Examples: Machine Code and Assembly Language A translator
(interpreter or compiler) translates a High-level language into a
Low-Level language. Types of Languages
- Slide 51
- The first successful programming language -- released in 1956.
FORTRAN stands for FORmula TRANslation Designed for the mathematics
and scientific community. It could not handle the record processing
required for the business world. FORTRAN
- Slide 52
- Created in 1960 (largely by Grace Hopper) for the business
community and the armed forces. COBOL stands for COmmon Business
Oriented Language. COBOL became extremely successful when the
Department of Defense adopted COBOL as its official programming
language. COBOL
- Slide 53
- PL/1 stands for Programming Language 1 It tried to be a
language for everybody by combining all of the Math features of
FORTRAN with all of the business features of COBOL. The result was
an extremely cumbersome language that never gained much popularity.
PL/1
- Slide 54
- BASIC stands for Beginner All-purpose Symbolic Instructional
Code Was designed for beginning college students. BASIC became the
first popular program language for personal computers in the 1970s.
BASIC required little memory, and it was the only language that
could initially be handled by the first micro computers. BASIC
- Slide 55
- Pascal was named after Blaise Pascal (the same guy who created
Pascals Triangle). In the late seventies, early eighties, Pascal
took a strong hold in the educational community. Pascal was
developed by Niklaus Wirth, specifically for the purpose of
teaching proper computer science programming techniques. For many
years Pascal was the language taught in APCS1 & APCS2.
Pascal
- Slide 56
- The UNIX operating system was developed at the Bell
laboratories and was written in several languages including BCPL or
just plain B. A later version of the language was called C. A new
era with a powerful programming technique was born called Object
Oriented Programming (OOP). Bjarne Stroustrup combined the
popularity of the existing C language with the demands for OOP and
developed C++. C and C++
- Slide 57
- Released in 1995 by Sun Microsystems. Java is a Platform
Independent Language. Platform Independent means that the language
does not cause problems as programs are transported between
different hardware and software platforms. Unlike C++, Java
required you to use OOP which caused many universities to adopt it.
This caused Java to be the official language for the APCS Exam
starting in the 2003-2004 school year. Java
- Slide 58
- Slide 59
- Early personal computers were not networked at all. Every
computer was a stand-alone computer. Some computers were hooked up
to printers and many others were not. If you needed to print
something, and you were not directly connected to a printer, you
saved your work to a floppy disk, put on your sneakers, and walked
to the printing computer. Sharing files was done in the same way.
SneakerNet
- Slide 60
- The first practical networks for personal computers were
peer-to-peer networks. These are small groups of computers with a
common purpose all connected to each other. These types of networks
were frequently called Local Area Networks or LANs. Initially, the
networks were true peer-to-peer networks. This means that every
computer on the network was equal. Peer-To-Peer Networks
- Slide 61
- A server is a specialty computer that is connected to the LAN
for one or more purposes. It services the other computers in the
network which are called clients. Servers can be used for printing,
logon authentications, permanent data storage and communication.
Client-Server Networks
- Slide 62
- The Internet has existed since the 1960s and has its origins in
the "Cold War. During the Cold War there was a major concern about
the country being paralyzed by a direct nuclear hit on the
Pentagon. A means of communication had to be created that was
capable to keep working regardless of damage created anywhere. This
was the birth of the Internet. The Internet has no central location
where all the control computers are located. Any part of the
Internet can be damaged and all information will then travel around
the damaged area. The Department of Defense
- Slide 63
- Normally, businesses and schools have a series of LANs that all
connect into a large network called an Intranet. An Intranet
behaves like the Internet on a local business level. This promotes
security, speed and saves cost. Now the moment a school, a
business, your home, wants to be connected to the outside world and
giant world-wide network known as the Internet, you have access to
millions of lines of telecommunications. This will cost money and
every person, every school, every business, who wants this access
needs to use an Internet Service Provider or ISP. You pay a monthly
fee to the ISP for the Internet connection. The amount of money you
pay depends on the speed of your Internet connection. The Modern
Internet
- Slide 64
- Slide 65
- Hardware are the physical pieces of computer equipment. This
included the main computer system unit, as well as all of the
peripherals (things that plug into the computer.) Hardware
- Slide 66
- Computer software provides instructions to a computer. The most
important aspect of this course is to learn how to give correct and
logical instructions to a computer with the help of a programming
language. Software falls into two categories: System Software
Application Software. Operating Systems like Windows and Linux are
examples of System Software. Applications software runs an
application on a computer. Examples of Application Software are
Word, Excel, PowerPoint, Video Games, and the very programs that
you will write in this course. Software