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
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
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