Software - Suffolk County Community College

advertisement
Introduction to Programming
Instructor:
Yong-nian Tang
Brookhaven National Laboratory
Working on accelerator control
631-344-7022 (BNL Phone #)
tangy@sunysuffolk.edu
Introduction to Programming
Text Book:
Introduction to Java Programming
by Daniel Liang
10th edition
2
Introduction to Programming
Download the text book:
www2.sunysuffok.edu/tangy 
CST112 --- Introduction to programming 
Liang’s Introduction to Java Programming,
10th edition
3
Introduction to Programming
Supply: USB drives to save files and
transfer data.
Very cheap when they are on sale.
About $0.50 to $1 per GB, or even less.
Every one should have one or two.
4
Introduction to Programming
Course Web Pages:
www2.sunysuffolk.edu/tangy/cst112





Outline
Announcements
Slides
Projects
Attendance and project status
5
Introduction to Programming
Attendance Policy
 Attending classes is very important
 Firm but flexible policy
 If you can not attend a class,
• call 344-7022 or
• email tangy@sunysuffolk.edu
 Attendance
Grades: 10% goes to the final
grade. However, more points will be deducted for
many absences.
6
Introduction to Programming
Fail or Withdrawal
 One should go to registrar to formally withdraw
from the class if quitting attending the class after
some date. For example, one quits the class after
the midterm exam.
 If you forget to formally withdraw, I usually assign W
as your final grade if the College permits. However,
if you need to get an F in order to get financial aid,
please send me an email.
 If the College does not allow professors to assign W,
I will assign F for lack of choices.
7
Introduction to Programming
Grading Policy
 Specified in the outline
 In general, if one attends the classes, finishes lab
work, exams and projects, one gets a relatively
good grade.
 Do not worry about grades, to learn something is
more important.
8
Introduction to Programming
Topics
 The language we use is Java.
 Our goal is to be able to write medium size
programs at the end of the class.
 I enjoy to answer questions from you and discuss
them with you. Please be actively involved in the
class activities.
9
Defining Computers
A computer is an electronic device
 accepts input
 processes and stores data
 produces output
Types of Computers
 Personal computers
• Desktop
• Notebook (Laptop)
• Tablet PC
 Hand-helds: PDAs, MP3 players, Cell phones
 Mainframes
 Supercomputers
 Other computers (at home, in car…)
Types of Computers
 Personal computers are used for general
computing tasks.
 Hand-held computers fit in the palm of your
hand and run on batteries.
 Mainframes are used by companies to
provide centralized storage, processing, and
management for large amounts of data.
 Supercomputers are the largest and fastest of
computers, and can process an enormous
volume of data.
Types of Computers
 Desktop: (HP, Dell, IBM…)
• Usually more powerful and cheaper
than laptops
• Needs separate monitor, not easy to
move around
• Could be replaced by laptops and
tablets in the near future?
Types of Computers
 Notebook, Netbook and
tablet
• Small & lightweight.
Portable
• Netbook: browsing
Internet
• Tablets (7” and 10”,…)
Types of Computers
 Supercomputers are the
largest and fastest
computers. BNL Bluegene
 Mainframe s are very
powerful computers, but
not as powerful as
supercomputers.
 Clusters: consists of
hundreds and more
processors.
Computer Systems
A computer system is made up of:
 Hardware — the physical components. Can
be touched. If kicking it, your toe will get
hurt.
 Software — the programs or lists of
instructions. Can not be touched.
 Software could be more expensive than
hardware. Why do most people KEEP using
Windows system?
Can we reduce the weight of a
computer by deleting its software
(files).
No!!!
Software has no weight.
Hardware: major components
 Motherboard
 CPU (Central Processing Unit)
 Memory
 Storage devices
 I/O (Input/Output) devices
 Network devices
 Power supply, case, video card, sound card…
Hardware: Motherboard
 Also called
mainboard
 Located inside the
computer case
 Holds and connects
all essential
components
Hardware: CPU
 CPU - micro processor
• A silicon chip
designed to
manipulate data
• The brain of a
computer.
• 64-bit CPUs and 32bit CPUs
Hardware: CPU (cont.)
 Intel, AMD, Apple, IBM… make CPUs.
 Its speed is determined by:
• Clock speed (Hz)
• Word size (32-bit and 64-bit)
• Processor type
• Usually, motherboard and CPU are the most
expensive components in a computer. Highend video cards are not cheap either.
Question
1. What are the two most
expensive components in
a computer?
Hardware: Units of Memory and Storage
 Computer understands 0 and 1 only: on/off
state, N/S pole, 0/5 volts…
 1 (“on”) and 0 (“off”) are referred to as bits.
 Eight bits is a byte. Two bytes represent a
unique character (Unicode)
 Decimal numbers and binary numbers.
Hardware: Units of Memory and Storage
 Everything in the computer memory and




storage devices is a number! A computer
understands only numbers.
Number  number
Character  number (ASCII code)
Grey level  number ( usually 0 – 255)
Color  three numbers (R/G/B)
Question
2. A byte can store 256
different numbers, why
do we need two bytes to
store an English
character?
Hardware: units of Memory and
Storage
 Kilobyte (KB) = one thousand (1024) bytes
 Megabyte (MB) = one million (1024 KB)
bytes
 Gigabyte (GB) = one billion bytes
 Terabyte (TB) = one trillion bytes
Hardware: Memory
 Computer memory is a set of storage
locations.
 Five types of memory:
•
•
•
•
•
Random access memory (RAM)
Cache memory
Virtual memory
Read-only memory (ROM)
Complementary metal oxide semiconductor
memory (CMOS)
Hardware: Memory
 RAM --- Random Access Memory
• Sits on motherboard and closes to CPU
• Also called volatile memory, primary
memory, and main memory.
• Most important memory type.
• 256 MB to many GBs.
• Fast CPU + big memory + (fast graphical
card) a fast computer.
Hardware: Memory
 Cache memory
• Special high-speed memory chip on the
motherboard or CPU
• Stores frequently and recently accessed data
and commands.
• Usually 1 to ??? MB.
• The bigger, the better, also more expensive.
Hardware: Memory
 Virtual memory is extra memory that simulates
RAM if more is needed. Limited by the memory
space (word size).
 Read-only memory (ROM) is the permanent
storage location for a set of instructions the
computer uses.
 CMOS memory is semi-permanent information
about where essential software is stored.
Hardware: Storage Media
 Magnetic storage devices
• Hard disks—several magnetic oxide
covered metal platters usually sealed in a
case inside the computer
• Tape—inexpensive, slow, archival
storage for large companies who need to
back up large quantities of data.
• Floppy disks: (almost) obsolete
Hardware: Storage Media
 Optical storage devices
• CD-R - store 700 MB of data
• CD-RW: not reliable
• DVD—can store between 4.7 and 15.9
GB of data; Blue-ray discs and HD-DVD
can store between 15 and 50 GB of data
Hardware: Storage Media
 Flash memory cards
• Small, portable cards: rewritable
• Used in digital cameras, handheld
computers, video game controllers, and
other devices
• Most commonly-used: SD (HDSD) cards
– Secure Digital.
Hardware: Storage Media
 USB drive, USB flash
drive
• from 32 MB to 16 GB and
•
•
•
•
more
Plug directly into the USB
port (hot operation)
Rewritable
Best portable storage
Small and inexpensive:
$1.50/GB
Hardware: Differences between
memory & storage
Speed
Persistent
Size
Location
Memory
Fast
No
Limited
On board
Storage
Slow
Yes
Unlimited(?)
External
Question
3. When we talk about
memory and storage,
how do you compare
computers and people?
Hardware: Input/Output
 Input:
• Data you type
• Data by reading files
• Data through Internet.
• Data from sensors……
• Other sources
 Output: Display the result.
Hardware: Input/Output
 Peripheral devices
• Accomplish the input, output, and
storage functions.
• Not on the motherboard  slow
• I/O always is the slowest part of any
program execution
Hardware: I/O Devices
Input devices:
 Keyboard
 Mouse
 Others
Hardware: I/O Devices
 Output devices:
• Monitors
 CRT monitors (almost obsolete)
 LCD and LED
• Printers
• Others
Hardware: I/O Devices
Monitor’s quality
 Screen Size
(diagonal in inches)
 Resolution (in pixels)
 Setting the screen
resolution.
Hardware: I/O Devices
 Types of printers
• Laser
• Inkjet
 B/W printing:
buy laser printers
 Color laser printer:
very expensive
cartridges.
Inkjet printer
Hardware: Printer
 Turn OFF the printer when not printing to
prevent the heat from drying the
cartridges.
 Use the power button to turn off the
printer in order to make cartridges stay in
the proper housing. Do not pull the power
cord.
Hardware: Video Card
 Integrated (on-board) and dedicated
video cards
 Gaming: needs high-end video cards.
 High-end computers have dedicated
video-cards
 Usually, a video card has its own
memory; on-board video shares main
memory.
Microsoft Office 2007-Illustrated Introductory, Premium Video Edition
44
Hardware: Network Devices




Network cables (Ethernet cables)
Modems and routers
Wireless cards and adapters
Building a home wireless network: Not as
hard as one thinks. Just follow the
instructions.
A Desktop Computer
Motherboard and others
The Back of a Computer
Power connection
Keyboard port
Mouse port
Audio
connection
Monitor port
FireWire port
USB ports
Network port
Speaker and
microphone
connections
Phone line
connection
Computer ports and connections
Software: major Components
 Operating system
• Windows
• Unix & Linux (open and free)
• MacOS
 System utilities
 Application software
Software: Introduction
 Software manipulates and processes data
 Data:
Strings, numbers, figures, sounds, images,
and graphics…
Software: Introduction
 File --- named collection of stored data.
• Executable file can be run to perform a specific
task.
• Data file contains data.
 Everything in a computer is represented by
a number on disk and in memory.
Software: Data Representations
 Every English
character is
represented by an
ASCII number.
 ASCII numbers
defined by ANSI.
ANSI standard sample ASCII code
Software: Data Representations
 ASCII --- American Standard code for
Information Exchange
 ANSI --- American National Standards
Institute
Microsoft Office 2007-Illustrated Introductory, Premium Video Edition
53
Software: System Software
 System software helps the computer
carry out it s basic operating tasks.
•
•
•
•
Operating systems
Utilities
Device drivers
Programming languages
Software: System Software
 Operating system
• Executes programs
• controls the input and output (I/O)
• allocates system resources and priorities
• Schedules tasks
• manages files on storage devices
• guards against equipment failure
• provides a graphical user interface (GUI)
• Others
Software: System Software
 Operating system
• Programmer: develop and write the system
• System administrator (SA): configure and
maintain the system
• End user: use the system
 Using GUI (Graphical User Interface)
 Manipulating files
Software: System Software
 Major Operating systems
• Windows by Microsoft: most recent version is
Windows 10.
• Unix/Linux: many flavors (Sun Solaris, HP-UX,
IBM AIX, Redhat, Debian, Ubuntu…)
• MacOS: only for Apple computers.
57
Software: System Software
 Which OS is better?
• Windows: most popular. Easy to use. Many
applications. Hardware/software installation is
easy. Prone to virus attacks.
• Unix/Linux: free. Popular in academic world.
Hardware/software installation needs effort and
expertise. More secure than Windows.
• MacOS: nice GUI, stable and reliable. Pay a
premium because it’s Apple.
58
Software: System Software
 We are users and we learn
• Basic knowledge of file systems.
• To use GUI of the system
• To configure the system
• To maintain the system
59
Software: System Software
 Utilities
• Analyze, configure, optimize and maintain
computer system: disk defragmenter, system
restore…
 Device drivers
• “Drives” a specific device (drive).
• The main task to install a device is to install its
driver.
Software: System Software
 Programming languages
• Used by a programmer to develop
programs.
• Most commonly used computer
language: C, C++, Java, C#, Visual
Basic, Fortran…
Microsoft Office 2007-Illustrated Introductory, Premium Video Edition
61
Software: System Software
 Drive and Driver
• Drive --- Hardware
• Driver --- software to “drive” a specific
drive.
 Examples:
Hard (disk) drive --- Hard (disk) driver
USB drive --- USB driver
Printer --- Printer driver
Microsoft Office 2007-Illustrated Introductory, Premium Video Edition
62
Software: System Software
Icons (you
might see
additional
icons on
your
screen)
Gadgets
(small
programs;
you might see
additional or
different
gadgets on
your screen)
Start button
Taskbar
Quick Launch toolbar
Windows Vista starting screen
Software: Application Software
 Enables you to perform specific
computer tasks
 Examples: web browsers, Microsoft
Office, DBMS, ……
Security Threats: virus (malware)
 Software programs infesting computers:




Worms, Trojan horse, spyware, adware…
Replicates itself and fill up disks
Damages computer systems
Erases files and wipes out disks
Ties up network and computers. Slows
down program execution
Security Threats: viruses
 Pops up ads
 Keylogger: steals personal
information
 Creates a back-door and lets remote
users access your computer
 A bad virus spreads very fast and
affects millions computers.
66
Security Threats: Sources of
viruses
 Downloading virus-infected files
 Opening malicious emails and their
attachments
 Infected disks and CDs
 Worst incidents: Melissa, ILOVEYOU
67
Security Threats: Anti-virus
 Firewall
• Stop unwanted and unsolicited incoming
network messages and data.
• Can be either hardware or software.
 Antivirus software
• Every computer must equip with an antivirus
software.
 System and software update:
• Automatic update
Security Threats: Antivirus
 Microsoft: security_essentials (free)
 Paid: Norton, MacAfee, Trend Micro
 Free:
• ClamAV: open source. For Unix/Linux , also for
•
•
•
•
Windows
Clamwin: variant of ClamAV for Windows
Stopzilla
Avast!
AVG Anti-Virus
69
Security Threats: Antivirus
There is no excuse not to install an
antivirus software, at least it should have
security_essential installed from
www.microsoft.com/security_essential
SE is free and works well!
70
Security Threats: Spoofed sites
 Spoofed site
• A Web site set up to look like another Web
site, but which does not belong to the
organization portrayed in the site
• The URL (address on the Web) looks similar
to a URL from the legitimate site
www.citibank.com and www.citybank.com
• Usually set up to try to convince customers
of the real site to enter personal information
Security Threats: Phishing
 Phishing
• Sending e-mails to customers of a legitimate Web
site (banks and institutions) asking them to click a
link in the e-mail because of
 Security upgrade
 Account update
 Account compromised
 Other reasons
• If the customer does not click the link, his/her
account will be suspended or closed
• the link leads to a spoofed site and asks personal
and/or login information.
Security Threats: Other tricks
 Nigerian scams
• Lottery winner, request processing fee
• Unclaimed treasure: needs your account number to
deposit
 Over-payment scam
• You sell an item (a car…)
• A far-away guy will buy it and send you a bank
check larger than your asking price
• He asks you to mail the extra to himself or
someone else through western union…
• You deposit the check and send the extra back (real
money). Several weeks later, the check bounced.
Security Threats: Phishing
 Too good to be true >>> not true
 Never open an unsolicited email, especially, its




attachments
Never reveal your personal information (SSN,
bank account number, credit number…) unless
you initialize the communication
Never make any payment to a (faraway) stranger.
Wait for the check cleared, then take action.
If someone specifically ask you to send money
through Western Union or Money Gram  most
likely it’s a scam.
Security Threats: Phishing
 To clear a bank check needs one to
several weeks, especially foreign checks.
 Payment by Western Union… is not
traceable.
Microsoft Office 2007-Illustrated Introductory, Premium Video Edition
75
Security Threat: Strong password
 At least eight characters long
 Consists of upper- and lowercase
letters and numbers
 Does not include common personal
information
Security Threats: Encryption
 Encrypt important files especially when
files are on a USB drive.
 TrueCrypt: free and easy to use for Unix,
Linux, and Windows.
Computer Languages
 First generation: machine language
 Second generation: Assembly
language
 Third generation: High level such as
C, Fortran, C++, Java, VB…
Introduction to Programming
Programming languages
 First generation: machine language:
•
•
•
•
•
Consists of 0’s and 1’s
The only language understood by computers
Fast and efficient
Very hard to program, read and understand.
Used in the old times.
79
Introduction to Programming
Programming languages
 Second generation: assembly language:
•
•
•
•
English words are used in a very cryptic way
Needs an assembler to convert it to machine language
Relatively fast and efficient
Still hard to program, read and understand; but is
doable. The core parts of OS’s are usually coded in
assembly language
• Different hardware (CPUs) has different assemblers
80
Introduction to Programming
Programming languages
 Third generation: high level language:
•
•
•
•
C, C++, Java, C#,VB, Fortran,…
English-like language
Developing programs by writing source code
Source code (compiler or interpreter)  assembly language
(assembler)  machine language
• Still fast and efficient for most tasks
• Relatively easy to program, read and understand
• Portable to almost all platforms.
81
Translating Languages
English: Display the sum of A times B plus C.
C++: cout << (A * B + C);
Assembly Language:
mov eax,A
mul B
add eax,C
call WriteInt
Intel Machine Language:
A1 00000000
F7 25 00000004
03 05 00000008
E8 00500000
82
Irvine, Kip R. Assembly
Language for Intel-Based
Computers 6/e, 2010.
Introduction to Programming
What are programs?
 A program is a sequence of instructions written
in computer languages to guide computers to
perform tasks.
 A computer follows the instructions exactly and
precisely. --- an important observation of
computer programming.
83
Introduction to Programming
An example
 To calculate the average of two numbers
• Input: get the two numbers
• Processing: calculate their average
• Output: display the result
84
Software Development
 Source code (text file)
 Interpreter and compiler convert
the source to object code (.obj)
 Linker links all object codes and
libraries into executable files. (.exe)
Introduction to Programming
Compiler and Interpreter
 Compiler converts the whole program from source
code to machine code, generates an executable
program.
• Source files  object files (.obj)
• A linker links all the object files and library functions  an
executable program (.exe)
 Interpreter converts the source code one line/block at
a time and execute it.
• Advantage: easy to develop and debug the program
• Disadvantage: slow
86
Software Development
Java uses a different approach in
order to make it portable.
 Source code (text file, .java)
 Java compiler javac convert the source
to byte code (.class)
 Java Virtual Machine (JVM) interprets
the byte code and run the program.
Introduction to Programming
Write a fast program
 The slowest part of a program is I/O:
• Reduce I/O times as much as possible
• Use buffers to do I/O
 A fast computer make a program running fast:
 Fast CPU (32-bit vs. 64-bit)
 Big memory (32-bit machine can access only 3.7 Gb)
 Good video card if you like to play fast games
88
Software Development
OOP and Procedural
• Object-Oriented Programming
(OOP): Java
• Procedural (Conventional)
programming: C
• What are the differences between
them?
Software Development
Client and Server
•
•
•
•
In a distributed environment
A server provides services
A client requests services
The opposite: peer-to-peer system.
Software Development
Life Cycle
•
•
•
•
Analysis and design
Coding
Testing and Debugging
Maintenance
Software Development
Comments
• Line comments: starts with //, ends
at the end of line
• Block comments: /* … */
• Comments make the code more
readable and easy to understand.
Software Development
Components of a program
• Basic: data types and operations,…
• Code structs: decisions, loops,
functions
• Data structures: arrays, classes, and
others.
Units of Memory and Storage
 Computer understands 0 and 1 only:
on/off state, N/S pole, 0/5 volts…
 1 (“on”) and 0 (“off”) are referred to as
bits.
 Eight bits is a byte. Two bytes represent a
unique character (Unicode)
Software Development
Memory organization
Bit (0 or 1)
Byte: 8 bits (0 to 255)
Word: system dependent
Kilobyte: 1 k (1024) bytes
Megabyte: 1 M byte (1024 x 1024)
Pay attention to data types.
Units of Memory and Storage
 Kilobyte (KB) = one thousand (1024) bytes
 Megabyte (MB) = one million (1024 KB)
bytes
 Gigabyte (GB) = one billion bytes
 Terabyte (TB) = one trillion bytes
Data Representations
 Everything is a number in the computer
memory or on storages
• Numbers  numbers
• Characters  numbers by ASCII
• Grey  numbers (0-255)
• Color  three numbers (R/G/B)
Software Development
Number system
Binary number (0,1): base 2
Octal number (0,1,2,…,7): base 8
Example: o1, o7, o23
Decimal number (0,1,2,…,9): base 10
Hexadecimal number
(0,1,2,…,9,A,B,C,D,E,F)
Example: 0x1, 0x8, 0xf, 0xff
Character Storage
 Character sets
• Standard ASCII
(0 – 127)
• Extended ASCII (0 – 255)
• ANSI
(0 – 255)
• Unicode
(0 – 65,535)
99
Irvine, Kip R. Assembly
Language for Intel-Based
Computers 6/e, 2010.
Download