720 likes | 972 Views
Java Software Solutions. Chapter 1 Computer Systems. Basic Computer Processing. A computer system is made up of hardware and software . Hardware : Chips, keyboards, disks, etc. Software : Programs and the data those programs use. Key Components of a Computer System
E N D
Java Software Solutions Chapter 1 Computer Systems
Basic Computer Processing • A computer system is made up of hardware and software. • Hardware: Chips, keyboards, disks, etc. • Software: Programs and the data those programs use. • Key Components of a Computer System • central processing unit (CPU) • input/output (I/O) devices • main memory • secondary memory devices
Memory • Programs and data are held in storage devices called memory, which fall into two categories: • Main Memory • The storage device (e.g., chips on the mother board) that holds the programs and their data (software) while the programs are executing. • Secondary Memory • Devices such as hard disks that store software in a relatively permanent manner. • We save our software on secondary memory. Copies of the software are brought into main memory when we execute our programs.
Software Categories • We will be concerned with two categories of software. • The operating system. • Provides a user interface that allows us to interact with the machine (enter input and view output). • Manages computer resources such as the CPU and main memory. • Application Software • Generic term for just about any software other than the operating system. • Word processors, web browsers, games, business applications, etc. • The focus of this course is development of high-quality application programs.
What This Means to Us • We will be learning to create application programs using the Java programming language. • We will be using an IDE called NetBeans. • Current version of NetBeans is 6.0 but 5.0 and 5.5 should both be sufficient also. • IDE stands for Integrated Development Environment. (Know this)
More: What this means to us • You will dowload the J2SE Standard Edition and Development Kit JDK 5.0 () from Sun Microsystems. • You will also download Netbeans and install it. • See separate link for tutorial on this.
Analog versus Digital Signals • Analog information and/or signals are continuous, varying in direct proportion to the source of the information – like the amplitude of a wave may vary with volume. It’s period may vary with frequency… • Digital technology breaks information into discrete pieces and represents the pieces as numbers. • Music on a CD is stored digitally, as a series of numbers. The music is sampled about 40,000 times per second and each number represents the voltage level of one specific instance of the recording.
An Analog Signal versus a Digital Signal digital analog
Binary Numbers • A digital computer stores information as numbers, but those numbers are not stored as decimal numbers. • All information in a computer is stored and managed as binary values. • The binary number system has only two digits, 0 and 1. • A single binary digit is called a bit.
Converting Binary Numbers to Decimal Numbers • Starting with the rightmost bit in a binary number, each position represents a power of 2, with the rightmost bit position representing 20which is decimal 1, the next bit position representing 21which is 2 and the next representing 22 which is 4, etc. • Binary 1011 is 1* 23 or 8 + 0 * 22 or 0 +1 * 21 or 2 + 1 * 20 or 1 which adds up to 11 decimal (base 10). • Binary 11001001 is 201 decimal. • CAN YOU DO THIS???? • In general, n bits can represent 2nunique items. • Computers typically manipulate sequences of 8 bits with each sequence of 8 bits referred to as a byte.
Hardware Components • We use the term computer architecture to describe how the hardware components of a computer are put together. • A program and its data reside in main memorywhile the program runs. • The Central Processing Units (CPU) reads one program instruction from main memory and executes it. • (Called ‘fetch – execute’ cycle) • If an instruction needs data, such as the amount in a bank account, the CPU will acquire that information from central memory (which may require the access of data in secondary memory to be brought into memory first). • The process repeats until the program ends.
Peripherals • Almost all devices in a computer other than the CPU and main memory are called peripherals. • Controllersare devices that coordinate the activities of specific peripherals. • A unit with several disks attached will have a disk controller for timing, contention, data access, … • Input/Output (I/O) devices and secondary memory devices are considered peripherals.
Input/Output Devices • For our purposes, the primary I/O devices will be the keyboard and the monitor. • Output on a monitor is achieved by breaking the screen picture into small pieces called picture elements (pixels). • The pixels are represented in the computer as numbers (as is everything else) and each pixel has a specific ‘screen address.’ • A typical monitor can display a number of ‘screen resolutions’ such as 640x480, 800x720, 1280 x 1024 and others… • These numbers represent the number of pixels used to display the screen information.
Main Memory and Secondary Memory • Main memory is made up of a series of consecutive memory locations called addresses. • Associated with each memory location is a uniqueaddress. • On many computers, each memory location consists of 8 bits, or one byte of information. • The storage capacity of a device such as main memory is the total number of bytes it can hold. • A kilobyte (KB) is 1,024 bytes or 210 bytes. • Larger units are a megabyte (MB), a gigabyte (GB), and a terabyte (TB). • It is usually easier to think about these capacities by rounding them off.
Characteristics of Main Memory • When data is stored in a main memory location, it overwrites (thus destroying) any information that was previously stored there. • Main memory is usually volatile. • The information stored in it will be lost if its electrical power is turned off. (meaning of volatile in this context) • You should frequently save your work onto a secondary memory device (such as a disk) in case the power goes off.
Secondary Memory Devices • A disk is a direct access (also referred to as random access) device since the read/write head can move very quickly to the information needed. • In the prerequisite to this course, you have seen pictures of disks and how they operate. • Disk is both a direct access device and can be accessed sequentially just like a tape unit. • A tape must be sequentially processed / rewound / or fast-forwarded to get to the desired information. • A tape is thus a considered a sequential access device. • While tapes used to be the medium of choice when disks were expensive and access was controlled to those types of applications really needing disks, tapes now are almost exclusively used for backup storage. • Very inexpensive and can store huge quantities of data – often archival.
Two Other Common Termsfor Memory Devices • Random Access Memory (RAM) • The terms RAM and main memory are basically interchangeable. Sometimes called primary memory. • RAM should probably be called read-write memory since data can be both written to it and read from it. • Read-Only Memory (ROM) • After information is stored on ROM, it cannot be altered (easily). Data in ROM is ‘burned’ into the chips • Can sometimes be reprogrammed (PROMs) and sometimes we have Erasable Programmable Read Only Memories (EPROMs) (Need special equipment) • ROM chips are often embedded into the main circuit board to provide the preliminary instructions when the computer is initially turned on.
Other Memory Devices • Additional memory devices include CD-ROM, CD-Recordable (CD-R) drives, CD Rewritable (CD-RW) discs, and DVD devices. • (Know the differences) • The speed of a CD drive is expressed in multiples of x, which represents a data transfer speed of 153,600 bytes per second. • Due to improvements in technology, storage capacity approximately doubles every 18 months.
Central Processing Unit • The ‘processor’ interprets and executes your program’s instructions one at a time – sequentially. • Consists of the arithmetic and logic unit, the control unit, and the registers (usually in the ALU and Control Units) • Control unit dissects the instruction and directs the ALU to perform the calculations / comparisons using the registers. • In CPU there are additional registers: • Instruction register; program counter, more
CPU - more • The notion of a stored-program computer – a von Neumann machine – stored both program instructions and data together in main memory. • Fetch-decode-execute cycle • Fetch instruction from primary memory (RAM) • Decode instruction (to see what it is to be done) • Execute the instruction using registers • Repeat
CPU - more • CPU on a chip called a microprocessor • Circuit board also contains communications sockets, etc. for connection with video displays, etc. • Main circuit board also contains the system clock which pulses. • Instructions are in synch with these pulses • Some take a single pulse; others, more. • Often called clock speed.
Networks • A network is two or more computers connected together so they can exchange information. • Each computer of a network has its own network address. • One technique to improve network speed is to divide large messages into segments, called packets. • Packets have fixed formats and other constraints… • Then send the individual packets across the network intermixed with pieces of other messages sent by other users.
Local Area Networks and Wide Area Networks • A local-area network (LAN) is designed to span short distances and connect a relatively small number of computers. • Within a building or small area • You may connect to the LAN here in this classroom and see these slides/ take notes on them, etc. • A wide-area network (WAN) connects two or more LANs, often across long distances. • LANs connected by a WAN are often owned by different companies or organizations, and might even be located in different countries. • Generally, one computer takes care of communications.
The Internet • The Internet is a network of networks. • Grew out of U.S Governmentt ARPA (and ARPAnet) • In 2000, number of computers connected to Internet = 10 million. • A protocol is a set of rules that governs how two things communicate. • The software that controls the movement of messages across the Internet must conform to a set of protocols called TCP/IP for Transmission Control Protocol/Internet Protocol. • IP defines how information is formatted and transferred • TCP software handles the transmission and reconstituting of messages, error control, etc. (contention, …) • Every computer connected to the Internet has an IP address that uniquely identifies it among all other computers on the Internet.
IP Address vs Internet Address • An IP address is of the form 204.192.116.2. • Fortunately, Internet allows each computer to be given aunique name - often referred to as its Internet Address. • The first part of an Internet Address is the local name of a specific computer. • The rest of the name is the domain name. • Ours is: osprey.unf.edu. • Osprey is local name • unf.edu is the domain name. • Can have ‘subdomains’ within domain for departments, etc. • Last part of domain name is the ‘top level domain name’. • Some are: .edu .com, .org, .mil …
The Domain Name System • The Internet uses another software program, the Domain Name System (DNS) to translate an Internet Name to its corresponding IP Address. • Each organization connected to the Internet operates a domain server that maintains a list of all its computers and their IP addresses.
The World Wide Web • The World Wide Web (also known as WWW or the Web) makes the exchange of information easy. • Web software provides a common interface through which many different types of information can be accessed with a mouse click. • Web: based on concepts of hypertext & hypermedia. • Hypertext – based on links to support jumping as needed. To manage large amounts of information. Basically used to originally link ‘documents.’ • Hypermedia incorporates graphics, sound, animations, and video.
Hypertext and Browsers • Web Server: computer dedicated to providing access to Web documents. • Browsers load / interpret documents provided by a Web server. • Many documents are formatted using the HyperText Markup Language (HTML). • Links to Java programs can be embedded in html documents and executed through Web browsers.
Uniform Resource Locators • Information on the Web is found by identifying a Uniform Resource Locator (URL) • A URL uniquely specifies documents and other information for a browser to obtain and display. • An example URL is http://www.unf.edu • URL: • First piece of URL is a protocol (HyperText Transfer Protocol –HTTP in this example) which determines the way the browser should communicate. • The second piece is the Internet address of the machine on which the document is stored. • A typical third piece of information is the file name of the file you wish to view. • Default third piece: index.html
Another Sample URL • http://www.unf.edu/campus • In this URL, the protocol is http (HyperText Transfer Protocol). • Machine referenced is www (web server found at unf.edu) • Information is stored in a ‘file’ named campus. • www.unf.edu/~broggio refers to an index.html file stored in a directory, broggio, within some UNF web server • The Internet vs the World Wide Web • The Internet makes it possible to communicate via computers around the world. • Internet IS a network; Communications… • The Web makes that communication a straightforward and enjoyable activity via software. • The Web can be used on a LAN or even a single machine that is not connected to any network. • Information service based on a set of software applications
The Internet • A global network connecting millions of computers. More than 100 countries are linked into exchanges of data, news and opinions. • Unlike online services, which are centrally controlled, the Internet is decentralized by design. Each Internet computer, called a host, is independent. Its operators can choose which Internet services to use and which localservices to make available to the global Internet community. Remarkably, this anarchy by design works exceedingly well. • There are a variety of ways to access the Internet. Most online services, such as America Online, offer access to some Internet services. It is also possible to gain access through a commercial Internet Service Provider (ISP). • The Internet is notsynonymous with World Wide Web.
World Wide Web A system of Internetservers that support specially formatteddocuments. • The documents are formatted in a markup language called HTML (HyperText Markup Language) that supports links to other documents, as well as graphics, audio, and video files. • This means you can jump from one document to another simply by clicking on hot spots. Not all Internet servers are part of the World Wide Web. • There are several applications called Web browsers that make it easy to access the World Wide Web; Two of the most popular being Netscape Navigator and Microsoft's Internet Explorer. • World Wide Web is not synonymous with the Internet.
Programming • The rest of this course explores the process of creating programs using Java. • All of the software we have discussed including the Internet and Web protocols are programs that some programmer has written. • Next section discusses the purpose of programming in general and introduces the Java Programming Language.
Problem Solving – Know this! • The purpose of writing a program is to solve a problem. Problem solving consists of multiple steps: • Understanding the problem (requirements) • Breaking the problem into manageable pieces. (Specifyingtherequirements) (capturing, modeling…) • Designing a solution. (various kinds / levels) • Considering alternatives to solution and refining solution. • Implementing the solution. (Programming) • Testing the solution and fixing any problems that exist. • Deployment and • Maintenance
How do these Steps Apply to You? • By the time you complete a degree in Computer and Information Sciences you will have experienced all of these problem solving steps and practiced them often. • Here, emphasis is on learning programming and much of the other work is done for you. • But be aware: the most common mistakes are: • 1. Not fullystudying and understanding the problem; • 2. Designing a solution. • In learning how to program, we MUST understand where actual programming ‘fits’ in solving a problem!
The Java Programming Language • A programming language defines a set of rules: • That determine exactly how a programmer can combine words and symbols of the language into programming statements. • Called syntax. • Programming statements are the instructions that are carried out when the program is executed. • Java is an object-oriented programming language. • Java is one of the fastest growing programming technologies of all time.
Reasons Why Java is Popular • Java is the first programming language to deliberately embrace the concept of writing programs that can be executed on the Web. • Moreso, Java is a useful generalpurpose programming language. • The Java language is accompanied by a libraryof extra software that we can use when developing programs. • The library provides the ability to create graphics, communicate over networks, and interact with databases. • The set of supporting libraries is huge and versatile.
A Java Program • See Lincoln.java on page 30. /* Lewis/Loftus 6/11/2003 Lincoln.java demonstrates the basic structure of a Java Application. */ public class Lincoln { // starts the class definition These are ‘single line’ comments // Prints a presidential quote. public static void main (String[] args) // ‘main’ is a method name { System.out.println (“A quote by Abraham Lincoln:“); // invokes another method, ‘println’ from an object, System.out System.out.println (“Whatever you are, be a good one.”); // invokes another method } } // ends the class definition
What to Notice in Lincoln.java • The first few lines between /* and */ are comments. • Comments don’t affect what the program does but are included to make the program easier to understand. • Comments included in a program are called inline documentation. • The comment symbols /* and */ can surround a multiline comment. • The comment symbol // can be used at the beginning of a single-line comment.
What to Notice (2) • The rest of the Lincoln.java program is a class name and a class definition. • This class name is Lincoln. • The class definition runs from the first opening brace { to the final closing brace }. • Inside the class definition is a single-line comment describing the purpose of the main() method. • A method is a group of programming statements that are given a name (main).
The println() Method • The two lines of code in the main() method invoke another method called println() (pronounced print line). • Our program must invoke, or call, a method at the point where we want the method to execute. • The println() method prints the specified characters that were sent to it within double quotes. • The characters to be printed are represented as a character string, enclosed in double quote characters (“The string you want to print.”). • The code for the println()method definition is in a library in the object System.out. • We just need to call the println() method and pass it the String you want to display. • We do not know (or care) how println actually works. We merely send it the data to be printed within quotes.
Another Look at Lincoln.java • See Lincoln.java on page 30. /* Lewis/Loftus 6/11/2003 Lincoln.java demonstrates the basic structure of a Java Application. */ public class Lincoln // The class name is the same as the file name, but { // without the .java extension. // Prints a presidential quote. public static void main (String[] args) // This line is the method ‘header’ { // The method body starts with the left bracket. // The println() method is found in the System class in a Java library System.out.println(“A quote by Abraham Lincoln:“); System.out.println(“Whatever you a re, be good one.”); } }
The Method Named main() • All java applications have a method named main. • This is where processing begins for every Java program. • The main method definition in Java is always preceded by the words public, static, and void. (later) • Each programming statement in the main method is executed, one at a time in order, until end of method. • Some statements in main method may call (invoke) other methods in other objects. If so, that method executes and control then returns to the next statement in main. • After the last statement in main executes, the program terminates. • The use of String and args will be explained later.
Comments • Comments are notes in the text of a program to assist that/any programmer who must later modify or simply understand the code. • The original programmer often will not remember later the details of the program he or she has written. • Comments within the text of a program are referred to as internal documentation. • Good internal and external documentation are essential.
Two Types of Comments • A single-line comment in Java takes the form: • // This is a comment. • A multi-line comment takes the form: /* This is one comment that spans several lines. */ • It is also permissible to use the above notation for a single-line comment. /* This is a comment */
External Documentationjavadoc • The Java SDK (Software Development Kit) also specifies a means of creating external documentation using a software tool called javadoc . (See Appendix I). Here is how it works: • If you place a second asterisk following the /* at the beginning of a comment, the content of the comment can be used to automatically generate external documentation about your program using a tool called javadoc . • Example: /** javadoc will print this comment for use as external documentation. */ (Much more later).
Good Programming Practices • Appendix F of our text presents guidelines for good programming practices and includes specific techniques for documenting programs. • You can assume the reader is computer literate and familiar with Java. • However, you must assume the reader knows almost nothing about what the program is supposed to do. • A section of code that seems intuitive to you when you write it might not seem so to another reader or to yourself later. • You will be expected to apply the coding guidelines in as presented on my web page and in an appendix in the rear of this textbook as you write your programs.
Identifiers and Reserved Words • The words used when writing programs are called identifiers. (algebraic ‘variables?’) • There are three categories of identifiers: • Words that we make up (Lincoln and args in program 1.1) • Words that another programmer chose (String, System, out, println, and main). • Often these are words that were chosen by a programmer for code that became part of a Java library; • Now available for use by all Java programmers. • Words that are reserved for special purposes in the language (class, public, static, and void). • The designers of the Java language chose these words.
The Reserved Words • Reserved words are identifiers that have special meaning in a programming language. • In the Lincoln program, they are class, public, static, and void. //******************************************************************** // Lincoln.java Author: Lewis/Loftus // // Demonstrates the basic structure of a Java application. //******************************************************************** public class Lincoln { //----------------------------------------------------------------- // Prints a presidential quote. //----------------------------------------------------------------- public static void main (String[] args) { System.out.println ("A quote by Abraham Lincoln:"); System.out.println ("Whatever you are, be a good one."); } }
Reserved Words • The Java reserved words – these words cannot be used for any other purpose, such as naming a class or method. abstract boolean break byte case catch char class const continue default do double else extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient true try void volatile while