* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Chapter 1 Notes
Structured programming wikipedia , lookup
Name mangling wikipedia , lookup
Abstraction (computer science) wikipedia , lookup
Computer cluster wikipedia , lookup
Java (programming language) wikipedia , lookup
Go (programming language) wikipedia , lookup
History of compiler construction wikipedia , lookup
Java ConcurrentMap wikipedia , lookup
Java performance wikipedia , lookup
Sections 1.1-1.11
 Student-Teacher
relationships are very
important
 Exposure+bewilderment=Obvious
 Computers
are faster
 Computers are more accurate
 Computers never forget
 If humans give faulty instructions/Enter
Data Sloppily, than the computer may
give erroneous information
 Morse
Code is based on “on” and “off”
signals that relay a message
 In Morse Code, electricity can be turned
on and off
 In Binary Code:
 1-On
 0-Off
 We
use the decimal system (base
10)every day
• Each digit represents a power of 10
 In
Computer Science, we use the binary
system, or base 2
• Each digit represents a power of 2
• 01000001=65
 ASCII: American
Standard Code for
Information Interchange
 0-127 are used for the standard set of
characters
 128-255 are used for the extended set
• A=65 or 01000001
 ASCII
can store one character per byte
 ASCII has up to 256 characters
 Unicode
uses 2 bytes to store characters
 Has a possibility of 65,536 Characters
 Java has adopted Unicode
 Bit-A
Binary Digit that is either on(1) or
off(0)
 1 Byte-8 bits
 1 Nibble-4 bits
 1 Byte-256 different combinations
 2 Bytes-65,536 different combinations
 ASCII-Uses one byte to store one
character
 Unicode-Uses two bytes to store one
character
 Early
computers used vacuum tubes to
store information (One bit per vacuum
tube)
 Vacuum Tubes were then replaced by
transistors, and later, microchips
 ROM-Read Only Memory, where
permanent information is stored
 RAM-Random Access Memory, where
information is temporarily stored
1
Kilobyte contains exactly 1,024 bytes
 CPU-Central Processing Unit; brains of
the computer
 CD- A secondary storage device that
stores information by absorbing laser
light
 Analog-Continuous
 Digital-Exact, copies can be made of this
 Hardware-Physical
 Software-Set
of instructions that make the
computer perform a task
 CPU-Central Processing Unit
 The System Unit is the piece of hardware
that contains the CPU and computer
memory
 External
Peripheral Devices-Outside the
computer, connected to an interface
• Examples: Headphones, Speakers, Flash Drive,
Mouse, Microphone
 Internal
Peripheral Devices-Inside of the
System Unit
• Examples: CD ROM, Hard Drive, Disk Drive,
Network Interface Card, Video Card
 Application
Software-Instructions
required by the computer to do perform
a specific task for you
• Examples: Word Processors/Spreadsheets
• Sometimes referred to as an “app” on a cell
phone
 System
Software-Instructions that the
computer requires to operate correctly
• Example: Operating System
• Windows, Linux, UNIX, Mac OS
 Operating
Systems can be used to:
1. Move/Store Data
2. Personalize the computer
3. Install peripheral devices
4. Install/Execute Applications
5. Install Anti-Virus
Section 1.9
 When
counting on fingers/toes became
too restricting, people began to mark
rocks or tie knots in ropes to count
 The Abacus was invented in 3000 BC in
the Middle East
 John Napier: Invented logarithms and
designed an efficient way to do Lattice
Multiplication
 Slide
Rule: Created by William Oughtred;
Allowed sophisticated mathematical
calculations
• Replaced by the scientific calculator in 1970s
 Blaise
Pascal: Built the Pascaline, the first
numerical counting machine in 1642
• Still used in 1970s because of the price of 4-
function calculator
 Jacquard's
Loom: Used punch cards to
program the loom into creating certain
patterns
 Charles
Babbage: Created the first
general purpose computing machine
• “The Father of Computers”
 Ada
Byron: Began designing computer
programs before modern computers
existed
• “The Mother of Programming”
 Tabulating
Machine: Invented by Herman
Hollerith for 1890 Census; used punch
cards
 Differential Analyzer: Invented by Harold
Locke Hazen and Vannevar Bush; capable
of large scale equations
 Konrad Zuse: Credited by some to be the
“Inventor of the Computer”; created a
programmable computer destroyed in
WWII
 Mark-I: IBM’s
first Automatic Sequence
Control Calculator; dubbed Mark-I by
Harvard
• 51 ft. long, 8 ft. tall
 Grace
Hopper: One of the first
programmers of the Mark-I, had many
contributions to Computer Science
 Mark-II: On 9/9/1947, Mark-II stopped
working; a moth was stuck in the computer
• First “Computer Bug”
 Vacuum Tubes: Size
of a normal light
bulb, 8 of these were used for the
computer to process a single character;
Marks beginning of the “First Generation
of Computers”
 Atanasoff Berry Computer: The first
electronic digital computer
 Colossus: Used by British to decrypt
secret coded messages of Germans in
WWII
 ENIAC: Electronic
Numerical Integrator
and Computer; First electronic general
purpose computer
 EDVAC: Electronic Discrete Variable
Automatic Computer; First stored
program computer
 UNIVAC: UNIVersal Automatic Computer,
the first commercially available
computer
 Transistors: Much
smaller than vacuum
tubes, and lasted much longer; Marked the
beginning of the Second Generation of
Computers
 Integrated Circuits: Developed by Jack Kilby
in 1958, circuits have multiple transistors on
each chip. Marked the beginning of the
Third Generation of Computers
 Microchips today hold billions of transistors
 System/360: Essentially
standardized
computer hardware
 Apple II Personal Computer: Created by
Steve Jobs and Steve Wozniak of Apple
Computer Inc. This was the first successful
personal computer
 IBM PC: First personal computer to be taken
seriously in the business world; had a
monochrome monitor and two floppy drives
 Toshiba: First commercially successful
computer to use a mouse and Windows
 MS-DOS: Created
by Bill Gates and
Microsoft as the first operating system for
the IBM PC
 Compaq: Known for the first portable
computer and the first computer to be 100%
compatible with the IBM PC
 GUI: Graphics User Interface
 Mouse Technology: Created by Xerox
 Lisa: Created by Apple, first commercially
successful computer with mouse and GUI
technology
 Introductory
Computer Science courses
traditionally focus on programming
 Program: A sequence of instructions
which enables a computer to perform a
desired task
 Programmer: A person who writes a
program for the computer
 Programming the ENIAC requires
rewiring the machine
 Machine
Language: Also Machine Code;
Directly manipulating the 1s and 0s of the
computer’s binary language.
 EDSAC: Electronic Display Storage
Automatic Computer; Introduced Assembly
Language
 Initial Orders: Name of the assembler in the
EDSAC
 Grace Hopper: Coined the term
“debugging”; nicknamed “Amazing Grace”
 Low
Level Languages: Machine Language
and Assembly Language; They function at
or close to the level of 1s and 0s
 High Level Languages: FORTRAN,
COBOL, Java; A language that uses
English words as instructions
 Very High Level Languages: NXT; Uses
pictures you click and drag to program
the computer
 Translator: Translates
a high level
language into low level machine code
 Compiler: Translates the entire program
into an executable file before execution
 Interpreter: Translates one statement at a
time during execution
 FORTRAN: FORmula TRANslator; first
successful programming language;
designed for Mathemeticians, Scientists
and Engineers
 LISP: Known for being one of the
languages specifically designed to
develop Artificial Intelligence
 COBOL: Common Business Oriented
Language; designed for the business
community
 PL/I: Programming
Language 1; IBM
designed PL/I to standardize software, by
combining FORTRAN and COBOL.
• Never became popular because FORTRAN users did
not like the COBOL features and vice versa
 BASIC: Created
by Tom Kurtz and John
Kemeny for non-math and non-science
majors.
• Became popular when personal computers were
released because the memory was too small for
FORTRAN or COBOL
• College professors did not like this because it didn’t
teach programming structure properly
 Pascal: Created
by Niklaus Wirth for the
purpose of teaching programming.
• Differs from PL/I because it has just enough math
from FORTRAN and just enough record handling
from COBOL
 NXT: Created
by the Lego Corporation; Very
high level language, uses point and click
language
 BCPL: Originally intended for writing
compilers
• Updated, renamed C, then C++
• Uses OOP: Object Oriented Programming
 Sneaker
Net: Early computers were not
networked; Used this system to share
files
 Peer-to-Peer Networks: First practical
network for personal computers; All
computers are equal
 Server: A specialty computer connected
to a network for printing, data storage,
website management etc.
 LAN: Local
Area Network
 Internet: Came about in The Cold War; No
central location so it cannot be destroyed
 Intranet: A series of LANs that are
connected to a large network
 ISP: Internet Service Provider
Sections 2.3-2.12
 The
United Nations has about 200 countries
and uses a two step translation process, with
English as the intermediate area.
• A one step translation process would need 20,000
translators
 Java
also uses a two step translation process,
using a compiler to turn the source code to
bytecode and an interpreter to go from
bytecode to machine code
A
programming language is considered
platform independent if the source code
can execute on another platform without
difficulty
 Compiler: Usually translates the code into
an executable file before execution
• In Java, it translates the source code into Bytecode
• Larger than interpreters
 Interpreter: Translates
the source code one
line at a time during execution
• In Java, it translates Bytecode into machine code
 Bytecode: The
intermediate code created
by the Java compiler; A low level code
that cannot execute as a regular machine
code file
• Is understood and executed by a JRE
 JRE: Java
Runtime Environment; a Java
interpreter
 HTML: Hyper Text
Markup Language; a
special program language for webpages
 Applet: A Java program designed to
operate inside a web page
• A web page can contain multiple applets, but
cannot be written entirely in Java
 Application: A
Java program designed to
operate in a stand alone environment
 JDK: Java
Development Kit, free of charge,
a Java compiler
 You need a text editor, compiler, and
interpreter to write a Java program.
 IDE: Integrated Development
Environment; contains all three things
above
 All java programs end with .java
 Java
compiler can be accessed through
the Command Prompt
 All Bytecode files end with .class
 JDK must be installed before JCreator
 JCreator is an IDE; is not the only IDE
available
 GUI: Graphics
User Interface
 Program Input is more complex than
program output
 //: This is a one line comment code; is not
shown when the program is run(does not
get compiled)
 Every application has a main segment
 Sytem.out.println: Outputs data and puts
the cursor on the next line
 {}: Contain
program blocks
 Programming languages cannot use
human language because there are too
many words that share meanings
 Java Keyword: A word that has a special
meaning in a program/performs a
special function
• Two or more keywords combine to make a
program
 Keywords
are case sensitive; System is a
keyword, system is not
 Keywords: public, class, static, void, main,
String, System, out, println
 CRLF: Carriage Return Line Feed; after
displaying the data, it sends the next line
of data to the next line
 println contains a crlf, print does not
• Both follow keywords System.out
 If
the program is named Jessica.java, then
the program must say public class Jessica
 A semicolon must be at the end of all Java
statements
 Comments aid in program
documentation
• A well documented program is easy to read
debug, update, enhance
Sections 3.1-3.12
 Variables
make math, science, and
computer science possible
 Keywords are what make up a computer
program
 Java
compilers will only compile if the
source code obeys the Java syntax
 First Java syntax rule: Only keywords
known to Java can be used in the
program
 Three categories of keywords: Reserved
words, Predefined Java Identifiers, UserDefined Identifiers
 Java Reserved Words: public, static, void
 Pre-Defined
Identifiers: print, println
 User-Defined Identifiers: cannot be a
Reserved word or Pre-defined identifier
• To name it, you may use alphanumeric
characters and the underscore. Must start with
alpha character
 To
declare an integer x, int x; is the
proper form
 To
assign int x a value use int x = 7; as a
single statement
 The four data types of Java are byte,
short, int, long
 Int: contains 4 bytes
 Largest value of a byte is 127
 5 integer operations: Addition,
Subtraction, Multiplication, Quotient
Division, Remainder Division
 Quotient
Division is traditional division,
and remainder division calculates the
remainder after division
 Float
and Double are two data types used
for real numbers
 Addition, Subtraction, Multiplication, and
Division are the four real number
operations
• Real number remainder division is possible but
not practical
 The
Rollover effect is applied similar to
when a car hits 100,000 miles. The
maximum display is reached, and makes
the sign number negative
 Memory Overflow is when the value of a
variable exceeds the storage space
allocated
 X++/++X: X=X+1
 X--/--X: X=X-1
 Do
not combine shortcuts with Java
Statements or other shortcuts, they
become hard to follow
 X+=5: X=X + 5
 X-=5: X=X - 5
 X*=5: X=X * 5
 X/=5: X=X / 5
 X%=5: X=X % 5
 Char
is the data type used to process
individual characters
• Single quotations mark a char data type
 String
is the data type used to process
sets of one or more characters
• Double quotations mark a String data type
 “Chaining” is
when multiple variables
are set equal to a value
 Concatenation
is when the plus sign is
used to join strings together
• “100” + “200”=“100200”
 Overloading: Overloading
is when an
operator is used to perform different
functions
 George
Boole developed Boolean
Algebra, which is statements that are
either true or false
• Boolean data types, true or false only, are used
today in Computer Science
 Primitive
data types: Java’s formal
language for simple data types
 To
set a number as a constant(the
number will never change) type as final
double doubleConst=xxxxx;
• If you try to alter the variable of a constant, the
program will not compile
 Java
calls final variables constants
 The
first form of program documentation
is to use comments
 In the 1960s-70s computer programs
were often written with single letter
variables to save memory space
 A self-commenting variable is a variable
with a name that describes the purpose
of the variable
 Variables
should now be words or
compounds, not single letters
 Comments should still be used even if
self-commenting variables are used
 Java
follows the same Order of
Operations that are used in math
Traditional Math
Java source code
7abc
7*a*b*c
x+3/2x-7
(x+3)/(2x-7)
½
1.0/2.0
Type casting is used in Java to make sure that the
correct data type is assigned to a variable
• System.out.println(10/3); = 3
• System.out.println((double)10/3); = 3.3333333
Escape Sequence: A single slash followed by
some character placed between double quotes
 \n: Carriage Return Line Feed
 \t: tab
 Escape sequences are used to create
backslashes and quotations because these keys
are already used as operators