Chapter Thirteen Programming Languages and Program Development

Size: px
Start display at page:

Download "Chapter Thirteen Programming Languages and Program Development"

Transcription

1 Chapter Thirteen Programming Languages and Program Development

2 Objectives After completing this chapter, you will be able to: 1 Differentiate between machine and assembly languages 2 Identify and discuss the purpose of procedural programming languages, and describe the features of C and COBOL 3 Identify and discuss the characteristics of these object-oriented programming languages and program development tools: Java,.NET, C++, C#, F#, Visual Studio, visual programming languages, Delphi, and PowerBuilder 4 Identify the uses of these other programming languages and program development tools: 4GLs, classic programming languages, application generators, and macros 5 Describe various ways to develop Web pages, including HTML and XHTML, XML and WML, scripting languages, DHTML, Ruby on Rails, Web 2.0 development, and Web page authoring software 6 Identify the uses of popular multimedia authoring programs 7 List the six steps in the program development life cycle 8 Differentiate between structured design and object-oriented design 9 Explain the basic control structures and design tools used in designing solutions to programming problems nons nstrin ing=" Database=DB home : Us ername DB Prov ider = " Data ab e ovider DB..connect Select SQL1 = " Selec id, name, antity from all QueryS QL 1 = " wheree between d ode(name, QuerySQL2 = " grou p SelectQuery = Sele ct L1 & QuerySQL1 & QuerySQL2 Exec ute Query; Commit Transaction; Select new da ta Form Nav igation If Key eyascii = 13 The If Not Chr (KeyAsc

3 664 Chapter 13 Programming Languages and Program Development Computer Programs and Programming Languages Although you may never write a computer program, information you request may require a programmer to create or modify a program. Thus, you should understand how programmers develop programs to meet information requirements. A computer program is a series of instructions that directs a computer to perform tasks. A computer programmer, often called a developer, creates and modifies computer programs. To create a program, programmers sometimes write, or code, a program s instructions using a programming language. A programming language is a set of words, abbreviations, and symbols that enables a programmer to communicate instructions to a computer. Other times, programmers use a program development tool to create a program. A program that provides a user-friendly environment for building programs often is called a program development tool. Just as humans speak a variety of languages (English, Spanish, French, and so on), programmers use a variety of programming languages and tools to create programs (Figure 13-1). Several hundred programming languages exist today. Each language has its own rules for writing the instructions. Languages often are designed for specific purposes, such as scientific applications, business solutions, or Web page development. When solving a problem or building a solution, programmers often use more than one language; that is, they integrate the languages. Two types of languages are low-level and high-level. A low-level language is a programming language that is machine dependent. A machinedependent language runs on only one particular type of computer. These programs are not easily portable to other types of computers. Each Figure 13-1 Programmers must decide which programming languages and program development tools to use when they create programs.

4 Programming Languages and Program Development Chapter language instruction in a low-level language usually equates to a single machine instruction, discussed further in the next section. With a high-level language, by contrast, each language instruction typically equates to multiple machine instructions. High-level languages often are machine independent. A machine-independent language can run on many different types of computers and operating systems. The following pages discuss low-level languages, as well as several types of high-level languages. Low-Level Languages Two types of low-level languages are machine languages and assembly languages. Machine language, known as the first generation of programming languages, is the only language the computer directly recognizes (Figure 13-2). Machine language instructions use a series of binary digits (1s and 0s) or a combination of numbers and letters that represents binary digits. The binary digits correspond to the on and off electrical states. As you might imagine, coding in machine language is tedious and time-consuming. With an assembly language, the second generation of programming languages, a programmer writes instructions using symbolic 0000DE 5A50 35AA 015AC 0000E2 47F B E C A 4E50 30D6 010D E F075 30D6 003E 010D8 0003E F50 30D6 010D C 58E0 30B6 010B FE E0 30BA 010BC B A50 304E C 5B A 0105C E0 30BA 010BC FE Figure 13-2 A sample machine language program, coded using the hexadecimal number system. For information about hexadecimal, see Appendix C at the back of this book.

5 666 Chapter 13 Programming Languages and Program Development comments begin with an asterisk instruction codes (Figure 13-3). Symbolic instruction codes are meaningful abbreviations. With an assembly language, a programmer writes abbreviations such as A for addition, C for compare, L for load, and M for multiply. Assembly languages also use symbolic addresses. A symbolic address is a meaningful name that identifies a storage location. For example, a programmer can use the name RATE to refer to the storage location that contains a pay rate. Despite these advantages, assembly languages can be difficult to learn. In addition, programmers must convert an assembly language program into machine language before the computer can execute, or run, the program. That is, the computer cannot execute the assembly source program. A source program is the program that contains the language instructions, or code, to be converted to machine language. To convert the assembly language source program into machine language, programmers use a program called an assembler. One assembly language instruction usually equates to one machine language instruction. In some cases, however, the assembly language includes macros. An assembly language macro generates many machine language instructions for a single assembly language instruction. Macros save the programmer time during program development. Today, assembly languages primarily are used to increase the performance of critical tasks or to control hardware. * THIS MODULE CALCULATES THE REGULAR TIME PAY CALCSTPY EQU * ST 14,SAVERTPY SR 4,4 SR 7,7 SR 5,5 PACK DOUBLE,RTHRSIN calculates CVB 4,DOUBLE regular time PACK DOUBLE,RATEIN pay CVB 7,DOUBLE ST 7,RATE MR 4,7 ST 5,RTPAY L 14,SAVERTPY BR 14 * THIS MODULE CALCULATES THE OVERTIME PAY CALCOTPY EQU * ST 14,SAVEOTPY TEST1 CLI CODEIN,C'0' BH TEST2 SR 5,5 A 5,=F'0' ST 5,OTPAY B AROUND TEST2 SR 4,4 evaluates SR 7,7 overtime hours SR 5,5 and calculates PACK DOUBLE,OTHRSIN overtime pay CVB 4,DOUBLE PACK DOUBLE,RATEIN CVB 7,RATE MR 4,7 MR 4,=F'1.5' ST 5,OTPAY AROUND L 14,SAVEOTPY BR 14 * THIS MODULE CALCULATES THE GROSS PAY CALCGPAY EQU * ST 14,SAVEGPAY SR 5,5 A 5,RTPAY A 5,OTPAY ST 5,GRPAY L 14,SAVEGPAY BR 14 calculates gross pay Figure 13-3 An excerpt from an assembly language payroll program. The code shows the computations for regular time pay, overtime pay, and gross pay and the decision to evaluate the overtime hours. Procedural Languages The disadvantages of machine and assembly (low-level) languages led to the development of procedural languages in the late 1950s and 1960s. In a procedural language, the programmer writes instructions that tell the computer what to accomplish and how to do it. With a procedural language, often called a third-generation language (3GL), a programmer uses a series of English-like words to write instructions. For example, ADD stands for addition or PRINT means to print. Many 3GLs also use arithmetic operators such as * for multiplication and 1 for addition. These English-like words and arithmetic symbols simplify the program development process for the programmer. As with an assembly language program, the 3GL code (instructions) is called the source program. Programmers must convert this source program into machine language before the computer can execute the program. This translation process often is very complex, because one 3GL source program instruction translates into many machine language instructions. For 3GLs, programmers typically use either a compiler or an interpreter to perform the translation. A compiler is a separate program that converts the entire source program into machine language before executing it. The machine language version that results from compiling the 3GL is called the object code or object program. The compiler stores the object code on storage media for execution later.

6 Programming Languages and Program Development Chapter While it is compiling the source program into object code, the compiler checks the source program for errors. The compiler then produces a program listing that contains the source code and a list of any errors. This listing helps the programmer make necessary changes to the source code and correct errors in the program. Figure 13-4 shows the process of compiling a source program. A compiler translates an entire program before executing it. An interpreter, by contrast, translates and executes one statement at a time. An interpreter reads a code statement, converts it to one or more machine language instructions, and then executes those machine language instructions. It does this all before moving to the next code statement in the program. Each time the source program runs, the interpreter translates and executes it, statement by statement. An interpreter does not produce an object program. Figure 13-5 shows the process of interpreting a program. One advantage of an interpreter is that when it finds errors, it displays feedback immediately. The programmer can correct any errors before the interpreter translates the next line of code. The disadvantage is that interpreted programs do not run as fast as compiled programs. This is because an interpreter must translate the source program to machine language each time the program executes. Once a program is compiled, by contrast, users simply execute the object code to run the program. Many programming languages include both an interpreter and a compiler. In this case, the programmer can use the interpreter during program development. When the program is complete and error free, the programmer can compile the program so that it runs faster when it is placed into production for users to execute. Source Program Compiler Object Program Results Source Program Data Program Listing Data Interpreter * COMPUTE REGULAR TIME PAY MULTIPLY REGULAR-TIME-HOURS BY HOURLY-PAY-RATE GIVING REGULAR-TIME-PAY. * COMPUTE OVERTIME PAY IF OVERTIME-HOURS > 0 COMPUTE OVERTIME-PAY = OVERTIME-HOURS * 1.5 * HOURLY-PAY-RATE ELSE MOVE 0 TO OVERTIME-PAY. * COMPUTE GROSS PAY ADD REGULAR-TIME-PAY TO OVERTIME-PAY GIVING GROSS-PAY. Results Figure 13-5 With an interpreter, one line of the source program at a time is converted into machine language and then immediately executed by the computer. If the interpreter encounters an error while converting a line of code, an error message immediately is displayed on the screen and the program stops. Figure 13-4 A compiler converts the source program into a machine language object program. If the compiler encounters any errors, it records them in the program-listing file, which the programmer may print when the entire compilation is complete. When a user wants to run the program, the object program is loaded into the memory of the computer and the program instructions begin executing.

7 668 Chapter 13 Programming Languages and Program Development C For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Web Link resource for this book, and then click C. comments begin with a slash followed by an asterisk Hundreds of procedural languages exist. Only a few, however, are used widely enough for the industry to recognize them as standards. These include C and COBOL. To illustrate the similarities and differences among these programming languages, the following figures show program code in these languages. The code solves a simple payroll problem computing the gross pay for an employee. The process used to compute gross pay can vary from one system to another. The examples on the following pages use a simple algorithm, or set of steps, to help you easily compare one programming language with another. Read Innovative Computing 13-1 to find out about some useful and fun online programs. C The C programming language, developed in the early 1970s by Dennis Ritchie at Bell Laboratories, originally was designed for writing system software. Today, many programs are written in C (Figure 13-6). This includes operating systems and application software such as word processing and spreadsheet programs. C is a powerful language that requires professional programming skills. Many programmers use C for business and scientific problems. C runs on almost any type of computer with any operating system, but it is used most often with the UNIX and Linux operating systems. calculates regular time pay /* Compute Regular Time Pay */ rt_pay = rt_hrs * pay_rate; /* Compute Overtime Pay */ if (ot_hrs > 0) ot_pay = ot_hrs * 1.5 * pay_rate; else ot_pay = 0; /* Compute Gross Pay */ gross = rt_pay + ot_pay; calculates gross pay /* Print Gross Pay */ printf("the gross pay is %d\n", gross); evaluates overtime hours and calculates overtime pay prints gross pay Figure 13-6 An excerpt from a C payroll program. The code shows the computations for regular time pay, overtime pay, and gross pay; the decision to evaluate the overtime hours; and the output of the gross pay. INNOVATIVE COMPUTING 13-1 Online Calculators Answer Life s Questions At practically every phase of life, people can benefit from some sort of calculator. For example, one program can help expectant parents calculate the date their child will be born and another can generate possible baby names. Once the child is born, they can use another calculator that attempts to estimate the total cost of raising the child through the teenage years. One Web site has collected a wide variety of calculators: Your Life, Calculated. This MSN-sponsored site organizes the calculators in a variety of categories. The Career section includes a millionaire calculator to determine how much money will need to be saved each month to reach $1 million, and it also includes amortization tables and mortgage and car loan calculators. Other tools are the tip calculator, a calculator that determines the chances of a successful personal relationship, the body mass index to measure body fat based on height and weight, the college cost calculator, and the financial aid calculator. When using online calculators, keep in mind that some are subjective in nature, and the results reflect the thoughts and/or opinions of the calculator s author. For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Innovative Computing resource for this book, and then click Online Calculators. COBOL COBOL (COmmon Business-Oriented Language) evolved out of a joint effort between the United States government, businesses, and major universities in the early 1960s (Figure 13-7). Naval officer Grace Hopper, a pioneer in computer programming, was a prime developer of COBOL. COBOL is a programming language designed for business applications. Although COBOL programs often are lengthy, their English-like statements make the code easy to read, write, and maintain. COBOL especially is useful for processing transactions, such as payroll and billing, on mainframe computers. COBOL programs also run on other types of computers.

8 Programming Languages and Program Development Chapter comments begin with an asterisk * COMPUTE REGULAR TIME PAY MULTIPLY REGULAR-TIME-HOURS BY HOURLY-PAY-RATE GIVING REGULAR-TIME-PAY. calculates regular time pay * COMPUTE OVERTIME PAY IF OVERTIME-HOURS > 0 COMPUTE OVERTIME-PAY = OVERTIME-HOURS * 1.5 * HOURLY-PAY-RATE ELSE MOVE 0 TO OVERTIME-PAY. evaluates overtime hours and calculates overtime pay * COMPUTE GROSS PAY ADD REGULAR-TIME-PAY TO OVERTIME-PAY GIVING GROSS-PAY. * PRINT GROSS PAY MOVE GROSS-PAY TO GROSS-PAY-OUT. WRITE REPORT-LINE-OUT FROM DETAIL-LINE AFTER ADVANCING 2 LINES. calculates gross pay prints gross pay Figure 13-7 An excerpt from a COBOL payroll program. The code shows the computations for regular time pay, overtime pay, and gross pay; the decision to evaluate the overtime hours; and the output of the gross pay. Object-Oriented Programming Languages and Program Development Tools Computer programmers use an object-oriented programming (OOP) language or objectoriented program development tool to implement an object-oriented design. Recall from Chapter 12 that an object is an item that can contain both data and the procedures that read or manipulate that data. An object represents a real person, place, event, or transaction. A major benefit of OOP is the ability to reuse and modify existing objects. For example, once a programmer creates an Employee object, it is available for use by any other existing or future program. Thus, programmers repeatedly reuse existing objects. For example, the payroll program and health benefits program both use the Employee object. That is, the payroll program would use it to process employee paychecks and the health benefits program would use it to process health insurance payments. Programs developed using the object-oriented approach have several advantages. The objects can be reused in many systems, are designed for repeated use, and become stable over time. In addition, programmers create applications faster because they design programs using existing objects. In addition to being able to work with objects, an OOP language is event driven. An event is an action to which the program responds. Examples of events include pressing a key on the keyboard, typing a value in a text box, moving the mouse, clicking a button, or speaking an instruction. An event-driven program checks for and responds to events. Some programming languages are event driven but are not complete OOP languages. Other programming languages, such as Java, C#, F#, C++, and the latest versions of Visual Basic, are complete object-oriented languages. Object-oriented programming languages and program development tools work well in a RAD environment. RAD (rapid application development) is a method of developing software, in which a programmer writes and implements a program in segments instead of waiting until the entire program is completed. Users begin working with sections of the program as they are completed. An important concept in RAD is the use of prebuilt components. For example, programmers do not have to write code for buttons and text boxes on Windows forms because they already exist in the programming language or tools provided with the language. Most object-oriented program development tools are IDEs. An IDE (integrated development environment) includes tools for building graphical user interfaces, an editor for entering program code, a compiler and/or interpreter, and a

9 670 Chapter 13 Programming Languages and Program Development Java Platforms For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Web Link resource for this book, and then click Java Platforms. debugger (to remove errors, which is discussed later in the chapter). Some IDEs work with a single programming language; others, such as Eclipse support multiple languages. Eclipse is an open source, advanced development environment that works with a variety of programs including Java and C++, which are discussed next. The following sections discuss a variety of object-oriented programming languages and program development tools. Java Java is an object-oriented programming language developed by Sun Microsystems. Figure 13-8 shows a portion of a Java program and the window that the program displays. When programmers compile a Java program, the resulting object code typically is called bytecode, which is machine independent. Java then uses a just-in-time ( JIT ) compiler to convert the bytecode into machine-dependent code that is executed immediately. Programmers use Java Platform, Standard Edition ( Java SE ), developed by Sun Microsystems, to create stand-alone programs for desktop computers and servers. Similarly, programmers use Java Platform, Micro Edition ( Java ME ) to create programs for smart phones and other mobile devices. Java EE ( Java Platform, Enterprise Edition) is a set of technologies built on Sun s Java SE that allows programmers to develop and deploy large applications for organizations, often used in Web 2.0 environments for Web applications. The goal of Java EE is to simplify and reduce program development time by developing standard, reusable objects..net The Microsoft.NET Framework, or.net (pronounced dot net), is a set of technologies that allows almost any type of program to run on the Internet or an internal business network, as well as stand-alone computers and mobile devices. Similarly, ASP.NET is a Web application framework that provides the tools necessary for the creation of dynamic Web sites. Features of.net include the CLR and classes. The CLR (Common Language Runtime) is an environment that enables programmers to develop.net programs using a variety of languages. A.NET-compatible language compiles the program source code into Microsoft Intermediate Language (MSIL). The CLR then converts the MSIL into object code using a justin-time compiler. The CLR supports classes so that.net programmers can access a variety of common functions in their programs, which saves development time. Using.NET and/or ASP.NET, programmers easily can develop Web applications, Web services, and Windows programs. Examples of languages that support.net include C++, C#, F#, Visual Basic, public class BodyMassApplet extends Applet implements ActionListener { //declare variables Image logo; //declare an Image object int inches, pounds; double meters, kilograms, index; //construct components Label companylabel = new Label("THE SUN FITNESS CENTER BODY MASS INDEX CALCULATOR"); Label heightlabel = new Label("Enter your height to the nearest inch "); TextField heightfield = new TextField(10); Label weightlabel = new Label ("Enter your weight to the nearest pound "); TextField weightfield = new TextField(10); Button calcbutton = new Button("Calculate"); Label outputlabel = new Label( "Click the Calculate button to see your Body Mass Index."); } } inches = Integer.parseInt(heightField.getText()); pounds = Integer.parseInt(weightField.getText()); meters = inches / 39.36; kilograms = pounds / 2.2; index = kilograms / Math.pow(meters,2); outputlabel.settext("your BODY MASS INDEX IS " + Math.round(index) + "."); public void paint(graphics g) { g.drawimage(logo,125,160,this); } Figure 13-8 A portion of a Java program and the window the program displays.

10 Programming Languages and Program Development Chapter Delphi, and PowerBuilder. The following sections discuss each of these languages. C++ Developed in the 1980s by Bjarne Sroustrup at Bell Laboratories, C++ (pronounced SEE-plus-plus) is an objectoriented programming language that is an extension of the C programming language. C++ includes all the elements of the C language, plus it has additional features for working with objects, classes, events, and other object-oriented concepts (Figure 13-9). Programmers commonly use C++ to develop database and Web applications. Much application software, such as word processing and spreadsheet programs, also is written in C++. A programmer does not need C programming experience to be a successful C++ programmer. C# C# (pronounced SEE-sharp) is an object-oriented programming language based on C++ that was developed primarily by Anders Hejlsberg, Microsoft chief architect and distinguished engineer. C# has been accepted as a standard for Web applications and XML-based Web services. Recall from Chapter 9 that Web services describe standardized software that enables programmers to create applications that communicate with other remote computers over the Internet or on an internal business network. Like Java, C# uses a JIT compiler but its resulting code is MSIL. C# applications can be built on existing C or C++ applications, saving development time for companies migrating from C or C++. F# F# (pronounced EFF-sharp), which is included with the latest version of Visual Studio (discussed in the next section), is a programming language that combines the benefits of an object-oriented language with the benefits of a functional language. A functional language is a programming language whose natural programming structure is useful in mathematical programs. Benefits of programs written in F# include easy access to.net libraries and performance similar to that of C# programs. // portion of a C++ program that allows users to create // a new zip code from a string or a number and expand // zip codes, as appropriate, to a 10-digit number ZipC::ZipC( const unsigned long zipnum ) { ostringstream strint; strint << zipnum; code = strint.str(); } const string ZipC::getCode() { return code; } void ZipC::setCode(const string newcode) { code = newcode; } void ZipC::expand( const string suffix ) { if(code.length() == 5 && suffix.length() == 4) { code += "-"; code.append(suffix); } } Figure 13-9 Sample C++ program. Visual Studio Visual Studio is Microsoft s suite of program development tools that assists programmers in building programs for Windows, Windows Mobile, or operating systems that support.net. Visual Studio includes enhanced support for building security and relia bility into applications through its programming languages, RAD tools, IDE, a specialized query language called LINQ (Language Integrated Query), and other resources that reduce development time. For example, Visual Studio includes code snippets, which are prewritten code and templates associated with common programming tasks. Visual Studio Tools for Office (VSTO) is a set of tools integrated in Visual Studio that enables developers to create programs that work with Microsoft s Office suite, including Word, Excel, PowerPoint, Outlook, and Project. The next sections discuss the programming languages in the Visual Studio suite. // small size? // length ok? Visual Studio Tools for Office For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Web Link resource for this book, and then click Visual Studio Tools for Office.

11 672 Chapter 13 Programming Languages and Program Development Visual Basic is a programming language that allows programmers easily to build complex task-oriented object-based pro grams. Visual Basic is based on the BASIC pro gram ming language, which was developed by Micro soft Corporation in the early 1990s. This language is easy to learn and use. Thus, Visual Basic is ideal for beginning programmers. The first step in building a Visual Basic program often is to design the graphical user interface using Visual Basic objects (Steps 1 and 2 in Figure 13-10). Visual Basic objects include items such as buttons, text boxes, and labels. Next, the programmer writes instructions to define any actions that should occur in response to specific events (Step 3 in Figure 13-10). Finally, the programmer generates and tests the final program (Step 4 in Figure 13-10). To learn more about how to design a user interface, complete the Learn How To 1 activity on pages 708 and 709. An event in Visual Basic might be the result of an action that a user initiates. For example, when a user clicks a button in a Visual Basic program, the program executes the Click event. Programmers create events in Visual Basic by writing instructions (code) with its built-in programming language. Creating a Visual Basic Program Step 1 The developer designs the user interface, such as for the mobile device shown here. Linear Feet is a text box in which the user enters data. Pine, Oak, and Cherry are option buttons the user can click to choose the wood type. Calculate and Clear are buttons. All other objects are labels. labels option buttons label text box Step 2 The developer assigns properties to each object. Objects include text boxes, option buttons, buttons, labels, and the form itself. button Step 4 The developer tests the program. The Cost Estimate is displayed after the user clicks the Calculate button. Step 3 The developer writes code to define the action of each event the user triggers. Figure This figure shows how to create a Visual Basic program.

12 Programming Languages and Program Development Chapter Visual C++ is a programming language based on C++. Not only is Visual C++ a powerful object-oriented pro gramming language, it enables program mers to write Windows, Windows Mobile, and.net applications quickly and effi ciently. Features that make Visual C++ so powerful include reusable templates, direct access to machine level memory locations, an optimizing compiler, and advanced error reporting. Visual C# is a programming language that combines programming elements of C++ with an easier, rapid development environment. The purpose of Visual C# is to take the complexity out of Visual C++ and still provide an object-oriented programming language. Programmers familiar with the C/C++ programming language family often migrate to the easier-to-use Visual C#. Visual Programming Languages A visual programming language is a language that uses a visual or graphical interface for creating all source code. The graphical interface, called a visual programming environment (VPE), allows programmers to drag and drop objects to develop programs. Examples of visual programming languages include Alice, Mindscript, and Prograph. Delphi Borland s Delphi is a powerful program development tool that is ideal for building large-scale enterprise and Web applications in a RAD environment (Figure 13-11). Programmers use Delphi to develop programs quickly for Windows, Linux, and.net platforms. Delphi also provides visual modeling tools based on the UML. Recall from Chapter 12 that the UML (Unified Modeling Language) has been adopted as a standard notation for object modeling and development. With Delphi, programmers easily link the UML designs to the working solutions. Figure The latest version of Delphi, shown in this figure, makes Windows development tasks faster, better, and easier by supporting Microsoft s.net Framework with both Delphi and C# languages, as well as Delphi for Windows applications in a RAD environment.

13 674 Chapter 13 Programming Languages and Program Development PowerBuilder PowerBuilder, developed by Sybase, is another powerful program development RAD tool that is best suited for Web-based,.NET, and largescale enterprise object-oriented applications. Programmers also use PowerBuilder to develop small- and medium-scale client/server applications. PowerBuilder includes a consistent interface, wizards, and many other features that enable programmers to develop applications quickly (Figure 13-12). In terms of complexity, PowerBuilder is comparable to Delphi. Figure PowerBuilder is a program development RAD tool ideal for building large-scale and Web-based applications. QUIZ YOURSELF 13-1 Instructions: Find the true statement below. Then, rewrite the remaining false statements so that they are true. 1. An interpreter is a program that converts an entire source program into machine language before executing it. 2. C and COBOL are examples of assembly languages. 3. C# is an object-oriented programming language based on PowerBuilder. 4. Delphi is an object-oriented programming language developed by Sun Microsystems. 5. Two types of low-level languages are machine languages and source languages. 6. Visual Studio is Microsoft s suite of program development tools that assists programmers in building programs for Windows, Windows Mobile, or operating systems that support.net. Quiz Yourself Online: To further check your knowledge of pages 664 through 674, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Quiz Yourself resource for this book, and then click Objectives 1 3. SQL Other Programming Languages and Development Tools The following sections discuss a variety of other programming languages and program development tools. 4GLs A 4GL ( fourth-generation language) is a nonprocedural language that enables users and programmers to access data in a database. With a nonprocedural language, the programmer writes English-like instructions or interacts with a graphical environment to retrieve data from files or a database. Nonprocedural languages typically are easier to use than procedural languages. Many object-oriented program development tools use 4GLs. One popular 4GL is SQL. As discussed in Chapter 10, SQL is a query language that allows users to manage, update, and retrieve data in a relational DBMS (Figure 13-13). These powerful languages allow database administrators to define a database and its structure. They also enable users to maintain and access the data in the database. SELECT LAST_NAME, FIRST_NAME, GROSS_PAY FROM EMPLOYEE WHERE OVERTIME_HOURS > 0 ORDER BY LAST_NAME; LAST_NAME FIRST_NAME GROSS_PAY Antiqua Martin Charles Leslie Guillan Anita results Figure SQL is a 4GL that can be used to query database tables. This query produces an alphabetical list of those employees who receive overtime pay; that is, their overtime hours are greater than 0.

14 Programming Languages and Program Development Chapter FAQ 13-1 Why is it necessary for programmers to know SQL? Programmers often write programs that interact with a database in some fashion. For this reason, programmers must know SQL so that their programs can communicate with the database. For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 FAQ resource for this book, and then click SQL. Classic Programming Languages In addition to the programming languages discussed on the previous pages, programmers sometimes use the languages listed in Figure 13-14, which were more popular in the past than today. Read Looking Ahead 13-1 for a look at the future of programming. LOOKING AHEAD 13-1 Selecting Programming Languages with Long Lives Choosing the best programming language can be a dilemma that affects programmers for years to come. If they select a language that remains popular for at least five years, chances are that employees es at that time will be able to modify and enhance the code. COBOL, for example, was developed in the 1960s, and COBOL programmers still are being sought on popular employment Web sites. Some languages that are experiencing popularity today are expected to continue growing in use. JavaScript, for example, is gaining momentum, as are Ruby on Rails and Perl. Many programs for the iphone are written in Cocoa, and Google s App Engine uses Python, so programmers knowing these languages are in demand. As programming evolves, some trends to watch are the blending of popular languages, the development of scripting languages for the Web and for cloud computing, the ability to insert customized code easily in a browser, and the rise of amateur programmers who will use new, graphical languages to improve their computing experience. For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Looking Ahead resource for this book, and then click Programming Future. Classic Programming Languages Ada ALGOL APL BASIC Forth FORTRAN HyperTalk LISP Logo Modula-2 Pascal PILOT PL/1 Prolog RPG Smalltalk Derived from Pascal, developed by the U.S. Department of Defense, named after Augusta Ada Lovelace Byron, who is thought to be the first female computer programmer ALGOrithmic Language, the first structured procedural language A Programming Language, a scientific language designed to manipulate tables of numbers Beginners All-purpose Symbolic Instruction Code, developed by John Kemeny and Thomas Kurtz as a simple, interactive problem-solving language Similar to C, used for small computerized devices FORmula TRANslator, one of the first high-level programming languages used for scientific applications An object-oriented programming language developed by Apple to manipulate cards that can contain text, graphics, and sound LISt Processing, a language used for artificial intelligence applications An educational tool used to teach programming and problem solving to children A successor to Pascal used for developing system software Developed to teach students structured programming concepts, named in honor of Blaise Pascal, a French mathematician who developed one of the earliest calculating machines Programmed Inquiry Learning Or Teaching, used to write computer-aided instruction programs Programming Language One, a business and scientific language that combines many features of FORTRAN and COBOL PROgramming LOGic, used for development of artificial intelligence applications Report Program Generator, used to assist businesses with generating reports and to access/update data in databases Object-oriented programming language Figure Classic programming languages.

15 676 Chapter 13 Programming Languages and Program Development Figure 13-15a (form design) Application Generators An application generator is a program that creates source code or machine code from a specification of the required functionality. When using an application generator, a programmer or user works with menu-driven tools and graphical user interfaces to define the desired specifications. Application generators most often are bundled with or are included as part of a DBMS. An application generator typically consists of a report writer, form, and menu generator. As discussed in Chapter 10, a report writer allows you to design a report on the screen, retrieve data into the report design, and then display or print the report. A form is a window on the screen that provides areas for entering or changing data in a database. Figure shows a sample form design and the resulting form it generates showing sample data a user may enter in the form. A menu generator enables you to create a menu for the appli cation options. If you create three reports and two forms for an application, for example, the menu would contain at least six options: one for each report, one for each form, and one to exit, or quit, the application. Macros A macro is a series of statements that instructs an application how to complete a task. Macros allow users to automate routine, repetitive, or difficult tasks in application software such as word processing, spreadsheet, or database programs. That is, users can create simple programs within the software by writing macros. You usually create a macro in one of two ways: (1) record the macro or (2) write the macro. If you want to automate a routine or repetitive task such as formatting or editing, you would record a macro. A macro recorder is similar to a movie camera because both record all actions until turned off. To record a macro, start the macro recorder in the software. Then, perform the steps to be part of the macro, such as clicks of the mouse or keystrokes. Once the macro is recorded, you can run it anytime you want to perform that same sequence of actions. For example, if you always print three copies of certain documents, you could record the actions required to print three copies. To print three copies, you would run the macro called PrintThreeCopies. When you become familiar with programming techniques, you can write your own macros instead of recording them. Many programs use Visual Basic for Applications (VBA), which can work with Visual Studio Tools for Office, or a similar language as their macro Figure 13-15b (resulting filled-in form) Figure A form design and the resulting filled-in form created with Microsoft Access.

16 Programming Languages and Program Development Chapter programming language. The macro in Figure 13-16a shows an Excel VBA macro that automates the data entry process to determine the monthly payment, total interest, and total cost Figure 13-16a (VBA macro) of an auto loan. Figure 13-16b shows the dialog box generated from the macro that prompts the user to enter the car model. Read Ethics & Issues 13-1 for a related discussion. Macros For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Web Link resource for this book, and then click Macros. Figure 13-16b (macro dialog box in Excel window) macro dialog box clicking New Loan button causes macro to run Figure The left screen shows a VBA macro used to automate an auto loan. After a macro is written, the user clicks the New Loan button to run the macro. The right screen shows the macro guiding the user through part of the data entry process. ETHICS & ISSUES 13-1 Who Should Be Held Accountable for Macro Security Threats? Years ago, an individual downloaded and opened a small document that contained a virus from an Internet newsgroup. Upon opening the document, a macro was executed that sent the same document to the first 50 addresses in the person s contact list. The simple action of opening the document started a chain reaction that resulted in more than 100,000 infected computers and more than $80 million in damage. Today, such viruses, known as macro viruses, are the most common type of virus. Malware authors find that one of the easiest ways to spread viruses and worms is by distributing documents containing macro viruses. The convenience and simplicity of macros are both their greatest strengths and weaknesses. These are weaknesses because hackers find it easy to exploit technologies with such traits. As a result of damaging macro viruses, antivirus companies and software companies have strengthened their efforts against macro viruses. Companies often prohibit employees from running macros on their computers. Both responses have made the use of macros more difficult and confusing for users, who prefer the convenience and simplicity of the earlier days. Many claim that software companies that include the capability to use macros should be responsible for making it impossible for malware authors to take advantage of security problems in the software. Software companies and others blame users who open documents from unknown sources. Should users or software companies be held accountable for macro security threats? Why? Should a macro in a word processing document have the capability to access a person s contact list? Why or why not? How can users best be educated regarding handling documents from unknown sources?

17 678 Chapter 13 Programming Languages and Program Development Web Page Development The designers of Web pages, known as Web developers, use a variety of techniques to create Web pages. These include some of the languages previously discussed and the languages discussed in the following sections. HTML and XHTML HTML (Hypertext Markup Language) is a special formatting language that programmers use to format documents for display on the Web. You view a Web page written with HTML in a Web browser such as Internet Explorer, Safari, Firefox, Opera, or Google Chrome. Similarly, XHTML (extensible HTML) is a markup language that enables Web sites to be displayed more easily on microbrowsers in smart phones and other mobile devices, as well as on desktop and notebook computers. Figure 13-17a shows part of the XHTML code used to create the Web page shown in Figure 13-17b. XHTML includes features of HTML and XML, which is discussed in the next section. HTML and XHTML are not actually programming languages. They are, however, languages that have specific rules for defining the placement and format of text, graphics, video, and audio on a Web page. HTML and XHTML use tags or elements, which are words, abbreviations, and symbols that specify links to other documents and indicate how a Web page is displayed when viewed on the Web. A Web page, thus, is a file that contains both text and HTML and/or XHTML tags. Examples of tags are <p> to indicate a new paragraph, <tr> to create a new row in a table, and <title> to define a document title. You can write HTML code using any text editor such as Notepad. Many programmers however, never write HTML and XHTML code because several programming languages and program development tools generate it automatically. Figure 13-17a (portion of XHTML code) Figure 13-17b (portion of resulting Web page) Figure The portion of the XHTML code in the top figure generates a portion of a Web page shown in the bottom figure.

18 Programming Languages and Program Development Chapter XML and WML XML (Extensible Markup Language) is an increasingly popular format for sharing data that allows Web developers to create customized tags, as well as use predefined tags, used for developing a single Web site whose content can be formatted to display appropriately on various devices. XML separates the Web page content from its format, allowing the Web browser to display the contents of a Web page in a form appropriate for the display device. For example, a smart phone, a PDA, and a notebook computer all could display the same XML page or use different formats or sections of the XML page. Wireless devices use a subset of XML called WML. WML (wireless markup language) allows Web developers to design pages specifically for microbrowsers. Many smart phones and other mobile devices use WML as their markup language. A style sheet contains descriptions of a document s characteristics. (Many word processing documents use style sheets to define formats of characters and paragraphs.) XML works with XSL (Extensible Stylesheet Language), which is a language for creating a style sheet that describes how to present the data described in an XML document on a Web page. XML, for example, can instruct a Web browser to display data bold and centered. An extension of XSL, called XSLT (Extensible Stylesheet Language Transformations), creates style sheets that describe how to transform XML documents into other types of documents. When a user requests a Web page, for example, the server uses the format described in the XSLT file to transform the XML into the appropriate format, such as WML for a smart phone microbrowser, a Web page for a notebook computer, or a label format for a mailing label program (Figure 13-18). Two applications of XML are RSS 2.0, which stands for Really Simple Syndication, and ATOM, which are specifications that content aggregators use to distribute content to subscribers. The online publisher creates an RSS or ATOM document, called a Web feed, that is made available to Web sites for publication. News Web sites, blogs, and podcasts often use Web feeds to publish headlines and stories. Most Web browsers can read Web feeds, meaning they automatically download updated content from Web pages identified in the feed. XML For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Web Link resource for this book, and then click XML. Figure A sample XML document converted by an XSLT document for display on various devices.

19 680 Chapter 13 Programming Languages and Program Development Scripts, Applets, Servlets, and ActiveX Controls Markup languages tell a browser how to display text and images, set up lists and option buttons, and establish links on a Web page. By adding dynamic content and interactive elements such as scrolling messages, animated graphics, forms, pop-up windows, and interaction, Web pages become much more interesting. To add these elements, Web developers write small programs called scripts, applets, servlets, and ActiveX controls. These programs run inside of another program. This is different from programs discussed thus far, which are executed by the operating system. In this case, the Web browser executes these short programs. As discussed in Chapter 9, your computer is the client computer when it is connected to the Web. A script is an interpreted program that runs on the client. That is, a script runs on your computer, instead of running on a Web server. An applet also usually runs on the client inside of an interpreted program, but the applet itself is compiled. Thus, an applet usually runs faster than a script. Scripts and applets shift the computational work from the Web server to the client. A servlet, by contrast, is an applet that runs on the server. Similar to an applet, an ActiveX control is a small program that runs on the client computer, instead of the server. ActiveX controls use ActiveX technology. ActiveX is a set of objectoriented technologies from Microsoft that allows components on a network to communicate with one another. To run an ActiveX control, the Web browser must support ActiveX technology. If it does not, you will need a plug-in program to run ActiveX controls. FAQ 13-2 What is the best response when your Web browser prompts you to install a control or plug-in? When your Web browser prompts you to install an ActiveX control or plug-in, you first should verify that the control or plug-in is from a trusted source. If the control or plug-in is not from a trusted source, do not continue with the download or installation. For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 FAQ resource for this book, and then click Web Browser Prompts. One reason Web developers use scripts, applets, servlets, and ActiveX controls is to add special multi media effects to Web pages. Examples include animated graphics, scrolling messages, calendars, and advertisements. Another reason to use these programs is to include interactive capabilities on Web pages. Cookies, shopping carts, games, counters, image maps, and processing forms are types of scripts, applets, servlets, and ActiveX controls that allow you to transfer information to and from a Web server. A counter tracks the number of visitors to a Web site. An image map is a graphical image that points to one or more Web addresses. Web pages use image maps in place of, or in addition to, text links. When you click a certain part of the graphical image, the Web browser sends the coordinates of the clicked location to the Web server, which in turn locates the correspond ing Web address and sends the Web page to your computer. A processing form, often simply called a form, collects data from visitors to a Web site, who fill in blank fields and then click a button that sends the information. When a user clicks that button on the form, that action executes the script or applet. It transmits the data to the server, processes it, and then, if appropriate, sends information back to your Web browser via the server. CGI Scripts To send and receive information between your computer and a Web server, the script, applet, or servlet uses the CGI. The CGI (common gateway interface) is the communications standard that defines how a Web server communicates with outside sources. Many times, the outside source is a database. The program that manages the sending and receiving across the CGI is a CGI script. The steps in Figure show how a CGI script works. A CGI script can be in the form of a script, applet, servlet, or ActiveX control. You can download CGI scripts from the Web and purchase them. If one does not exist that meets your needs, you can write your own CGI script using a scripting language. The next section discusses scripting languages. Read Ethics & Issues 13-2 for a related discussion.

20 Programming Languages and Program Development Chapter How a CGI Script Works Step 1 The programmer stores the CGI program in a special folder on the Web server, such as /cgi-bin. Step 2 The Webmaster creates a link between the CGI program and Web page. When a user displays the Web page, the CGI program automatically starts. Web server Step 3 When a user submits a request, it is sent to the CGI program. The CGI program contacts the database and requests information for the user. In this case, it looks for televisions at an online store. Database Step 4 The CGI program receives information from the database, assembles it in markup language format, and sends it to the user s Web browser. Figure This figure shows how a CGI script works. ETHICS & ISSUES 13-2 Should Colleges Teach Hacking? Taking the traditional admonition know thy enemy literally, some colleges offer courses that teach students how to write computer viruses and other malware. One instructor teaches students how to thwart antivirus software and how to generate anonymous spam. He claims that if college students easily bypass antivirus software, then the products clearly are deficient. Proponents of such courses claim that these hacking skills enable the next generation of security experts to think like malicious hackers, thereby helping to stop the spread of malware. They liken the gained skills to physics students who learn how atomic weapons work, or biology students who learn how poisons work. Critics claim that this practice only encourages more virus authoring and hacking. Others claim that knowing how to write malware does not make someone more capable of stopping malware. Questions remain about who is responsible legally, financially, and morally if one of the students in such a course releases malicious code to the Internet or uses the knowledge acquired in the course to infect other computers purposefully. Should colleges teach hacking? Why or why not? Should companies hire people who are trained in creating malware and computer hacking? Why or why not? What precautions should schools take if they plan to offer such courses? Who should be held responsible if a student in such a course creates destructive malware? Why?

21 682 Chapter 13 Programming Languages and Program Development PHP For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Web Link resource for this book, and then click PHP. Figure 13-20a (JavaScript code) Scripting Languages Programmers write scripts, applets, servlets, or ActiveX controls using a variety of languages. These include some of the languages previously discussed, such as Java, C++, C#, F#, and Visual Basic. Some programmers use scripting languages. A scripting language is an interpreted language that typically is easy to learn and use. Popular scripting languages include JavaScript, Perl, PHP, Rexx, Tcl, and VBScript. JavaScript is an interpreted language that allows a programmer to add dynamic content and interactive elements to a Web page (Figure 13-20). These elements include alert messages, scrolling text, animations, drop-down menus, data input forms, pop-up windows, interactive quizzes, and mouse rollovers. A mouse rollover or mouseover occurs when text, a graphic, or other object changes as the user moves the mouse pointer over the object on the screen. Web developers insert JavaScript code directly in an HTML or XHTML document. Although it shares many of the features of the full Java language, JavaScript is a much simpler language. JavaScript is an open language, which means anyone can use it without purchasing a license. JavaScript thus allows the programmer to improve the appearance of Web pages without spending a large amount of money. Perl (Practical Extraction and Report Language) originally was developed by Larry Wall at NASA s Jet Propulsion Laboratory as a procedural language similar to C and C++. The latest release of Perl, however, is an interpreted scripting language. Because Perl has powerful text processing capabilities, it has become a popular language for writing scripts. PHP, which stands for PHP: Hypertext Preprocessor, is a free, open source scripting language. PHP, which is a language similar to C, Java, and Perl, is used primarily on Linux Web servers. Web developers create dynamic Web pages by inserting PHP scripts along with HTML or XHTML in a Web page. Rexx (REstructured extended executor) was developed by Mike Cowlishaw at IBM as a procedural interpreted scripting language for both the professional programmer and the nontechnical user. In addition to all IBM operating systems, Rexx works with Windows, Mac OS, and most UNIX operating systems. Tcl (Tool Command Language) is an interpreted scripting language created by Dr. John Ousterhout and maintained by Sun Microsystems Laboratories. Tcl has a companion program, called Tool Kit (Tk), that allows Web developers to build graphical user interfaces. Figure 13-20b (Web page) Figure Shown here is a portion of JavaScript code and its associated Web page.

22 Programming Languages and Program Development Chapter VBScript (Visual Basic, Scripting Edition) is a subset of the Visual Basic language that allows pro grammers to add intelligence and interactivity to Web pages. As with JavaScript, Web developers embed VBScript code directly into an HTML or XHTML document. Programmers already familiar with Visual Basic choose VBScript as their scripting language, so that they do not have to learn a new scripting language. The latest version of Internet Explorer includes VBScript. FAQ 13-3 What is a sandbox to a developer? A sandbox is an environment that allows developers to test their programs with fictitious data without adversely affecting other programs, information systems, or data. Sandboxes are used for testing purposes both by developers and users. Users often work with a sandbox to familiarize themselves with a new program or information system before they use it. For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 FAQ resource for this book, and then click Sandboxes. Dynamic HTML Dynamic HTML (DHTML) is a type of HTML that allows Web developers to include more graphical interest and interactivity in a Web page, without the Web page accessing the Web server. That is, the client s computer automatically updates and changes its own content. These Web pages display much faster than Web pages created with HTML. Typically, Web pages created with DHTML are more animated and responsive to user interaction. Colors change, font sizes grow, objects appear and disappear as a user moves the mouse, and animations dance around the screen. Dynamic HTML works by using the document object model, cascading style sheets, and scripting languages. The document object model (DOM) defines every item on a Web page as an object. Fonts, graphics, headlines, tables, and every other page element are objects. With DOM, Web developers can change properties, such as color or size, of any or all of these objects on the Web page. A cascading style sheet (CSS) contains the formats for how a particular object should be displayed in a Web browser. For example, CSS specifies items such as background colors, image and link colors, fonts, and font sizes. A single DHTML document can contain multiple cascading style sheets, thus, the name cascading. As a user moves the mouse or clicks an item, a new style sheet can be applied to change the appearance of the screen. After a Web developer has defined and formatted objects on a Web page, a scripting language such as JavaScript manipulates them. A script can move, display, hide, or change the appearance of an object as the user performs actions such as a mouse rollover. Ruby on Rails Ruby on Rails (RoR), also called Rails, is an open source framework that provides technologies for developing object-oriented, database-driven Web sites. Rails uses a free, object-oriented scripting language called Ruby, which is derived from a variety of languages including Ada, LISP, Perl, and Smalltalk. Rails is designed to make Web developers more productive by providing them an easy-to-use environment and eliminating time-consuming steps in the Web development process. FAQ 13-4 What are the popular Web programming languages? The chart below shows the popularity of selected Web programming languages when compared to all programming languages. Web Programming Language Popularity Percentage 20% 18% 16% 14% 12% 10% 8% 6% 4% 2% 0% Java PHP Web Programming Language For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 FAQ resource for this book, and then click Web Programming Languages. Perl JavaScript Source: TIOBE Programming Community Index Cascading Style Sheets For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Web Link resource for this book, and then click Cascading Style Sheets.

23 684 Chapter 13 Programming Languages and Program Development Web 2.0 Program Development As previously discussed, Web 2.0 refers to Web sites that provide a means for users to share personal information, allow users to modify Web site content, and have application software built into the site for visitors to use. Web 2.0 sites include social networking sites, wikis, blogs, online auctions, and Web applications such as Google Docs. Web 2.0 sites often use RSS, previously discussed, and Ajax. Ajax, which stands for Asynchronous JavaScript and XML, is a method of creating interactive Web applications designed to provide immediate response to user requests. Instead of refreshing entire Web pages, Ajax works with the Web browser to update only changes to the Web page. This technique saves time because the Web application does not spend time repeatedly sending unchanged information across the network. Ajax combines several programming tools: JavaScript or other scripting language, HTML or XHTML, XML, XSLT, and CSS. Some companies, such as Microsoft, Google, and Yahoo!, provide their Ajax toolkits at no cost. Web browsers that support Ajax include Internet Explorer, Safari, Firefox, and Opera. Examples of Web sites that use Ajax are Google Maps and Flickr. Most Web 2.0 sites also use APIs so that Web developers can create their own Web applications. An API (application programming interface) is a collection of tools that programmers use to interact with an environment such as a Web site or operating system. Mapping Web sites, for example, include APIs that enable programmers to integrate maps into their Web sites (Figure 13-21). Another use of APIs is in mashups. Recall that a mashup is a Web application that combines services from two or more sources, creating a new application. Read Innovative Computing 13-2 to find out about a Google Maps and Flickr mashup. For more information, read the Web 2.0 Program Development feature that follows this chapter. APIs For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Web Link resource for this book, and then click APIs. Figure Google Maps provides tools for programmers to integrate APIs into their Web sites. INNOVATIVE COMPUTING 13-2 View the World from Your Computer Become a worldwide traveler without leaving home by using Earth Album, a mashup derived from Google Maps and Flickr. Simply view the world map and then click the country, region, or city of interest to display associated photos in a strip along the top of the screen. When you click one of these images, it zooms out and also displays the photographer s descriptive words, called geotags, that identify the photo s contents. Early versions of Earth Album were written using Ruby on Rails, but the newest is written using PHP. The program matches the map s locations with the Flickr photos geotags of the same location. The images change every few weeks, and the more popular images are of large cities and tourist destinations. Besides clicking areas of the map, users can search for a specific location or click the Find Yourself link to view photos from their current geographical location. In recent years, the Earth Album Web site was recognized by both PC Magazine and Time magazine as among the best. For more information, ion visit it the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Innovative Computing resource for this book, and then click Earth Album.

24 Programming Languages and Program Development Chapter Web Page Authoring Software As Chapter 3 discussed, you do not need to learn HTML to develop a Web page. You can use Web page authoring software to create sophisticated Web pages that include images, video, audio, animation, and other effects. Web page authoring software generates HTML and XHTML tags from your Web page design. With Web page authoring software, you can view or modify the HTML or XHTML associated with a Web page. Sometimes, you may add an HTML or XHTML tag that the Web page authoring software does not provide. Learning HTML and XHTML basics will enable you to fine-tune Web page formats created with authoring software. Four popular Web page authoring programs are Dreamweaver, Expression Web, Flash, and SharePoint Designer. Dreamweaver, by Adobe Systems, is a Web page authoring program that allows Web developers to create, maintain, and manage professional Web sites. Some features of Dream weaver include its visual en vi ron ment, use of cas cad ing style sheets, cap a bility of mani pu lating code, built-in graphics editor (called Fireworks), and XML support. Expression Web is Microsoft s Web page authoring program that enables Web developers to create professional, dynamic, interactive Web sites. Expression Web requires the.net and supports HTML, DHTML, XHTML, XML, JavaScript, and cascading style sheets. It also integrates with Visual Studio. Flash, by Adobe Systems, is a Web page authoring program that enables Web developers to combine interactive content with text, graphics, audio, and video. Features of Flash include its animation and interactive tools, professional video capabilities, easy deploy ment to mobile devices such as smart phones, and XML support. SharePoint Designer is a Web page authoring program that is part of the Microsoft Office and SharePoint families of products. SharePoint Designer supports ASP.NET, cascading style sheets, XHTML, and XSLT. presentation. Many programmers use multimedia authoring software for computerbased training (CBT) and Web-based training (WBT). Popular Web page authoring programs typically share similar features and are capable of creating similar applications. Popular programs include ToolBook and Director. ToolBook, from SumTotal Systems, has a graphical user interface and uses an objectoriented approach, so that programmers can design multimedia applications using basic objects. These objects include buttons, fields, graphics, backgrounds, and pages. In ToolBook, programmers can convert a multimedia application into HTML or XHTML, so that it can be distributed over the Internet. Many businesses and colleges use ToolBook to create content for distance learning courses (Figure 13-22). Director, from Adobe Systems, is a popular multimedia authoring program with powerful features that allow programmers to create highly interactive multimedia applications. Director s powerful features make it well suited for developing electronic presentations, optical discs for education and entertainment, simulations, programs for kiosks, and Web applications. Web applications can include streaming audio and video, interactivity, and multiuser functionality. Users view Web applications developed in Director on the Web using the Shockwave plug-in. Figure A sample ToolBook application. Multimedia Program Development Multimedia authoring software allows programmers to combine text, graphics, animation, audio, and video in an interactive

25 686 Chapter 13 Programming Languages and Program Development QUIZ YOURSELF 13-2 Instructions: Find the true statement below. Then, rewrite the remaining false statements so that they are true. 1. HTML and XHTML are languages that have specific rules for defining the placement and format of text, graphics, video, and audio on a Web page. 2. Interpreted HTML works by using the document object model, style sheets, and scripting languages. 3. Maps allow users to automate routine, repetitive, or difficult tasks in application software such as word processing, spreadsheet, or database programs. 4. Popular first-generation languages include JavaScript, Perl, PHP, Rexx, Tcl, and VBScript. 5. Rexx separates the Web page content from its format, allowing the Web browser to display the contents of a Web page in a form appropriate for the display device. 6. SQL is an example of a second generation language. 7. Four popular markup languages are Dreamweaver, Expression Web, Flash, and SharePoint Designer. Quiz Yourself Online: To further check your knowledge of pages 674 through 685, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Quiz Yourself resource for this book, and then click Objectives Document Solution Program Development Program development consists of a series of steps programmers use to build computer programs. As Chapter 12 discussed, the system development life cycle guides information technology (IT) professionals through the development of an information system. Likewise, the program development life cycle (PDLC) guides computer programmers through the development of a program. The program development life cycle consists of six steps (Figure 13-23): 1. Analyze Requirements 2. Design Solution 3. Validate Design 4. Implement Design 5. Test Solution 6. Document Solution 1. Analyze Requirements 2. Design Solution 5. Operation, Support, and Security As shown in Figure 13-23, the steps in the program development life cycle form a loop. Program development is an ongoing process within system development. Each time someone identifies errors in or improvements to a program and requests program modifications, the Analyze Requirements step begins again. When programmers correct errors or add enhancements to an existing program, they are said to be maintaining the program. Program maintenance is an ongoing activity that occurs after a program has been delivered to users, or placed into production. 1. Planning System Development Life Cycle 2. Analysis 5. Test Solution Program Development Life Cycle 3. Validate Design 4. Implementation 3. Design 4. Implement Design Figure The program development life cycle consists of six steps that form a loop. The program development life cycle is part of the implementation phase of the system development life cycle.

26 Programming Languages and Program Development Chapter What Initiates Program Development? As discussed in Chapter 12, system development consists of five phases: planning; analysis; design; implementation; and operation, support, and security. During the analysis phase, the development team recommends how to handle software needs. Choices include modifying existing programs, purchasing packaged software, building custom software in-house, or outsourcing some or all of the IT activities. If the company opts for in-house development, the design and implementation phases of system development become quite extensive. In the design phase, the systems analyst creates a detailed set of requirements for the programmers. Once the programmers receive the requirements, the implementation phase begins. At this time, the programmer analyzes the requirements of the problem to be solved. The program development life cycle thus begins at the start of the implementation phase in system development. The scope of the requirements largely determines how many programmers work on the program development. If the scope is large, a pro gramming team that consists of a group of programmers may develop the programs. If the specifications are simple, a single programmer might complete all the development tasks. Whether a single programmer or a programming team, all the programmers involved must interact with users and members of the development team throughout program development. By following the steps in program development, programmers create programs that are correct (produce accurate information) and maintainable (easy to modify). The following sections address each of the steps in program development. Step 1 Analyze Requirements The first step in program development is to analyze the requirements of the problem the program(s) should solve, so that the programmer can begin to develop an appropriate solution. In most cases, the solution requires more than one program. The Analyze Requirements step consists of three major tasks: (1) review the requirements, (2) meet with the systems analyst and users, and (3) identify input, processing, output, and data components. First, the programmer reviews the requirements. The requirements may be in the form of deliverables such as charts, diagrams, and reports. For example, screen and report layout charts illustrate input and output requirements. Structured English, decision tables, and decision trees convey processing requirements. The data dictionary identifies the data requirements. By thoroughly reviewing these deliverables, the programmer understands the nature of the requirements. During this step, the programmer also meets with the systems analyst and the users. This enables the programmer to understand the purpose of the requirements from the users perspective. Recall from Chapter 12 that a guideline of system development is to involve users throughout the entire system development life cycle. After design specifications are established, the programmer defines the input, processing, output (IPO), and data requirements for each program. Many programmers use an IPO chart to show the input, processing, and output components (Figure 13-24). An IPO chart identifies a program s inputs, its outputs, and the processing steps required to transform the inputs into the outputs. Programmers review the contents of the IPO chart with the systems analyst and the users. This allows programmers to be sure that they completely understand the purpose of the program. IPO Chart Input Processing Output Regular Time Read regular time hours worked, overtime hours Gross Pay Hours Worked worked, hourly pay rate. Overtime Hours Worked Hourly Pay Rate Calculate regular time pay. If employee worked overtime, calculate overtime pay. Calculate gross pay. Print gross pay. Figure An IPO (input, process, output) chart is a tool that assists the programmer in analyzing a program. Step 2 Design Solution The next step is to design the solution that will meet the users requirements. Designing the solution involves devising a solution algorithm to satisfy the requirements. A solution algorithm, also called program logic, is a graphical or written description of the step-by-step procedures to solve

27 688 Chapter 13 Programming Languages and Program Development Ethics & Issues For the complete text of the Ethics & Issues boxes found in this chapter, visit the Computer Concepts CourseMate Web site at and then navigate to the Chapter 13 Ethics & Issues resource for this book. ETHICS & ISSUES 13-3 Are Digital Facelifts Ethical? While people may state that beauty is in the eye of the beholder, some researchers are claiming that beauty is just another mathematical formula to apply to a digital photo. Researchers asked people to rank a number of photos from most to least attractive. The facial proportions of those found to be most attractive, such as the distance between eyes, the shape of the jaw lines, and symmetry, were noted by the researchers. This resulted in a computer algorithm that applies these ideals to any facial photo, resulting in a digital facelift. Surprisingly, the ideals seem consistent among most cultures. Unlike photo touch-ups on magazine covers that change hair and skin color or remove wrinkles, these digital facelifts change only the proportions and location of facial the problem. Determining the logic for a program often is a programmer s most challenging task. It requires that the programmer understand programming concepts, often database concepts, as well as use creativity in problem solving. Recall from Chapter 12 that a system can be designed using process modeling (structured analysis and design) or object modeling (objectoriented analysis and design). The approach used during system development determines the techniques a programmer uses in designing a solution. Read Ethics & Issues 13-3 for a related discussion. features. Critics of this technology claim that beauty ideals change over time, that the software seems to make people seem more generic, and that a person s individual character is lost in the process. Furthermore, publishing such altered photos results in additional cultural pressure on people, resulting in problems ranging from low self-esteem to unnecessary surgery. Are digital facelifts ethical? Why or why not? How might some people take advantage, for good or bad, of digital facelift technology? Should publishers of photos be required to inform their audience when such technology has been applied to a photo? Why or why not? Are digital facelifts any different from photo touch-ups done for fashion magazines? Why? Structured Design In structured design, sometimes called top-down design, the programmer typically begins with a general design and moves toward a more detailed design. This approach breaks down the original set of requirements into smaller, more manageable sections. The first step in top-down design is to identify the major function of a program, sometimes called the main routine or main module. Next, the programmer decomposes (breaks down) the main routine into smaller sections, called subroutines or modules. Then, the programmer analyzes each subroutine to determine if it can be decomposed further. Programmers use a hierarchy chart, also called a structure chart, to show program modules graphically (Figure 13-25). A hierarchy chart contains rectangles and lines. The rectangles are the modules. The main module is at the top of the chart. All other modules are placed below the main module. Modules connect by lines to indicate their relationships. In Figure 13-25, for example, the Initialization, Process, and Wrap-Up modules are subordinate to the MAIN module. Programs developed using structured design benefit from their simplicity, reliability, readability, reusability, and maintainability. Structured design, however, does not provide a way to package the data and the program (or procedure) together. Each program has to define how it will use the data. This can result in redundant programming code that must change every time the structure of the data changes. To eliminate this problem, some IT professionals use the object-oriented approach for program development. MAIN Initialization Process Wrap-Up Declare Variables Print Report Headings Read a Record Calculate Accumulate Totals Print Detail Line Calculate Averages Print Totals and Averages Calculate Regular Time Pay Calculate Overtime Pay Calculate Gross Pay Figure The hierarchy chart is a tool the programmer uses during structured design. On the hierarchy chart, program modules are drawn as rectangles. All modules are subordinate to the MAIN module.

28 Programming Languages and Program Development Chapter Object-Oriented Design With object-oriented (OO) design, the programmer packages the data and the program (or procedure) into a single unit, an object. When the structure of an object changes, any program that accesses the object automatically accesses the change. The concept of packaging data and procedures into a single object is called encapsulation. That is, an object encapsulates (hides) the details of the object. Think of an object as a box, and you cannot see inside the box. The box sends and receives messages. It also contains code and data. For example, when users want to print a document, they click the Print button (the object). They probably do not know how the Print button actually communicates with the hardware to print the document. Thus, the details of the print object are encapsulated (hidden) from the user. Programmers, however, need to know how the object works, so that they can send messages to it and use it effectively. As described in Chapter 12, objects are grouped into classes. To represent classes and their hierarchical relationships graphically, programmers use a class diagram. Figure shows a high-level class diagram. In this diagram, a construction site needs many jobs performed, a job is completed by several workers, and each worker receives one paycheck for work performed. The 1 below the Construction Site class indicates that each 1..* 1.. * Construction Site 1 Job 1 Worker * 1 Paycheck Receives Figure A class diagram is a hierarchical tool the programmer uses during object-oriented design. Construction Site class must have at least one Job class associated with it. The 1..* above the Job class indicates that each Job class must be associated with at least one Construction Site class above it. With the high-level class diagram complete, the programmer develops a detailed class diagram that provides a visual representation of each object, its attributes, and its methods. Then, the programmer translates the methods into program instructions. Control Structures Whether using structured design or object-oriented design, programmers typically use control structures to describe the tasks a program is to perform. A control structure, also known as a construct, depicts the logical order of program instructions. Three basic control structures are sequence, selection, and repetition. Sequence Control Structure A sequence control structure shows one or more actions following each other in order (Figure 13-27). Actions in clude inputs, proc esses, and outputs. All actions must be executed; that is, none can be skipped. Examples of actions are reading a record, calculating averages or totals, and printing totals. Selection Control Structure A selection control structure tells the program which action to take, based on a certain condition. Two common types of selection control structures are the if-then-else and the case. When a program evaluates the condition in an if-thenelse control structure, it yields one of two possibilities: true or false. Figure shows the condition as a diamond symbol. If the result of the condition is true, then the program performs one action. If the result is false, the program performs Object-Oriented Design For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Web Link resource for this book, and then click Object-Oriented Design. Sequence Control Structure Action 1 Action 2 Action 3 Figure The sequence control structure shows one or more actions followed by another. If-Then-Else Control Structure True Condition False Action 1 Action 2 Figure The if-then-else control structure directs the program toward one course of action or another based on the evaluation of a condition.

29 690 Chapter 13 Programming Languages and Program Development Condition 1 a different action. For example, the if-then-else control structure can determine if an employee should receive overtime pay. A possible condition might be the following: Is Hours Worked greater than 40? If the response is yes (true), then the action would calculate overtime pay. If the response is no (false), then the action would set overtime pay equal to 0. In some cases, a program should perform no action if the result of a condition is false. This variation of the if-then-else is called the if-then control structure because the program performs an action only if the result of the condition is true. With the case control structure, a condition can yield one of three or more possibilities (Figure 13-29). The size of a beverage, for example, might be one of these options: small, medium, large, or extra large. A case control structure would determine the price of the beverage based on the size purchased. Case Control Structure Condition Condition 2 Condition 3 Condition 4 executes the action(s) inside the loop again. This looping process continues until the condition being tested becomes false. At that time, the program stops looping and moves to another set of actions. The do-while control structure normally is used when occurrence of an event is not quantifiable or predictable. For example, programmers frequently use the do-while control structure to process all records in a file. A payroll program using a do-while control structure loops once for each employee. This program stops looping when it processes the last employee s record. The do-until control structure is similar to the do-while but has two major differences: where it tests the condition and when it stops looping. First, the do-until control structure tests the condition at the end of the loop, a process called a posttest (Figure 13-31). The action(s) in a do-until control structure thus always will execute at least once. The loop in a do-while control structure, by contrast, might not execute at all. That is, if the condition immediately is false, the action or actions in the do-while loop never execute. Second, a do-until control structure continues looping until the condition is true and then stops. This is different from the do-while control structure, which continues to loop while the condition is true. Do-While Control Structure Action 1 Action 2 Action 3 Action 4 Condition False Figure The case control structure allows for more than two alternatives when a condition is evaluated. Repetition Control Structure The repetition control structure enables a program to perform one or more actions repeatedly as long as a certain condition is met. Many programmers refer to this construct as a loop. Two forms of the repetition control structure are the do-while and do-until. A do-while control structure repeats one or more times as long as a condition is true (Figure 13-30). This control structure tests a condition at the beginning of the loop, a process called a pretest. If the result of the condition is true, the program executes the action(s) inside the loop. Then, the program loops back and tests the condition again. If the result of the condition still is true, the program Action True Do-Until Control Structure Action Condition False True Figure The do-while control structure tests the condition at the beginning of the loop. It exits the loop when the result of the condition is false. Figure The do-until control structure tests the condition at the end of the loop. It exits the loop when the result of the condition is true.

30 Programming Languages and Program Development Chapter Design Tools To help document a solution algorithm, programmers use design tools. Two structured design tools are program flowcharts and pseudocode. A design tool for object-oriented design is the UML. A program flowchart, or simply flowchart, graphically shows the logic in a solution algorithm. The American National Standards Institute (ANSI) published a set of standards for program flowcharts in the early 1960s. These standards, still used today, specify symbols for various operations in a program s logic (Figure 13-32). Programmers connect most symbols on a program flowchart with solid lines. These lines show the direction of the program. Dotted lines on a flowchart connect com ment symbols. A comment symbol, also called an annotation symbol, explains or clarifies logic in the solution algorithm. Figure shows the program flowchart for three modules of the program shown in the hierarchy chart in Figure on page 688. ANSI Flowchart Symbols PROCESS: program instruction(s) that transforms input(s) into output(s) INPUT/OUTPUT: enter data or display information ANNOTATION: additional descriptive information about the program DECISION: condition that determines a specified path to follow TERMINAL: beginning or ending of program CONNECTOR: entry from or exit to another part of the flowchart on the same page CONNECTOR: entry from or exit to another part of the flowchart on a different page PREDEFINED PROCESS: named process containing a series of program steps specified elsewhere Figure Standard symbols used to create program flowcharts. Start Process Calculate Overtime Pay MAIN Call Initialization Not end of employee file? False Return True Hours Worked > 40? False True Call Process Call Read a Record Overtime Pay 5 Overtime Hours * 1.5 * Pay Rate Overtime Pay 5 0 Call Wrap-Up Call Calculate Call Accumulate Totals Return End Call Print Detail Line Figure This figure shows a program flowchart for three of the modules on the hierarchy chart in Figure 13-25: MAIN, Process, and Calculate Overtime Pay. Notice the MAIN module is terminated with the word, End, whereas the subordinate modules end with the word, Return, because they return to a higher-level module.

31 692 Chapter 13 Programming Languages and Program Development Flowcharting Software For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Web Link resource for this book, and then click Flowcharting Software. In the past, programmers used a template to trace the symbols for a flowchart on a piece of paper. Today, programmers use commercial flowcharting software to develop flowcharts. This software makes it easy to modify and update flowcharts. Two popular flowcharting programs are SmartDraw (Figure 13-34) and Visio. Pseudocode uses a condensed form of English to convey program logic. Some programmers prefer to explain the logic of a solution algo rithm with words (pseudocode), instead of a graphical flowcharting technique. Pseudo code also uses indentation to identify the control structures. The beginning and ending of the module start at the left margin. The actions within the module are indented. The actions within a selection or repetition control structure are indented again. This allows the programmer to identify the begin ning and ending of the control structure clearly. Figure shows the pseudocode for the same three program modules as in Figure on the previous page. MAIN MODULE: END CALL Initialization CALL Process CALL Wrap-Up PROCESS MODULE: RETURN DO WHILE Not EOF CALL Read a Record CALL Calculate CALL Accumulate Totals CALL Print Detail Line ENDDO CALCULATE OVERTIME PAY MODULE: RETURN IF Hours Worked > 40 THEN Overtime Pay = Overtime Hours * 1.5 * Pay Rate ELSE Overtime Pay = 0 ENDIF Figure Pseudocode is another alternative method of showing program logic. This figure shows the same three modules (MAIN, Process, and Calculate Overtime Pay) as illustrated in Figure with program flowcharts. Figure SmartDraw is a popular flowcharting program.

32 Programming Languages and Program Development Chapter As discussed in Chapter 12, the UML (Unified Modeling Language) has been adopted as a standard notation for object modeling and development. These notations are used in diagrams that present various views of the system being developed. Figure identifies some symbols used in each of these types of diagrams. Two basic categories of diagrams in the UML are structural diagrams and behavioral diagrams. Examples of structural diagrams include class diagrams, component diagrams, and deployment diagrams. A class diagram shows classes and their subclasses and relationships, attributes, operations, and roles. A component diagram shows how the software components of a system interact. A deployment diagram illustrates how hardware components are connected. Behavioral diagrams illustrate how the processes flow among the components, classes, users, and the system being designed. Examples of behavioral diagrams include use case diagrams, activity diagrams (Figure 13-37), sequence diagrams, and state diagrams. A use case diagram shows how actors interact with the system. An activity diagram shows all the activities that occur within a use case. A sequence diagram identifies all possible paths a message takes as it moves among the actors and objects. A state diagram identifies the various changes that occur to an object over time. Step 3 Validate Design Once programmers develop the solution algorithm, they should validate, or check, the program design for accuracy. During this step, the programmer checks the logic for accuracy and attempts to uncover logic errors. A logic error is a flaw in the design that causes inaccurate results. Two techniques for reviewing a solution algorithm are a desk check and an inspection. Some Symbols Used in the UML Diagrams Class Association Note Interface Generalization State Actor Dependency Activity Use Case Package Decision Figure Symbols used to create diagrams in the UML. [cold coffee] Order iced cappucino Thirsty customer enters Decide what coffee to order Wait for beverage Beverage served Customer leaves [hot coffee] Order mocha latte Figure A UML activity diagram illustrating a Place Coffee Order use case.

33 694 Chapter 13 Programming Languages and Program Development FAQ 13-5 When programmers do a desk check, they use test data to step through its logic. Test data is sample data that mimics real data the program will process once it is in production. Users should assist in the development of test data. The programmer who developed the solution algorithm usually performs the desk check, but another programmer also can perform this task. Desk checking involves five steps. 1. Develop various sets of test data (inputs). 2. Determine the expected result (output) for each set of data, without using the solution algorithm. 3. Step through the solution algorithm using one set of test data and write down the actual result obtained (output) using the solution algorithm. 4. Compare the expected result from Step 2 to the actual result from Step Repeat Steps 3 and 4 for each set of test data. If the expected result and actual result do not match for any set of data, the program has a logic error. When this occurs, the programmer must review the logic of the solution algorithm to determine the reason for the error and then correct it. A more formal technique for checking the solution algorithm is an inspection. As discussed in Chapter 12, a systems analyst often uses an inspection to review deliverables during system development. Likewise, programmers use inspections to review solution algorithms during program development. Usually, a programmer easily can correct errors or improvements identified at this point. After the programmer begins implementing the design, errors are more difficult to fix. Thus, detecting errors and making improvements early in program development reduces the overall time and cost of program development. What types of test data should be used during validation? It is always best to test a program using alphanumeric and numeric test data. Even if a program accepts only numeric data, test with some alphanumeric data to see how it responds. Numeric test data should include both positive and negative values, with and without decimals. You also should use test data that you know is invalid to ensure that the program displays proper error messages. For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 FAQ resource for this book, and then click Test Data. Step 4 Implement Design Implementation of the design includes using a program development tool that assists the programmer by generating or providing some or all code, or includes writing the code that translates the design into a computer program and, if necessary, creating the user interface. Coding a program involves translating the solution algorithm into a programming language (sometimes on paper) and then typing the programming language code into the computer. You enter code using the editor provided with the programming language or any other text editor, such as Notepad, as long as the file is saved with the extension required by the programing language. If you use a standard word processing program, such as Word, you also must save the code as an ASCII file, often called plain text, instead of as a formatted word processing document. An ASCII file is a file that does not contain any formatting, that is, no graphics, italics, bold, underlining, styles, bullets, shading, color, etc. As previously mentioned, many different programming languages exist. Each of these has a particular syntax. A language s syntax is the set of grammar and rules that specifies how to write instructions for a solution algorithm. For example, a programmer writes an instruction to add three numbers or creates a user interface differently in each language, according to its syntax. Once the code is entered, it should be reviewed. Code review is the process of programmers, quality control testers, and/or peers reviewing code in order to locate and fix errors so that the final programs work correctly. As programmers enter code into a computer, they should document the code thoroughly so that the programs can be maintained easily. Programs should include both global and internal documentation, called comments (Figure 13-38). Global comments, which usually are at the top of a program, explain the program s purpose and identify the program name, its author, and the date written. Internal comments, which appear throughout the body of the program, explain the purpose of the code statements within the program.

34 Programming Languages and Program Development Chapter global comments internal comments Figure Thorough documentation leads to maintainable programs. A program should contain global comments (at the top of the program) and internal comments (throughout the body of the program). In this Visual Basic program, the first character of the comment is an apostrophe. Extreme Programming As an alternative to coding in this step of program development, some companies use extreme programming to develop programs. Extreme programming (XP) is a strategy that proposes that programmers should immediately begin coding and testing solutions as soon as requirements are defined. The code continually is tested and refined until it works. This strategy essentially eliminates the Design Solution and Validate Design steps of traditional program development. Extreme programming also suggests that programmers work in pairs, with each communicating code to the other and generating ideas for proper solutions. Proponents of extreme programming claim it reduces the time required for program development. Extreme programming most often is used in object-oriented design. Step 5 Test Solution Once a programmer codes and enters the program, the next step is to test it. Thorough testing is very important. After programmers place the program into production, many users rely on the program and its output to support their daily activities and decisions. The goal of program testing is to ensure the program runs correctly and is error free. Errors uncovered during this step usually are one of two types: (1) syntax errors or (2) logic errors. A syntax error occurs when the code violates the syntax, or grammar, of the programming language. Mis spelling a command, leaving out required punctuation, or typing command words, called keywords, out of order all will cause syntax errors. Programmers usually discover syntax errors the first time they attempt to compile or interpret the program code on the computer. When a syntax error is located, a message either is displayed on the screen immediately or is written to a log file. Either way, the programmer must review and correct all syntax errors. The procedure for testing for logic errors at this step is much like the desk checking techniques used in the Validate Design step. Another purpose of using test data is to try to cause a run-time error, which is an error or event that causes the program to stop running. If the pay rate for employees cannot exceed $55.00 per hour, then the test data should use some valid pay rates, such as $25.00 and $10.50, as well as some invalid ones, such as $ and $ When entering an invalid pay rate, the program should not stop running but instead should display an error message and allow the user to reenter the pay rate. If the program accepts an invalid pay rate, then it contains a logic error. If it stops running, it has a run-time error. In addition, the program should handle data exception errors such as division by zero. When users run a program, the data they enter should not cause a run-time error. They may experience a run-time error, however, if their computer does not have enough RAM or disk space to run the program.

35 696 Chapter 13 Programming Languages and Program Development Beta Testers For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Web Link resource for this book, and then click Beta Testers. The process of locating and correcting syntax and logic errors in a program is known as debugging the program. The program errors themselves are the bugs. Thus, removing the errors is debugging. The term bug originated when the failure of one of the first computers supposedly was traced to an actual bug. A moth lodged in the computer s electronic components was the cause of the failure (Figure 13-39). Read Ethics & Issues 13-4 for a related discussion. Most programming languages include a debug utility. A debug utility, or debugger, assists programmers with identifying syntax errors and finding logic errors. With a debugger, a programmer examines program values (such as the result of a calculation) while the program runs in slow motion. Some software companies distribute a beta of their software to users. A beta is a program that has most or all of its features and functionality implemented. Users test the beta program and send bug reports to the software company. This enables the software manufacturer to fix any errors before the software is released to the public for sale. If a programmer designs a program properly during the Design Solution step, then testing in this step should not require much time. As a general rule, the more time and effort programmers spend analyzing and designing the solution algorithm, the less time they spend debugging the program. Figure The temporary failure of one of the first computers was traced to a dead moth (shown taped to the log book) caught in the electronic components. Some say this event is the origin of the computer term bug. ETHICS & ISSUES 13-4 Who Is Responsible for Bugs? The consequences of bugs, or errors, in computer programs can be staggering. A software error in a missile defense system resulted in the deaths of 29 U.S. soldiers. An error in the code controlling a Canadian nuclear facility caused more than 3,000 gallons of radioactive water to be spilled. A bug in long-distance switching software cost AT&T more than $60 million. Sometimes, employees or students who report security-related bugs are disciplined because by finding the bug, they accidently accessed secure information. Experts estimate that there are 20 to 30 bugs per 1,000 lines of code in an average program. Given that many programs contain hundreds of thousands, even millions, of code lines, bugs are not surprising. Most software licenses absolve the software creator of any responsibility for the end user getting the wrong information from a bug-riddled program. Who should be responsible for mistakes in software? Why? If users find bugs, such as security bugs, should they be disciplined after reporting the bugs? Why? Should those who design a system or write programs for a system be legally responsible if their product results in errors or damages? Why? Step 6 Document Solution In documenting the solution, the programmer performs two activities: (1) review the program code and (2) review all the documentation. First, programmers review the program for any dead code and remove it. Dead code is any program instructions that a program never executes. When programmers write a program, they often write a section of code at a time. Sometimes, they decide not to use the code, but leave it in the program anyway. This dead (unused) code serves no purpose and should not exist. Next, programmers should run the program one final time to verify it still works. After reviewing the program code, the programmer gives the program and all of its documentation to the systems analyst. The documentation includes all charts, solution algorithms, test data, and program code listings that contain global and internal comments. The programmer should be sure all documentation is complete and accurate. This becomes especially valuable if the program requires changes in the future. Proper documentation greatly reduces the amount of time a new programmer spends learning about existing programs.

36 Programming Languages and Program Development Chapter FAQ 13-6 How much documentation should a program include? No set rule exists for the amount of documentation a program should contain, but programmers should include enough documentation to be able to understand completely the program s functionality without having to interpret each line of code. For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 FAQ resource for this book, and then click Documentation. QUIZ YOURSELF 13-3 Instructions: Find the true statement below. Then, rewrite the remaining false statements so that they are true. 1. A language s logic is the set of grammar and rules that specifies how to write instructions for a solution algorithm. 2. An error in a program is known as a beta. 3. In structured design, the programmer typically begins with a detailed design and moves toward a more general design. 4. The concept of packaging data and procedures into a single object is called casing. 5. The program development life cycle consists of these six steps: analyze requirements, design solution, validate design, implement design, test solution, and hardcode solution. 6. Three basic control structures are sequence, selection, and pseudocode. 7. Two basic categories of diagrams in the UML are structural diagrams and behavioral diagrams. Quiz Yourself Online: To further check your knowledge of pages 686 through 697, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Quiz Yourself resource for this book, and then click Objectives 7 9. Chapter Summary This chapter discussed various programming languages used to create computer programs. It also presented a variety of Web development and multimedia development tools. Finally, the chapter described each step in the program development life cycle and presented the tools used to make this process efficient. Computer Work Manufacturing Manufacturing plays a crucial role in today s society. To keep up with our growing population s increasing demand for various products, organizations explore ways to streamline manufacturing processes while simultaneously minimizing costs. These organizations often find that using computers in the manufacturing process requires fewer people-hours, and products and parts are manufactured with greater accuracy and less waste. Automakers, for example, manufacture cars on an assembly line. In the early years of car manufacturing, people were involved at all stages of the manufacturing process, and it was not uncommon to find hundreds or thousands of individuals working along the line. Although the assembly line allowed individuals to manufacture cars as quickly as they could, companies soon realized that computer-aided manufacturing (CAM) would increase output and decrease labor costs. In fact, CAM proved to be most effective when used in conjunction with computer-aided design (CAD). CAD designs an item, such as a car, to manufacture; CAM then manufactures the car according to the original design. Computers also determine the exact amount of material necessary to build the car, as well as the expected output. Communications during the assembly process is critical. Computers automatically communicate with each other along the assembly line and provide alerts when factors arise that can interrupt the process. For example, running out of hinges that attach the door to the rest of the car s body will halt the line until someone replenishes the hinges. Computers, however, often alert individuals to low supplies before they run out and the assembly halts. Failure to detect the absence of hinges might result in the machinery that is manufacturing the car to think that it is attaching hinges when in fact it is not. This might result in damage to the door and/or the car s body further along the assembly line. Today, computers assist with manufacturing many types of items. Although some might argue that computers perform jobs that people once held, their introduction has helped to meet our increased demand and desire for low prices. For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Computer Work resource for this book, and then click Manufacturing.

37 698 Chapter 13 Programming Languages and Program Development High-Tech Talk Acid3 Browser Test: Verifying Standards Support Each day, people work to develop new technologies intended to enhance a user s Web browsing experience by creating more dynamic and interactive Web pages. Simultaneously, companies such as Microsoft, Mozilla, and Google work to create new Web browser versions that include features designed to help people search and browse the Web more efficiently. In addition to providing new and exciting features with each release, new Web browsers also should support new technologies that Web developers are including in Web pages and Web applications. As presented earlier in the book, each Web browser might display a Web page with slight differences. For example, the top margin on a Web page might be twice as thick in Internet Explorer as it is in Firefox. While this might not seem significant, positioning Web page elements accurately often is necessary to display information properly, in the manner that the Web developer intends. For this reason, The Web Standards Project has created a series of test pages designed to inform users whether their browser supports certain Web technologies. In 1998, The Web Standards Project developed Acid1, the first in the series of three tests designed to test a Web browser s interpretation of the first version of basic HTML and cascading style sheets (CSS1). In 2005, The Web Standards Project introduced the Acid2 test, which tested Web standards such as CSS positioning, CSS table formatting, and hovering effects. Throughout the past several years, new Web technologies have led companies to develop new versions of their Web browsers more frequently. The Web Standards Project released the Acid3 Browser Test in early During an Acid3 Browser Test, the Web browser displays a percentage counter that gradually increases. When the counter reaches 100 and displays a page similar to the one in Figure 13-40, it is an indication that the browser has passed the test. The Acid3 Browser Test uses JavaScript to perform approximately 100 subtests. These subtests evaluate how the Web browser interprets newer Web technologies such as DOM2, ECMAScript, Media Queries, Selectors, XHTML, CSS2, CSS2.1, CSS3, and Standard Vector Graphics (SVG). To perform an Acid3 Browser Test using a Web browser, you first should ensure that the Web browser is configured with the default settings. If you have changed settings such as the default font, view, or zoom, you should return them to their original settings before performing the test. Failure to do so might result in incorrect test results. Once the browser is configured with the default settings, type in the Address bar and then press the ENTER key. A Web page then will be displayed with a counter beginning at zero. The counter slowly increments as the tests are performed. The counter s value increasing is indicative of the Web browser passing additional subtests. If the counter stops for more than a few seconds, does not increment smoothly, or the graphic on the screen is not arranged similarly to Figure 13-40, the Web browser has not passed the Acid3 Browser Test. If the browser does not pass the test, you first should make sure that you are using the most recent version of the Web browser and that you have downloaded and installed all updates and security patches. You also should ensure that the Web browser is performing the test with its default settings. The Acid3 Browser Test is one of the only tests that comprehensively measures compliance with many current Web standards. If ever you must decide which Web browser to use, consider the one that passes, or comes closest to passing, the Acid3 Browser Test. For more information, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 High-Tech Talk resource for this book, and then click Acid3 Browser Test. Figure Web browsers that pass the Acid3 Browser Test display this Web page at the conclusion of the test. The version of the Safari Web browser in this figure has passed the Acid3 Browser Test.

38 Programming Languages and Program Development Chapter Companies on the Cutting Edge ELECTRONIC ARTS (EA) Entertainment Software Developer Video gaming is one of the more popular forms of recreation among people of all ages. Game sales are increasing among all age groups, and demand for Wii products is especially high among adult gamers. Electronic Arts (EA) is an entertainment software publishing company that develops video games for game consoles, computers, mobile devices, and the Internet. The company had thirty-one products that sold more than one million copies in a recent year, three of which sold more than five million copies: FIFA, Madden NFL, and Need for Speed Undercover. Electronic Arts has been developing video games since From the beginning, EA has referred to its programmers as software artists who can evoke emotions from game enthusiasts. Its yearly revenues of more than $3 billion are generated from its sales of action, fantasy, sports, and strategy software for the PlayStation, Xbox, Wii, and Game Boy systems. SUN MICROSYSTEMS Products and Services Provider The network is the computer according to Sun Microsystems vision. Corporation leaders believe network participation drives originality, development, and open source leadership. Nearly every sector of society and industry uses Sun s innovative products. Its software, systems, services, and electronics help run more than five billion devices, ranging from the world s largest data centers to some of the smallest consumer electronics. The company s NASDAQ symbol is JAVA, which represents its status as being the creator and leading advocate of Java technology. Other top products are the MySQL database management system, StorageTek, and the UltraSPARC processor. In 2010, Oracle acquired Sun Microsystems for approximately $7.4 billion. The integration of these two leading companies provides a combination of the best enterprise software with proven computer systems critical to the operation of many businesses. For more information, visit the Computer Concepts CourseMate Web site at and then navigate to the Chapter 13 Companies on the Cutting Edge resource for this book. Technology Trailblazers ALAN KAY Computer Pioneer The connection between music and creative thinking has been researched for years, and jazz musician and computer scientist Alan Kay exemplifies how people with musical talent process innovative thoughts. Kay is president of the Viewpoints Research Institute, a nonprofit organization funded by the National Science Foundation and involved in the One Laptop per Child project. The computer scientist is credited with developing object-oriented languages and graphical user interfaces. His plans for a small, portable computer with a wireless network and storage, called the Dynabook, pioneered the concept of mobile learning in 1968; its purpose was to give children access to digital content. He did much of his early research at the Department of Defense Advance Research Project Agency (DARPA). At Xerox s Palo Alto Research Center (PARC), he invented Smalltalk, which is the technical basis of the Apple Macintosh. He also has worked at Apple, Atari, Walt Disney Imagineering, and HP. JAMES GOSLING Java Engineer and Architect Songwriter and musician Neil Young has teamed with Sun Microsystems James Gosling to develop a hybrid 1959 Lincoln Continental that will compete for the Automotive X prize, a contest for vehicles getting at least 100 mpg. The two Canadian-born innovators have named their car the Linc Volt, and its performance system is monitored by Java technology. Gosling is the mastermind behind Java, and he affectionately is called the father of Java. He was raised near Calgary, Alberta, and spent much of his free time turning spare machine parts into games. At 15, he wrote software for the University of Calgary s physics department. When he was hired at Sun, he built a multiprocessor version of UNIX, developed compilers to convert program code into machine language, and wrote a UNIX text editor. He served as Sun s vice president and Oracle s chief technology officer until resigning in He was named an officer of the Order of Canada for demonstrating an outstanding level of talent and service to Canadians. For more information, visit the Computer Concepts CourseMate Web site at and then navigate to the Chapter 13 Technology Trailblazers resource for this book.

39 Chapter 13 Programming Languages and Program Development STUDENT ASSIGNMENTS Chapter Review 1. How Are Machine Languages Different from Assembly Languages? A programming language is a set of words, abbreviations, and symbols that enables a programmer, often called a developer, to communicate instructions to a computer. A machine language uses a series of binary digits, or combinations of numbers and letters that represent binary digits, and is the only language a computer directly recognizes. With an assembly language, a programmer writes instructions using symbolic instruction codes, which are meaningful abbreviations. 2. What Is the Purpose of Procedural Programming Languages, and What Are the Features of C and COBOL? In a procedural language, or thirdgeneration language (3GL), a programmer writes instructions that tell a computer what to accomplish and how to do it. Programmers use English-like words to write instructions, which simplifies the program development process for the programmer. A compiler or an interpreter translates the 3GL source program into machine language object code or object program that a computer can execute. Standard procedural languages include C and COBOL. C is a powerful language that requires professional programming skills and is used for business and scientific problems. It runs on almost any type of computer or operating system. COBOL (COmmon Business-Oriented Language) is a programming language designed for business applications that uses English-like statements that are easy to read, write, and maintain. 3. What Are the Characteristics of Object-Oriented Programming Languages and Program Development Tools? Programmers use an object-oriented programming (OOP) language or object-oriented program development tool to implement object-oriented design. A program that provides a user-friendly environment for building programs often is called a program development tool. An object is an item that can contain both data and the procedures that read or manipulate the data. A major benefit of OOP is the ability to reuse and modify existing objects, allowing programmers to create applications faster. Often used in conjunction with OOP, RAD (rapid application development) is a method of developing software in which a programmer writes and implements a program in segments instead of waiting until the entire program is completed. OOP languages include Java, C11, and C#. Java uses a just-in-time ( JIT) compiler to convert bytecode into machine-dependent code that is executed immediately. The Chapter Review reinforces the main concepts presented in this chapter. To listen to an audio version of this Chapter Review, visit the Computer Concepts CourseMate Web site at and then navigate to the Chapter 13 Chapter Review resource for this book. The Microsoft.NET framework, or.net, allows almost any type of program to run on the Internet or an internal business network, as well as stand-alone computers and mobile devices. C11 is an object-oriented extension of the C programming language. C# is based on C11 and has been accepted as a standard for Web applications and XML-based Web services. F# is a new programming language that combines the benefits of an object-oriented language with the benefits of a functional language. Visual Studio is Microsoft s suite of program development tools that assists programmers in building programs for Windows, Windows Mobile, or operating systems that support.net. Visual Studio includes the programming languages Visual Basic, Visual C11, and Visual C#. A visual programming language uses a visual or graphical interface, called a visual programming environment (VPE), for creating all source code. Two other program development tools include Delphi and PowerBuilder. Visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Quiz Yourself resource for this book, and then click Objectives What Are the Uses of Other Programming Languages and Other Program Development Tools? A 4GL (fourth-generation language) is a nonprocedural language that enables users to access data in a database. A popular 4GL is SQL, a query language for relational databases. An application generator creates source code or machine code from a specification of the required functionality. A macro, which is a series of statements that instructs an application how to complete a task, allows users to automate routine, repetitive tasks. 5. What Are Web Page Program Development Techniques Such as HTML and XHTML, XML and WML, Scripting Languages, DHTML, Ruby on Rails, Web 2.0 Development, and Web Page Authoring Software? Web developers use a variety of techniques to create Web pages. HTML (Hypertext Markup Language) is a special formatting language that programmers use to format documents for display on the Web. XHTML (extensible HTML) is a markup language that includes features of HTML and XML. XML and WML are popular formats used by Web developers. A scripting language is an nonstring ing= DB BPr ider DB B. Sel tit Que de ec Que Sel & Q

40 Programming Languages and Program Development Chapter Chapter Review interpreted language that programmers use to add dynamic content and interactive elements to Web pages. Popular scripting languages include JavaScript, Perl, PHP, Rexx, Tcl, and VBScript. Dynamic HTML (DHTML) is a type of HTML that allows developers to include more graphical interest and interactivity in a Web page. Ruby on Rails (RoR or Rails) is an open source framework that provides technologies for developing object-oriented, database-driven Web sites. Web 2.0 Web sites often use RSS 2.0 and Ajax. Developers use Web page authoring software to create sophisticated Web pages. Four popular Web page authoring programs are Dreamweaver, Expression Web, Flash, and SharePoint Designer. 6. How Are Popular Multimedia Authoring Programs Used? Multimedia authoring software allows developers to combine text, graphics, animation, audio, and video into an interactive presentation. Popular authoring software includes ToolBook and Director. ToolBook has a graphical user interface and uses an object-oriented approach so that programmers can design multimedia applications using basic objects. Director has powerful features that allow programmers to create highly interactive multimedia applications. Visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Quiz Yourself resource for this book, and then click Objectives What Are the Six Steps in the Program Development Life Cycle? The program development life cycle (PDLC) is a series of steps programmers use to build computer programs. The program development life cycle consists of six steps: (1) analyze requirements, (2) design solution, (3) validate design, (4) implement design, (5) test solution, and (6) document solution. "Database=DB home: Username e = " Database provider er ec t id, name, quan- e id between p by id, name ctsq QL1 & QueryS rysql1 8. How Is Structured Design Different from Object-Oriented Design? In structured design, a programmer typically begins with a general design and moves toward a more detailed design. A programmer starts with the program s major function, called the main routine or main module, and breaks it down into smaller sections, called subroutines or modules. Structured design results in programs that are reliable and easy to read and maintain, but it does not provide a way to keep the data and the program together and can result in redundant programming code. With object-oriented (OO) design, the programmer packages the data and the program (or procedure) into a single unit, an object. Objects are grouped into classes. A detailed class diagram represents each object, its attributes (data), and its methods (procedures). The programmer translates the methods into program instructions. 9. What Are the Basic Control Structures and Design Tools Used in Designing Solutions to Programming Problems? A control structure, also known as a construct, depicts the logical order of program instructions. A sequence control structure shows one or more actions following each other in order. A selection control structure tells the program which action to take, based on a certain condition. Two types of selection control structures are the if-then-else control structure, which yields one of two possibilities (true or false), and the case control structure, which can yield one of three or more possibilities. The repetition control structure enables a program to perform one or more actions repeatedly as long as a certain condition is met. The two forms of the repetition control structure are: the do-while control structure, which tests a condition at the beginning of the loop, in a process called a pretest, and continues looping as long as a condition is true; and the do-until control structure, which tests a condition at the end of the loop, in a process called a posttest, and continues looping until the condition is true. Some design tools include a program flowchart, or simply flowchart; pseudocode; and the UML (Unified Modeling Language). Visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 Quiz Yourself resource for this book, and then click Objectives 7 9. STUDENT ASSIGNMENTS

41 Chapter 13 Programming Languages and Program Development STUDENT ASSIGNMENTS Key Terms Primary Terms (shown in bold-black characters in the chapter) 4GL (674) ActiveX (680) ActiveX control (680) Ajax (684) applet (680) application generator (676) assembly language (665) ATOM (679) beta (696) bugs (696) C (668) C# (671) C++ (671) COBOL (668) code review (694) coding (694) computer program (664) control structure (689) counter (680) debugging (696) Delphi (673) Director (685) Dreamweaver (685) dynamic HTML (DHTML) (683) Expression Web (685) F# (671) Flash (685) flowchart (691) flowcharting software (692) hierarchy chart (688) HTML (678) IDE (integrated development environment) (669) image map (680) implementation (694) Condition Action True You should know the Primary Terms and be familiar with the Secondary Terms. The list below helps focus your study. False do-while control structure (690) To see an example of and a definition for each term, and to access current and additional information from the Web, visit the Computer Concepts CourseMate Web site at and then navigate to the Chapter 13 Key Terms resource for this book. Java (670) JavaScript (682) logic error (693) machine language (665) macro (676) maintaining (686) multimedia authoring software (685).NET (670) nonprocedural language (674) object-oriented (OO) design (689) object-oriented programming (OOP) language (669) Perl (682) PHP (682) PowerBuilder (674) procedural language (666) processing form (680) program development (686) program development life cycle (PDLC) (686) programmer (664) programming language (664) programming team (687) RAD (669) Rexx (682) RSS 2.0 (679) Ruby on Rails (683) run-time error (695) script (680) servlet (680) SharePoint Designer (685) source program (666) SQL (674) structured design (688) syntax (694) syntax error (695) Tcl (682) test data (694) third-generation language (3GL) (666) ToolBook (685) VBScript (683) Visual Basic (672) Visual C# (673) Visual C++ (673) visual programming language (673) Visual Studio (671) Web page authoring software (685) WML (679) XHTML (678) XML (679) Secondary Terms (shown in italic characters in the chapter) algorithm (668) annotation symbol (691) API (684) ASCII file (694) ASP.NET (670) assembler (666) bytecode (670) cascading style sheet (CSS) (683) case control structure (690) CGI (common gateway interface) (680) CGI script (680) CLR (670) code (664) code snippets (671) comment symbol (691) comments (694) COmmon Business-Oriented Language (668) compiler (666) construct (689) dead code (696) debug utility (696) debugger (696) design tools (691) desk check (694) developer (664) document object model (DOM) (683) do-until control structure (690) do-while control structure (690) Eclipse (670) elements (678) encapsulation (689) event (669) event-driven program (669) execute (666) extreme programming (XP) (695) form (676) fourth-generation language (674) functional language (671) global comments (694) high-level language (665) Hypertext Markup Language (678) if-then-else control structure (689) internal comments (694) interpreter (667) IPO chart (687) Java EE ( Java Platform, Enterprise Edition) (670) Java Platform, Micro Edition ( Java ME) (670) Java Platform, Standard Edition ( Java SE) (670) just-in-time ( JIT) compiler (670) keywords (695) loop (690) low-level language (664) machine-dependent language (664) machine-independent language (665) macro (assembly language) (666) macro recorder (676) main module (688) main routine (688) menu generator (676) Microsoft Intermediate Language (MSIL) (670) modules (688) mouse rollover (682) mouseover (682) object (669) object code (666) object program (666) open language (682) posttest (690) Practical Extraction and Report Language (682) pretest (690) program development tool (664) program flowchart (691) program logic (687) pseudocode (692) Rails (683) rapid application development (669) repetition control structure (690) report writer (676) REstructured extended executor (682) RoR (683) Ruby (683) scripting language (682) selection control structure (689) sequence control structure (689) solution algorithm (687) structure chart (688) style sheet (679) subroutines (688) symbolic address (666) symbolic instruction codes (666) tags (678) Tool Command Language (682) top-down design (688) validate (693) Visual Basic for Applications (VBA) (676) Visual Basic, Scripting Edition (683) visual programming environment (VPE) (673) Visual Studio Tools for Office (VSTO) (671) Web developers (678) XSL (679) XSLT (679)

42 Programming Languages and Program Development Chapter Checkpoint True/False Mark T for True and F for False. The Checkpoint exercises test your knowledge of the chapter concepts. The page number containing the answer appears in parentheses after each exercise. The Beyond the Book exercises will help broaden your understanding of the concepts presented in this chapter. To complete the Checkpoint exercises interactively, visit the Computer Concepts CourseMate Web site at and then navigate to the Chapter 13 Checkpoint resource for this book. 1. Just as humans speak a variety of languages, programmers use a variety of programming languages and tools to create programs. (664) 2. With a procedural language, often called a third-generation language (3GL), a programmer uses a series of English-like words to write instructions. (666) 3. Programmers use Java Platform, Micro Edition (Java ME) to create programs for smart phones and other mobile devices. (670) 4. The Microsoft.NET Framework is a set of technologies that allows almost any type of program to run on the Internet or an internal business network, as well as stand-alone computers and mobile devices. (670) 5. HTML (Hypertext Markup Language) is a special formatting language that programmers use to format documents for display on the Web. (678) 6. ATOM allows Web developers to design pages specifically for microbrowsers. (679) 7. An applet usually runs slower than a script. (680) 8. Ruby on Rails is an open source framework that provides technologies for developing object-oriented, database-driven Web sites. (683) 9. Expression Web is used strictly on Linux Web servers. (685) 10. A selection control structure shows one or more actions following each other in order. (689) STUDENT ASSIGNMENTS Multiple Choice Select the best answer. 1. A(n) reads a code statement, converts it to one or more machine language instructions, and then executes those machine language instructions. (667) a. compiler b. interpreter c. source program d. symbolic address 2. An OOP language is, which means an OOP language program checks for and responds to events such as pressing a key or typing a value. (669) a. event based b. interpreted c. event driven d. compiled 3. When programmers compile a(n) program, the resulting object code is called bytecode, which is machine independent. (670) a. C b. assembly language c. Java d. all of the above 4. is a popular fourth-generation query language that allows users to manage, update, and retrieve data in a relational DBMS. (674) a. SQL b. COBOL c. XML d. RPG 5. is a subset of the Visual Basic language that allows programmers to add intelligence and interactivity to Web pages. (683) a. VBScript b. Flash c. Ajax d. SQL 6. is a Web page authoring program that is part of the Microsoft Office and SharePoint families of products. (685) a. PHP b. Ajax c. SharePoint Designer d. Flash 7. by Adobe Systems, is a Web page authoring program that allows Web developers to create, maintain, and manage professional Web sites. (685) a. Ajax b. Flash c. Expression Web d. Dreamweaver 8. The concept of packaging data and procedures into a single object is called. (689) a. object code b. encapsulation c. an object program d. a control structure

43 Chapter 13 Programming Languages and Program Development Checkpoint STUDENT ASSIGNMENTS Matching Match the terms with their definitions. 1. Java (670) 2. C++ (671) 3. F# (671) 4. 4GL (674) 5. macro (676) 6. PHP (682) 7. API (684) 8. pretest (690) 9. posttest (690) 10. code review (694) a. collection of tools that programmers use to interact with an environment such as a Web site or operating system b. process of testing a condition at the end of a loop c. series of statements that instructs an application how to complete a task d. object-oriented extension of the C programming language e. free, open source scripting language f. process of programmers, quality control testers, and/or peers reviewing code in order to locate and fix errors so that the final programs work correctly g. object-oriented language that uses a just-in-time compiler h. process of testing a condition at the beginning of a loop i. nonprocedural language that enables users and programmers to access data in a database j. combines the benefits of an object-oriented language and a functional language Short Answer Write a brief answer to each of the following questions. l. How is a compiler different from an interpreter? What is the advantage, and disadvantage, of an interpreter? 2. What is a major benefit of OOP? How is RAD (rapid application development) used for developing software? 3. What is included in an integrated development environment? Describe the programming languages in the Visual Studio suite. 4. How is XML used? Describe two applications of XML. 5. Describe two activities performed by the programmer when documenting a solution. Why is proper documentation important? Beyond the Book Follow the book element instructions below; present your findings (brief report, presentation, discussion, or other means). 1. Ethics & Issues Select an Ethics & Issues in this chapter (677, 681, 688, 696), find a recent newspaper/ magazine article that supports one point of view presented, and then evaluate the article. 2. Computer Work Use the Web or a recent newspaper/magazine to locate three additional unique usages of computer technology in manufacturing (697). What makes the use of these technologies unique to manufacturing? 3. Companies on the Cutting Edge and Technology Trailblazers Use the Web or a recent newspaper/ magazine to locate an interesting fact about Electronic Arts (EA), Sun Microsystems, Alan Kay, or James Gosling that was not presented in the chapter (699). 4. High-Tech Talk Locate a recent newspaper/ magazine article that discusses topics related to Acid3 Browser Test (698). Would you recommend the article you found? Why or why not? 5. FAQs and Web Links Use the Web or a recent newspaper/magazine to locate three additional facts about an FAQ (675, 680, 683, 694, 697) and Web Link (668, 670, 671, 677, 679, 682, 683, 684, 689, 692, 696) that were not presented in the chapter. 6. Looking Ahead Use the Web or a recent newspaper/ magazine to discover additional uses of the technology presented in Selecting Programming Languages with Long Lives (675). 7. Innovative Computing Use the Web or a recent newspaper/magazine to locate two additional interesting facts about Online Calculators Answer Life s Questions (668) or View the World from Your Computer (684). 8. Making Use of the Web Visit three of the Health sites (137) and outline the information on each Web site and the possible uses for each Web site. 9. Web 2.0 Program Development Read the Web 2.0 Programming Development feature (712). Use the Web or a magazine article to research other Web 2.0 program development tools.

44 Programming Languages and Program Development Chapter Learn It Online 1 At the Movies Electronic Arts Going Mobile Watch a movie to learn about how Electronic Arts is tackling the mobile video game market and then answer questions about the movie. 2 Video and Audio: You Review It Web 2.0 Search for, choose, and write a review of a video, podcast, or vodcast that discusses Web Student Edition Labs Visual Programming and Creating Web Pages Enhance your understanding and knowledge about visual programming and creating Web pages by completing the Visual Programming and Creating Web Pages Labs. 4 Practice Test Take a multiple choice test that checks your knowledge of the chapter concepts and review the resulting study guide. 5 Who Wants To Be a Computer Genius 2? Play the Shelly Cashman Series version of this popular game by answering questions to find out if you are a computer genius. Panic buttons are available to provide assistance during game play. The Learn It Online exercises are interactive Web exercises designed to reinforce and expand your understanding of the chapter concepts. The descriptions below briefly summarize each exercise. To complete the Learn It Online exercises, visit the Computer Concepts CourseMate Web site at navigate to the Chapter 13 resources for this book, click the link for the exercise you want to complete, and then read the instructions. 6 Wheel of Terms Identify important key terms presented in this chapter by playing the Shelly Cashman Series version of this popular game. 7 You re Hired! Embark on the path to a career in computers by answering questions and solving puzzles related to concepts discussed in this chapter. 8 Crossword Puzzle Challenge Complete an interactive crossword puzzle to reinforce concepts presented in this chapter. 9 Windows Exercises Step through the Windows 7 exercises to learn about searching for executable files, using the Movie Box Office simulation, adjusting keyboard speed, and using the Loan Payment Calculator. 10 Exploring Computer Careers Read about a career as a programmer, search for related employment advertisements, and then answer related questions. 11 Web Apps Google Earth Learn how to download and use Google Earth on your computer, fly to your neighborhood and zoom in, view satellite images of your favorite nearby businesses, and show and hide various layers. STUDENT ASSIGNMENTS

45 Chapter 13 Programming Languages and Program Development STUDENT ASSIGNMENTS Problem Home 1. Incorrect Program Starts In an attempt to open a Microsoft Word document, you double-click the document s associated icon. Instead of the document opening in Microsoft Word, however, it opens in WordPad and displays many unrecognizable characters. What might have caused this? 2. Problem with Macro You created a macro in one document and made it available to other documents on your computer. When you run the macro in another document, however, it does not function properly. What might be wrong? 3. Nonfunctional Web Page Your friend found a Web page containing classic arcade games that you played many years ago. Instead of sending you the Web address, he saved the Web page and sent it to you as an attachment. When you open the attachment on your computer, the Web page displays, but the games do not work. What might have caused this? 4. Web Page Syntax Error When you attempt to display a Web page, an error message appears and the Web page does not dis play properly on your screen. The error message cites a syntax error and asks you if you would like to debug. How will you respond? 5. Web Browser Differences The Internet Explorer and Firefox Web browsers both are installed on your computer, although you primarily The Problem Home exercises extend your knowledge of the chapter concepts by seeking solutions to practical computer problems that you may encounter at home or school. The Collaboration exercise should be completed with a team. In the real world, practical problems often can be solved in multiple ways. Provide one solution to each of the following problems using available resources, such as articles on the Web or in print, blogs, podcasts, videos, television, user guides, other individuals, and electronics and computer stores. You may need to use multiple resources to obtain an answer. Present your solutions in the form requested by your instructor (brief report, presentation, discussion, or other means). use Internet Explorer to view Web pages. When you view your favorite Web page using Firefox instead of Internet Explorer, the Web page does not appear the same. Why does the same Web page appear differently on the two browsers? 6. Underlined Code While writing a program in Visual Basic, you notice that some portions of your code are underlined in red. What might be causing this? 7. Unexplained Message After filling out a form on a Web page, you attempt to submit it. Upon clicking the Submit button, however, the Windows Mail program starts on your computer and displays a new, blank message that is addressed to an address you do not recognize. In addition, the message appears to have a file attached to it. What might be causing this? 8. Requirements Not Met While attempting to install the latest version of Windows on your computer, a message displays informing you that your computer does not meet the minimum system requirements. What are your next steps? 9. Program Will Not Run You have written a program to help keep track of your calorie intake. When attempting to run the program for the first time, you receive an error message indicating a syntax error. You review the program code and are unable to locate the error. What are your next steps? Collaboration 10. Upgrade Options Your company has outgrown one of its existing custom software packages and needs to update the existing custom software, purchase new custom software, or purchase packaged software. You know from your computer concepts course that each option has advantages and disadvantages. Form a team of three classmates. One team member should research the advantages and disadvantages of updating the existing software, another team member should research the advantages and disadvantages of purchasing new custom software, and the last team member should research the advantages and disadvantages of purchasing new packaged software. Discuss your findings as a team, compile them into a report, and submit the report to your instructor.

46 Programming Languages and Program Development Chapter Problem Work The Problem Work exercises extend your knowledge of the chapter concepts by seeking solutions to practical computer problems that you may encounter at work. The Collaboration exercise should be completed with a team. In the real world, practical problems often can be solved in multiple ways. Provide one solution to each of the following problems using available resources, such as articles on the Web or in print, blogs, podcasts, videos, television, user guides, other individuals, and electronics and computer stores. You may need to use multiple resources to obtain an answer. Present your solutions in the form requested by your instructor (brief report, presentation, discussion, or other means). 1. Enabling and Disabling Macros While opening a Microsoft Excel workbook, a message displays on the screen asking if you would like to enable or disable macros. You do not recall adding macros to your workbook. How will you respond? 2. Problem Installing Custom Program After using an application generator to create a program, you save it on a USB flash drive and give the USB flash drive to your colleague so that she can install the program on her computer. She claims, however, that the program does not work on her computer. Why might the program work on your computer, but not on her computer? 3. Program Appears Frozen The human resources department has just released a new program used to calculate payroll for each employee. After you enter the payroll data for each employee, you click a button to calculate everyone s pay for that pay period. After clicking the button, the program becomes unresponsive and appears frozen. What might be wrong? 4. Database Connection Problem You have just written a program that connects to your organization s database to retrieve customer information. When you start the program, an error message is displayed stating that there is a problem connecting to the database. What might be causing this? 5. Unknown Language Several years ago, a programmer who no longer is with the company wrote a program for your company using an older programming language. Your colleague has discovered a bug in the program, but nobody knows the language to be able to fix the bug. What are your options? 6. Interface Not Intuitive The users at work complain that the user interface in your new program is not intuitive. What might have caused this? What are your next steps? 7. Cannot Change Web Site You are modifying your company s Web site using a text editor. When you click the Save button to save your changes, the changes are not reflected on the live Web site. What might be wrong? 8. Old Macro You discover that a macro you wrote using an older version of Microsoft Word does not work in the newest version of Word. What are your next steps? 9. Control Structures While writing a program, you must decide which control structure to use to determine whether an employee has worked overtime. Which control structure will you use, and why? STUDENT ASSIGNMENTS Collaboration 10. Computers in Manufacturing Today, computers are used in the manufacturing of nearly every type of item. Your instructor would like everyone to realize the importance of computers in today s society and requests that each person find an item and determine how computers might have been used to assist in the manufacturing process. Form a team of three people. Each team member should locate one item that he or she believes was manufactured with the help of a computer. Then, team members should research exactly how computers were used and record their findings. Finally, the three team members should compare their research to discover similarities and differences and then compile their findings into a brief report.

47 Chapter 13 Programming Languages and Program Development Learn How To The Learn How To activities step you through fundamental technology skills when using a computer. The Learn How To exercises enable you to become more proficient with these skills. STUDENT ASSIGNMENTS Learn How To 1: Design and/or Evaluate a Graphical User Interface (GUI) In most cases, when you interact with a program or a Web site, you are looking at and responding to a graphical user interface (GUI). Often, your ability to use the program or Web site effectively will depend on the design of the GUI. If it is easy to use and follow, your experience will be productive and enjoyable. Conversely, if you have to struggle to figure out how to enter data or which button to click, the GUI is defeating the purpose of the program. Modern program designers spend 25 percent to 40 percent of their time creating and perfecting the user interface, sometimes called the presentation layer of a program. They do this because they realize the importance of user interaction with the program. If the user interface is not productive and easy to use, the user will not be satisfied with the program regardless of how well it does its work. The user interface includes both the graphics and text shown on the screen, as well as the methods a user can use to interact with the software and cause operations to occur. Three primary means of interacting in a user interface are the keyboard, a pointing device such as a mouse, and voice input. The correct use of these tools significantly will increase the success of a user interface. The ultimate goal of a user interface is to allow a user to interact with the interface and the underlying program in an intuitive and familiar way. If the user must stop and think how to use the interface, then the interface has failed. Therefore, if you are designing a user interface for a program, or merely evaluating a program and its user interface, you should apply a variety of guidelines to a user interface to determine its usability, including the following: 1. Using the interface should feel natural and normal. This requirement means the software developer must be aware of who the user is and the manner in which the user is accustomed to working. For example, the interface for a banking program where a teller is entering account information will be different from that of a graphic arts program that allows manipulation of graphics and photos. Both must reflect the needs of the user. text box password box option buttons check boxes 2. A graphical user interface offers a wide variety of elements (Figure 13-41), many of which can be used for similar purposes. A good user interface uses the most appropriate element for each requirement. In addition, once an element is used for a particular purpose, such as a button being used to cause a particular action, then that same element should be used for the same purpose through the program interface. 3. The elements must be arranged in the sequence in which they are used so that the user is able to move from item to item on the screen in a logical, straightforward manner. This requirement once again requires the designer to understand the needs of the user. When this rule is not followed, a confusing interface can occur (Figure 13-42). If it is followed, however, the interface is clear and easy to use (Figure 13-43). 4. The interface should be kept as simple as possible, while containing all the functionality required for the program. Generally, the simpler the interface, the more effective the interface will be. Figure toolbar labels menu bar buttons text box

48 Programming Languages and Program Development Chapter Learn How To 5. When implemented, the user interface should be intuitive, which means the user should be able to use it with little or no instruction. In fact, the user should feel that no other interface could have been designed because the one they are using is the most natural. Implementing the Interface In most cases, a graphical user interface is designed using a visual programming environment such as Visual Studio. This product allows Figure the developer to place the GUI elements on a form, which becomes the window when the program runs. Often, the developer will produce a prototype interface, in which the elements are placed in the window but few of them are functional. This prototype allows the user to see and feel the interface well before the program is ready for actual implementation. Then, the users can provide feedback to the developer regarding their likes and dislikes. The developer will make adjustments, or sometimes whole new designs, to meet the needs of the users. This process can occur multiple times until the users are satisfied with the GUI design. Figure STUDENT ASSIGNMENTS Evaluating Application Software One important factor when you are a user or purchaser of software is your analysis of the user interface. As you evaluate software, it is critical to remember that the user interface is as important as the functions the software performs. If you cannot use the software effectively through the user interface, then no matter how wonderful the functions of the software might be, the software cannot be useful to you. Exercises 1. Start three different programs from three different application software developers. For example, you could start a program from Microsoft, one from Apple, and one from Adobe. What similarities do you find in the user interface for each of these programs? What differences do you observe? Does one use color more than the others? Are different fonts used? Which do you find most effective? Why? If you had to choose one interface, which one would you choose? Why? Submit your answers to your instructor. 2. Web sites also should follow the principles of good user interface design. Visit three different sites where you can make purchases, including at least one airline site where you can make an airline reservation. Without actually buying anything (unless you want to), evaluate the procedures you had to follow in order to make the reservation or purchase. Which was the easiest to use? Which was the most difficult? Why? Did the usefulness of the user interface on the Web site influence whether you would use the Web site again? Why? Submit your answers to your instructor. 3. While both the Apple Mac OS and Windows interfaces are GUIs, they differ considerably. Conduct some common operations, such as starting and quitting a program, copying and pasting, and deleting on both a Windows computer and an Apple computer. How does using each of the interfaces differ? (Remember that the mouse is part of the user interface.) Also, start the same program, such as Microsoft Word or Adobe Photoshop, on both a Windows computer and an Apple computer. What differences between the program interfaces do you observe? Which interface do you prefer? Why? Submit your answers to your instructor.

49 Chapter 13 Programming Languages and Program Development Web Research The Web Research exercises broaden your understanding of the chapter concepts by presenting questions that require you to search the Web for answers. STUDENT ASSIGNMENTS 1 Search Sleuth Use one of the search engines listed in Figure 2-10 in Chapter 2 on page 85 or your own favorite search engine to find the answers to the following questions. Copy and paste the Web address from the Web page where you found the answer. Some questions may have more than one answer. If required, submit your answers to your instructor. (1) Which programming language uses a mouse pointer shaped in the form of a turtle? (2) Which programming language did David Heinemeier Hansson create in 2003? (3) What is the purpose of a browser sniffer? (4) Which programming language was developed from a language called Oak? (5) Which topics are discussed in the first three articles listed in the News section of the W3C Web site? 2 Green Computing The U.S. Department of Energy has determined that businesses and schools can reduce their energy consumption up to 20 percent by using asset management software. This type of program can determine energy consumption and then ensure appliances and electronic devices are operating at peak efficiency with the lowest operating costs. Visit the Web sites of several companies that have developed asset management software, including Infor (infor.com/goinggreen), Amitec Ltd. (amitec-g.com), and IBM (www-01.ibm.com/ software/tivoli), and locate information about the monitoring programs. Which companies and colleges have installed this software? How does the software monitor current energy use and then measure the organization s carbon footprint? How often are the intervals set to take readings and then evaluate the data? Write a report summarizing your findings, and include a table of links to Web sites that provide additional details. 3 Social Networking Members of online social communities face the responsibility to act civilly and follow proper etiquette rules. The Ultimate Social Media Etiquette Handbook, which is posted on the techipedia Web site, states the rules for managing and maintaining online social relationships. In addition, several experts offer advice, including Philipp Lenssen (antispamnews.com), Tim O Reilly (radar.oreilly.com), and Reihan Salam (slate.com/id/ ). Read their columns and view the techipedia Web site (techipedia.com/social-media-etiquette-handbook) to learn about the best practices to follow when participating in online social networks. How should a networker create a personalized message? How can a sender s background information be verified? When is sharing contact lists considered appropriate? Summarize the information you read and viewed. 4 Blogs Space exploration, comets, telescopes, the International Space Station, and astrophotography are popular blogging subjects. Enthusiasts ranging from NASA astronauts (blogs.nasa.gov) to backyard astronomers (tomsastroblog.com) share their discoveries and experiences on a variety of topics. Visit these blogs along with Jonathan s Space Report (planet4589.org/jsr.html), NASA Watch (nasawatch.com), Russian Space Web (russianspaceweb.com), Space Daily (spacedaily.com), and The Write Stuff (blogs.orlandosentinel.com/news_space_thewritestuff). What are three of the more recent topics? Which images of the moon, Mars, or stars from the Hubble Space Telescope are featured? What new discoveries have been made? When is the next launch at the Kennedy Space Center? Summarize the information you read and viewed. 5 Ethics in Action The world s largest conference for hackers, DEF CON, is held each year in Las Vegas. Attendees include experts in the fields of programming, computer security, and law enforcement. Members of Hackers for Planet Earth (HOPE), the Chaos Computer Club (CCC), and the Hacktic Network promote ethical hacking to develop software that increases freedom of expression. Visit these hackers Web sites and read about their conferences and pursuits. Which topics do they discuss in their forums? Who are considered true hackers? Should some hackers be exonerated if their efforts are done with a greater purpose, such as furthering a political concern? Write a report summarizing your findings, and include a table of links to Web sites that provide additional details about hackers.

50 Programming Languages and Program Development Chapter Critical Thinking The Critical Thinking exercises challenge your assessment and decision-making skills by presenting real-world situations associated with the chapter concepts. The Collaboration exercise should be completed with a team. To evaluate the situations below, use personal experiences and available resources such as articles on the Web or in print, blogs, podcasts, videos, television, user guides, other individuals, and electronics and computer stores. You may need to use multiple resources to form conclusions and make recommendations. 1. Class Discussion Evaluating Macro Use As administrative assistant for the president of a local marketing company, you spend much of your time using application software, such as Word, Excel, Outlook, and Access. Your manager asked you to evaluate the use of macros to automate some of the repetitive tasks in the word processing work you do. Discuss two examples of common repetitive tasks in word processing that are not already available via buttons or commands. Include in your discussion the definition of a macro, how a macro automates a routine, what is involved in creating a macro, and how to invoke a macro. 2. Class Presentation Evaluating Object-Oriented Programming You manage the information technology department at National Insurance, a worldwide insurance company that specializes in high-risk policies. For the past 40 years, the company has used COBOL, a procedural language, to develop new systems, such as payroll, accounts receivable, and accounts payable. Because of extensive maintenance over the years, the programs have become sluggish and difficult to maintain. Your department is about to begin a five-year major overhaul of all the current systems. Your senior advisors in the department have recommended that the company move to an object-oriented language to replace the current systems. You are not sure that this is best for the company. Use the Web and/or print media to research the advantages and disadvantages of object-oriented programming. Use your findings to create a presentation that addresses the following questions: How difficult is it for procedural language programmers and system analysts to switch to an object-oriented language? Which is easier to implement, systems implemented in a procedural language or an object-oriented language? Why? Which would you recommend for your company? 3. Research Programming in the Future Just a decade ago, computer programs consisting of 5,000 lines of code were considered long. Today, programs can contain millions of lines of code. What will computer programming be like in the future? Some experts see such trends as continued movement toward object-oriented languages, greater participation in programming by computer users, and computers taking a more active part in programming themselves. Using the Web and/ or print media, research recent developments in programming and the impact these developments will have on the future of programming. Prepare a report on what you think programming will be like in 10 years. Be sure to address the following questions in your report: How will programming be different from what it is today? Who will be doing the programming? How will they be programming? What effect might developments in computer hardware have on programming? STUDENT ASSIGNMENTS Collaboration 4. Proper Interface Design Your company is moving to an electronic time card system that allows employees to electronically record their work hours. These hours then are sent to the payroll manager, who verifies the hours and processes the direct deposit. Your manager wants the interface to be intuitive so that employees easily can record their hours by the end of the pay period. Form a team of three people. One team member should identify the requirements for the interface that employees will use to record their hours. Another team member should interview at least three people and ask them how the interface best can be designed so that they can record their hours easily and accurately. The third team member should use the data from the other two team members to sketch the interface. Compile your findings and sketch into a brief report and then submit it to your instructor.

51 712 Special Feature Web 2.0 Program Development ALMOST ANY PROGRAM existing in a desktop environment can be made available as a Web application. Web 2.0 program development requires specialized tools and skills to provide Web users with programs that traditionally existed on the desktop. Web 2.0 developers always consider that their programs must be delivered to an ever-growing number of Web browsers, mobile devices, and even other Web applications (Figure 1). Everyday users of social networking Web sites may engage in Web 2.0 programming as they customize features of their home pages. This feature provides an overview of how Web 2.0 development differs from traditional program development and Web page development, and how developers take advantage of the tools and techniques used for Web 2.0 program development. calendar widget program calendar widget data center data center Figure 1 Programmers use a variety of tools to provide Web 2.0 applications to home, mobile, and enterprise users.

52 Web 2.0 Program Development 713 One of the main advantages of Web 2.0 program development over traditional program development is portability. That is, a Web application runs in any Web browser that supports the basic technologies of Web applications, such as HTML and JavaScript. For example, a program designed to run on a PC running a Windows operating system would require considerable reprogramming if the developer of the application decides that it also must run on Apple s Macintosh operating system. The same software designed and programmed for a Web 2.0 environment would not require reprogramming because the software would be compatible with browsers available on both operating systems. Additionally, the developer often provides the Web application for a variety of mobile devices. Web applications typically consist of three tiers. A tier is a major part of a Web application, each of which can exist in separate locations or together on a network. First tier: This tier includes the graphical user interface, which appears in the user s Web browser. The Web browser may exist on a variety of operating systems and mobile devices. to-do list widget program Second tier: The application, or logic, tier exists on the Internet or Web server. For many Web applications, this tier exists in the cloud. In this usage, the term cloud often refers to a large network of servers that simultaneously host a Web application. Third tier: The database tier stores the data necessary for the Web application. For example, in a Web application designed to function as a word processing program, the database tier stores the user s word processing documents. This tier also may be stored in the cloud. Web applications often incorporate other Web applications. The Web application being incorporated often is called a widget, or sometimes a gadget. For example, a developer creates an interactive calendar widget that allows users of the widget to create daily to-do lists. Other Web 2.0 developers reuse the calendar widget in their own Web applications when they need to provide their users with a calendar that tracks their own to-do lists. Web application program to-do list widget data center Web application data center SPECIAL FEATURE

53 714 Special Feature Web 2.0 program development differs from traditional Web page development mainly because it includes programming for graphical user interface elements that traditionally existed within desktop programs, such as drag-and-drop functionality and editing of Web page content. Many differences also exist between traditional desktop program development and Web 2.0 program development. Desktop programs typically are written for a single operating system, and the program code is guarded closely. Web 2.0 developers often provide the code or portions of the code for others to modify and reuse. Web 2.0 programmers design Web applications for use on multiple browsers in multiple operating systems, on mobile devices, and for syndication and mashups, which are discussed in detail in the next section. Syndication means that a service, such as an RSS feed, or Web application is made available to others for a fee or at no cost. For example, airlines create Web applications and syndicate them for others to incorporate the airline s flight schedules into their own Web applications. Another difference between desktop program development and Web 2.0 program development is the release schedule for new versions of the program. A company may update a Web application on a daily or weekly basis, whereas a desktop program may be updated annually or even less frequently. Web 2.0 programmers choose whether to develop code in a text editor or to use a Web 2.0 program development toolkit. Vendors provide a variety of toolkits that allow programmers to develop Web applications quickly. Some toolkits provide programmers with sophisticated tools for code editing, testing and debugging, and deploying Web applications to Web servers. Figure 2 lists popular Web 2.0 program development toolkits. Many of the toolkits utilize Ajax (see page 684 in Chapter 13) to allow communications between the client and the Web server. Web 2.0 Mashups and Social Networking Web 2.0 developers often benefit from the work of other developers. One method for creating a Web application is to create a mashup. As previously described, a Web 2.0 mashup is a Web application that includes functionality, content, and data from other Web applications, content providers, and data sources. Figure 3 shows an example of a mashup of the Google Maps Web application and data from a health database that tracks ongoing public health concerns throughout the world in real time. Web 2.0 program developers create mashups to speed development time. They also create mashups to obtain superior data and services as compared to the data and services they are capable of creating themselves. For example, the Web 2.0 developers of the HealthMap mashup (Figure 3) avoided creating sophisticated mapping software because they used the free Google Maps functionality, content, and data. A mashup often consists of Web applications, content, and data from many sources. For example, an igoogle Web page is a customizable Web application that may include several Web applications, which are called gadgets on igoogle Web pages (Figure 4). Other service providers such as Yahoo! Examples of Web Program Development Toolkits Toolkit Technologies Used Web Address Adobe Flex Adobe Flash and Adobe AIR adobe.com/products/fl ex Dojo Ajax dojotoolkit.org Echo Ajax echo.nextapp.com/site Google Web Toolkit (GWT) Ajax code.google.com/webtoolkit Microsoft.NET Framework Microsoft Visual Studio and.net Framework microsoft.com/net Microsoft ASP.NET AJAX Ajax and.net Framework asp.net/ajax Prototype Ajax prototypejs.org Ruby on Rails Ruby programming language and Ajax rubyonrails.org TIBCO General Interface Ajax tibco.com/products/soa/composite-applications/ general-interface/default.jsp Figure 2 Vendors provide a variety of Web 2.0 program development toolkits that help programmers speed development of Web applications.

54 Web 2.0 Program Development 715 and Microsoft Windows Live provide similar functionality. Additionally, igoogle Web pages allow users to create additional tabs, each of which contains gadgets. A user may create a tab for news-related gadgets and another tab for gamerelated gadgets. You can create your own igoogle Web page after signing up for a Google account. Social networking sites often allow members to customize and create Web pages using Web 2.0 technologies. Thirdparty organizations often create widgets for use by members of social networking Web sites. Figure 5 shows a widget created by Amazon used in a Facebook member s home page, resulting in a mashup. Other examples of widgets include media players, RSS feeds (see page 92 in Chapter 2), and games. Social networking Web sites often provide toolkits to assist software developers in creating new widgets. They also often allow users to write their own programming code to customize their home pages. User-as-developer is a phrase that describes the notion of Web sites allowing users to add widgets/gadgets and new programming code to Web pages. Figure 5 Social networking Web site users increase their home pages appeal by embedding widgets on their home pages. Web 2.0 Program Development and the Cloud Figure 3 This HealthMap global disease alert map is a mashup of Google Maps and a database of real-time world health data. Figure 4 With igoogle, users customize their Google home pages by choosing from thousands of gadgets. Many organizations choose to deploy, or make available, their Web applications in a cloud computing environment, often referred to simply as the cloud. As previously defined, the term cloud can refer to a large network of servers that simultaneously host a Web 2.0 site. Distributing a Web application in the cloud means that the program developers do not require Web servers and specialists to manage the servers. The cloud provides the capability for a global presence because cloud computing environments often automatically and simultaneously distribute the Web applications to many servers throughout the world. Some cloud computing providers automatically increase available resources for a Web application when the Web application is in heavy demand. For example, if an online retailer distributes a Web application, such as an online store, in a cloud environment, and one of its products becomes a popular item, the cloud computing provider automatically increases the number of servers available to the retailer s Web application. When working in a cloud computing environment, Web 2.0 developers must be attentive to security risks. The developer relies on the cloud computing provider to secure the Web application and, in many cases, the data needed for and generated by the Web application if the database tier also is located in the cloud. Developers also must be concerned with the reliability of a cloud computing provider. If a cloud computing provider encounters technical problems with their environment, then several thousand companies Web applications could be at risk of becoming unavailable to users. SPECIAL FEATURE

55 716 Special Feature Developers choose from a variety of toolkits and technologies when engaged in Web 2.0 program development. The following figures show how a programmer may develop two Web applications using two different tools. Figure 6 shows the development of a widget using the Google Web Toolkit (GWT). Figure 7 shows the development of a Web application using Microsoft s ASP.NET AJAX tools. How a Web Application Might Be Built Using the Google Web Toolkit (GWT) Step 1 The programmer uses any Java IDE (Eclipse is shown here) to create and write the Java code for the gadget. The code includes special instructions available with the GWT. Step 2 The programmer designs the user interface using panels and other elements to provide simplicity and elegance. Step 4 The programmer compiles and deploys the gadget to a Web server, which may or may not exist in a cloud environment. Step 3 The programmer writes and debugs the Java language code on his or her computer before deploying the gadget to the Web. mobile user cloud Step 5 Users interact with the gadget and/or include the gadget in their own Web pages. Web browser Figure 6 This figure shows how a Web application might be built using the Google Web Toolkit (GWT).

56 Web 2.0 Program Development 717 How a Web Application Might Be Built Using ASP.NET AJAX Step 1 The programmer uses Microsoft Visual Web Developer to create a new Web application and database. Step 2 The programmer creates a graphical user interface using Microsoft Visual Web Developer. Step 3 The programmer writes programming code using Microsoft Visual Web Developer. Step 4 The programmer publishes, or deploys, the Web application to a Web server, which may or may not exist in a cloud environment. cloud Step 5 Users interact with the Web application in a variety of manners. mobile user Web server Web browser Figure 7 This figure shows how a Web application might be built using ASP.NET AJAX. Web 2.0 Program Development: Summary As Web applications increase in number and complexity, Web 2.0 program developers who want their Web applications to succeed make many critical decisions, including whether to use a popular toolkit or not use a toolkit at all, whether to allow others to modify and/or reuse their Web applications, whether to deploy their Web applications in the cloud, and how to manage security. With the information provided in this feature, you can begin your adventure as a Web 2.0 program developer. SPECIAL FEATURE

Discovering Computers Chapter 13 Programming Languages and Program Development

Discovering Computers Chapter 13 Programming Languages and Program Development Discovering Computers 2009 Chapter 13 Programming Languages and Program Development Chapter 13 Objectives Differentiate between machine and assembly languages Identify and discuss the purpose of procedural

More information

Discovering Computers 2008

Discovering Computers 2008 Discovering Computers 2008 Chapter 13 (a) Programming Languages and Program Development 1 Chapter 13 Objectives Differentiate between machine and assembly languages Identify and discuss the purpose of

More information

Low-Level Languages. Computer Programs and Programming Languages

Low-Level Languages. Computer Programs and Programming Languages Computer Programs and Programming Languages What is a computer program? Set of instructions that directs computer to perform tasks Programming used to write instructions 1 Computer Programs and Programming

More information

Chapter 11 Program Development and Programming Languages

Chapter 11 Program Development and Programming Languages Chapter 11 Program Development and Programming Languages permitted in a license distributed with a certain product or service or otherwise on a password-protected website for classroom use. Programming

More information

Discovering Computers Living in a Digital World

Discovering Computers Living in a Digital World Discovering Computers 2011 Living in a Digital World Objectives Overview See Page 663 for Detailed Objectives 2 Objectives Overview See Page 663 for Detailed Objectives 3 Computer Programs and Programming

More information

Introduction to Programming

Introduction to Programming Introduction to Programming session 3 Instructor: Reza Entezari-Maleki Email: entezari@ce.sharif.edu 1 Fall 2010 These slides are created using Deitel s slides Sahrif University of Technology Outlines

More information

Introduction to Computers and Visual Basic.Net Pearson Education, Inc. All rights reserved.

Introduction to Computers and Visual Basic.Net Pearson Education, Inc. All rights reserved. 1 1 Introduction to Computers and Visual Basic.Net 2 OBJECTIVES In this chapter you will learn: Basic computing concepts. The different types of programming languages. The evolution of the Basic Programming

More information

Introduction to Computers, the Internet and the Web Pearson Education, Inc. All rights reserved.

Introduction to Computers, the Internet and the Web Pearson Education, Inc. All rights reserved. 1 1 Introduction to Computers, the Internet and the Web 2 The chief merit of language is clearness. Galen Our life is frittered away by detail. Simplify, simplify. Henry David Thoreau He had a wonderful

More information

Technology in Action. Chapter Topics. Scope creep occurs when: 3/20/2013. Information Systems include all EXCEPT the following:

Technology in Action. Chapter Topics. Scope creep occurs when: 3/20/2013. Information Systems include all EXCEPT the following: Technology in Action Technology in Action Alan Evans Kendall Martin Mary Anne Poatsy Chapter 10 Behind the Scenes: Software Programming Ninth Edition Chapter Topics Understanding software programming Life

More information

Module 1: Introduction to Computers, Programs, and Java

Module 1: Introduction to Computers, Programs, and Java Module 1: Introduction to Computers, Programs, and Java Module 1: Introduction to Java page 1 Objectives To review Program Design and Problem-Solving Techniques To describe the relationship between Java

More information

Computer Fundamentals: Pradeep K. Sinha & Priti Sinha

Computer Fundamentals: Pradeep K. Sinha & Priti Sinha Computer Fundamentals Pradeep K. Sinha Priti Sinha Chapter 12 Computer Languages Slide 1/64 Learning Objectives In this chapter you will learn about: Computer languages or programming languages Three broad

More information

Chapter 1 Introduction to Computers, Programs, and Java

Chapter 1 Introduction to Computers, Programs, and Java Chapter 1 Introduction to Computers, Programs, and Java 1 Objectives To understand computer basics, programs, and operating systems ( 1.2 1.4). To describe the relationship between Java and the World Wide

More information

Introduction to Java. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved.

Introduction to Java. Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. Introduction to Java 1 Programs Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs. Programs are written using programming languages.

More information

Computer Principles and Components 1

Computer Principles and Components 1 Computer Principles and Components 1 Course Map This module provides an overview of the hardware and software environment being used throughout the course. Introduction Computer Principles and Components

More information

Objective: To learn meaning and concepts of programming. Outcome: By the end of this students should be able to describe the meaning of programming

Objective: To learn meaning and concepts of programming. Outcome: By the end of this students should be able to describe the meaning of programming 30 th September 2018 Objective: To learn meaning and concepts of programming Outcome: By the end of this students should be able to describe the meaning of programming Section 1: What is a programming

More information

Programming. Languages & Frameworks. Hans-Petter Halvorsen, M.Sc. O. Widder. (2013). geek&poke. Available:

Programming. Languages & Frameworks. Hans-Petter Halvorsen, M.Sc. O. Widder. (2013). geek&poke. Available: Programming O. Widder. (2013). geek&poke. Available: http://geek-and-poke.com Languages & Frameworks Hans-Petter Halvorsen, M.Sc. Implementation Planning Maintenance Testing Implementation The Software

More information

Information Systems Software

Information Systems Software Technology Briefing Information Systems Software TB2-1 Learning Objectives TB2-2 Learning Objectives TB2-3 Key IS Software Components Software o Programs o Sets of instructions o Allow the hardware components

More information

Unit 6 - Software Design and Development LESSON 1 INTRODUCTION

Unit 6 - Software Design and Development LESSON 1 INTRODUCTION Unit 6 - Software Design and Development LESSON 1 INTRODUCTION What is covered in this session Introduction to unit and reference sources Schedule for assignments Introduction From this unit the learner

More information

Introduction to Computer World Fall 2016

Introduction to Computer World Fall 2016 Introduction to Computer World Fall 2016 Introduction to Information and Communication Technologies CSD 102 Email: mehwish.fatima@ciitlahore.edu.pk Website: https://sites.google.com/a/ciitlahore.edu.pk/ict/

More information

Technology in Action. Chapter Topics (cont.) Chapter Topics. Reasons for Software Programming. Information Systems 10/29/2010

Technology in Action. Chapter Topics (cont.) Chapter Topics. Reasons for Software Programming. Information Systems 10/29/2010 Technology in Action Chapter 10 Behind the Scenes: Building Applications 1 2 Chapter Topics System development life cycle Life cycle of a program Problem statement Algorithms Moving from algorithm to code

More information

Chapter 1 Introduction to Computers, Programs, and Java

Chapter 1 Introduction to Computers, Programs, and Java Chapter 1 Introduction to Computers, Programs, and Java 1 Programs Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs. Without programs,

More information

by Pearson Education, Inc. All Rights Reserved.

by Pearson Education, Inc. All Rights Reserved. Programmers write instructions in various programming languages, some directly understandable by computers and others requiring intermediate translation steps. Computer languages may be divided into three

More information

CGT 456 Lecture 1. Introduction to Computers & Programming

CGT 456 Lecture 1. Introduction to Computers & Programming CGT 456 Lecture 1 Introduction to Computers & Programming Some, not all, information pulled from these books: Deitel & Deitel. (2009 Third Edition). Visual C# 2008 How to Program. ISBN-10: 0-13-605322-X.

More information

Programming Languages and Program Development Life Cycle Fall Introduction to Information and Communication Technologies CSD 102

Programming Languages and Program Development Life Cycle Fall Introduction to Information and Communication Technologies CSD 102 Programming Languages and Program Development Life Cycle Fall 2016 Introduction to Information and Communication Technologies CSD 102 Outline The most common approaches to program design and development

More information

Getting Started. Chapter 1. Java Programming FROM THE BEGINNING. Chapter 1: Getting Started

Getting Started. Chapter 1. Java Programming FROM THE BEGINNING. Chapter 1: Getting Started Chapter 1 Getting Started 1 1.1 What Do Computers Do? A computer system is an integrated collection of hardware and software components. Hardware refers to the electronics inside a computer. Software consists

More information

C++ Spring Break Packet 11 The Java Programming Language

C++ Spring Break Packet 11 The Java Programming Language C++ Spring Break Packet 11 The Java Programming Language! Programmers write instructions in various programming languages, some directly understandable by computers and others requiring intermediate translation

More information

Programming the World Wide Web by Robert W. Sebesta

Programming the World Wide Web by Robert W. Sebesta Programming the World Wide Web by Robert W. Sebesta Tired Of Rpg/400, Jcl And The Like? Heres A Ticket Out Programming the World Wide Web by Robert Sebesta provides students with a comprehensive introduction

More information

Lesson 5: Multimedia on the Web

Lesson 5: Multimedia on the Web Lesson 5: Multimedia on the Web Learning Targets I can: Define objects and their relationships to multimedia Explain the fundamentals of C, C++, Java, JavaScript, JScript, C#, ActiveX and VBScript Discuss

More information

Chapter 1 Introduction to Computers, Programs, and Java

Chapter 1 Introduction to Computers, Programs, and Java Chapter 1 Introduction to Computers, Programs, and Java 1 Objectives To understand computer basics, programs, and operating systems ( 1.2 1.4). To describe the relationship between Java and the World Wide

More information

Students completing CISB 15 - Microcomputer Applications will understand the importance of continuing their education in computer literacy.

Students completing CISB 15 - Microcomputer Applications will understand the importance of continuing their education in computer literacy. Course ID Course Name Course Outcome CISB 10 Office Skills Students completing CISB 10 - Office Skills will be able to correctly format a business style block letter using Microsoft Word. Students completing

More information

Hands-On Ethical Hacking and Network Defense 2 nd edition

Hands-On Ethical Hacking and Network Defense 2 nd edition Hands-On Ethical Hacking and Network Defense 2 nd edition Chapter 7 Programming for Security Professionals Last modified 9-29-16 Objectives Explain basic programming concepts Write a simple C program Explain

More information

Java Language. Programs. Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs.

Java Language. Programs. Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs. Introduction to Programming Java Language Programs Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs. Programs are written using programming

More information

Introducing Computer Programming

Introducing Computer Programming ok4 01 f2 5/24/17 9:59 AM Page 3 Chapter 1 Introducing Computer Programming Intended Learning Outcomes After completing this chapter, you should be able to: Explain the difference between computers and

More information

General Concepts. Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design

General Concepts. Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design General Concepts Abstraction Computational Paradigms Implementation Application Domains Influence on Success Influences on Design 1 Abstractions in Programming Languages Abstractions hide details that

More information

DIABLO VALLEY COLLEGE CATALOG

DIABLO VALLEY COLLEGE CATALOG COMPUTER SCIENCE COMSC Despina Prapavessi, Dean Math and Computer Science Division Math Building, Room 267 The computer science department offers courses in three general areas, each targeted to serve

More information

Object Oriented Concepts and Programming (CSC244) By Dr. Tabbasum Naz

Object Oriented Concepts and Programming (CSC244) By Dr. Tabbasum Naz Object Oriented Concepts and Programming (CSC244) By Dr. Tabbasum Naz tabbasum.naz@ciitlahore.edu.pk Course Outline Course Title Object Oriented Concepts and Course Code Credit Hours 4(3,1) Programming

More information

3. WWW and HTTP. Fig.3.1 Architecture of WWW

3. WWW and HTTP. Fig.3.1 Architecture of WWW 3. WWW and HTTP The World Wide Web (WWW) is a repository of information linked together from points all over the world. The WWW has a unique combination of flexibility, portability, and user-friendly features

More information

Chapter 1: Introduction to Computers, Programs, and Java

Chapter 1: Introduction to Computers, Programs, and Java Chapter 1: Introduction to Computers, Programs, and Java CS1: Java Programming Colorado State University Original slides by Daniel Liang Modified slides by Chris Wilcox 1 Objectives To understand computer

More information

Introduction to Computers, the Internet and the World Wide Web

Introduction to Computers, the Internet and the World Wide Web 1 2 1 Introduction to Computers, the Internet and the World Wide Web Our life is frittered away by detail. Simplify, simplify. Henry David Thoreau The chief merit of language is clearness. Galen My object

More information

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG)

SKILL AREA 304: Review Programming Language Concept. Computer Programming (YPG) SKILL AREA 304: Review Programming Language Concept Computer Programming (YPG) 304.1 Demonstrate an Understanding of Basic of Programming Language 304.1.1 Explain the purpose of computer program 304.1.2

More information

Introduction. A. Bellaachia Page: 1

Introduction. A. Bellaachia Page: 1 Introduction 1. Objectives... 2 2. Why are there so many programming languages?... 2 3. What makes a language successful?... 2 4. Programming Domains... 3 5. Language and Computer Architecture... 4 6.

More information

Fundamentals of Programming. Lecture 1: Introduction to C Programming

Fundamentals of Programming. Lecture 1: Introduction to C Programming 1 Fundamentals of Programming Lecture 1: Introduction to C Programming Instructor: Fatemeh Zamani f_zamani@ce.sharif.edu Sharif University of Technology Computer Engineering Department 2 Outline Grading

More information

Languages in WEB. E-Business Technologies. Summer Semester Submitted to. Prof. Dr. Eduard Heindl. Prepared by

Languages in WEB. E-Business Technologies. Summer Semester Submitted to. Prof. Dr. Eduard Heindl. Prepared by Languages in WEB E-Business Technologies Summer Semester 2009 Submitted to Prof. Dr. Eduard Heindl Prepared by Jenisha Kshatriya (Mat no. 232521) Fakultät Wirtschaftsinformatik Hochshule Furtwangen University

More information

Solution overview VISUAL COBOL BUSINESS CHALLENGE SOLUTION OVERVIEW BUSINESS BENEFIT

Solution overview VISUAL COBOL BUSINESS CHALLENGE SOLUTION OVERVIEW BUSINESS BENEFIT BUSINESS CHALLENGE There is an increasing demand from users of business software for easier to use applications which integrate with other business systems. As a result IT organizations are being asked

More information

Introduction to Information Technology Turban, Rainer and Potter John Wiley & Sons, Inc. Copyright 2005

Introduction to Information Technology Turban, Rainer and Potter John Wiley & Sons, Inc. Copyright 2005 Introduction to Information Technology Turban, Rainer and Potter John Wiley & Sons, Inc. Copyright 2005 Computer Software Chapter Outline Significance of software System software Application software Software

More information

0 Introduction: Computer systems and program development

0 Introduction: Computer systems and program development 0 Introduction: Computer systems and program development Outline 1 Introduction 2 What Is a Computer? 3 Computer Organization 4 Evolution of Operating Systems 5 Personal Computing, Distributed Computing

More information

INTRODUCTION TO THE COURSE

INTRODUCTION TO THE COURSE 1 INTRODUCTION TO THE COURSE KOM3191 Object-Oriented Programming 2 Outline Computer Organization Machine Languages, Assembly Languages and High-Level Languages History of C++ C++ Development Environment

More information

SyncFirst Standard. Quick Start Guide User Guide Step-By-Step Guide

SyncFirst Standard. Quick Start Guide User Guide Step-By-Step Guide SyncFirst Standard Quick Start Guide Step-By-Step Guide How to Use This Manual This manual contains the complete documentation set for the SyncFirst system. The SyncFirst documentation set consists of

More information

Chapter Twelve. Systems Design and Development

Chapter Twelve. Systems Design and Development Chapter Twelve Systems Design and Development After reading this chapter, you should be able to: Describe the process of designing, programming, and debugging a computer program Explain why there are many

More information

Programming Languages and Program Development

Programming Languages and Program Development Programming Languages and Program Development 1 Programming Languages and How They Work Programming o Process used to create software programs Programmers o People who use programming languages to create

More information

FAQ: Advanced Functions

FAQ: Advanced Functions Question 1: What are formulas and functions? Answer 1: Formulas are a type of data that can be entered into a cell in Excel. Formulas begin with an equal sign and use mathematical operators to calculate

More information

Technology in Action. Alan Evans Kendall Martin Mary Anne Poatsy. Tenth Edition. Copyright 2014 Pearson Education, Inc. Publishing as Prentice Hall

Technology in Action. Alan Evans Kendall Martin Mary Anne Poatsy. Tenth Edition. Copyright 2014 Pearson Education, Inc. Publishing as Prentice Hall Technology in Action Alan Evans Kendall Martin Mary Anne Poatsy Tenth Edition Technology in Action Chapter 8 Behind the Scenes: Software Programming 2 Chapter Topics Understanding Software Programming

More information

Introduction to the Internet and World Wide Web p. 1 The Evolution of the Internet p. 2 The Internet, Intranets, and Extranets p. 3 The Evolution of

Introduction to the Internet and World Wide Web p. 1 The Evolution of the Internet p. 2 The Internet, Intranets, and Extranets p. 3 The Evolution of Introduction to the Internet and World Wide Web p. 1 The Evolution of the Internet p. 2 The Internet, Intranets, and Extranets p. 3 The Evolution of the World Wide Web p. 3 Internet Standards and Coordination

More information

1/14/2014. Introduction to CSE 1325 Object Oriented Programming (Using Java) Introduction (Cont.) Introduction

1/14/2014. Introduction to CSE 1325 Object Oriented Programming (Using Java) Introduction (Cont.) Introduction Introduction (Cont.) Introduction to CSE 1325 Object Oriented Programming (Using Java) Sharma Chakravarthy Information Technology Laboratory (IT Lab) Computer Science and Engineering Department The University

More information

1. Web Technology... 6

1. Web Technology... 6 TABLE OF CONTENTS 1. Web Technology... 6 1.1. Introduction (Hypertext, URL, Domain Name)...6 1.2. Web Browser and ISP...8 1.3. Upload and download files...10 1.4. Control of Internet...10 2. E-mail components

More information

CS101 Introduction to Programming Languages and Compilers

CS101 Introduction to Programming Languages and Compilers CS101 Introduction to Programming Languages and Compilers In this handout we ll examine different types of programming languages and take a brief look at compilers. We ll only hit the major highlights

More information

Chapter 1 Introduction to Computers and C++ Programming

Chapter 1 Introduction to Computers and C++ Programming Chapter 1 Introduction to Computers and C++ Programming 1 Outline 1.1 Introduction 1.2 What Is a Computer? 1.3 Computer Organization 1.4 Evolution of Operating Systems 1.5 Personal Computing, Distributed

More information

Chapter 1 Introduction to Computers, Programs, and Java. What is a Computer? A Bit of History

Chapter 1 Introduction to Computers, Programs, and Java. What is a Computer? A Bit of History Chapter 1 Introduction to Computers, Programs, and Java CS170 Introduction to Computer Science 1 What is a Computer? A machine that manipulates data according to a list of instructions Consists of hardware

More information

Elements of Computers and Programming Dr. William C. Bulko. What is a Computer?

Elements of Computers and Programming Dr. William C. Bulko. What is a Computer? Elements of Computers and Programming Dr. William C. Bulko What is a Computer? 2017 What is a Computer? A typical computer consists of: a CPU memory a hard disk a monitor and one or more communication

More information

Using the Computer Programming Environment

Using the Computer Programming Environment Information sheet EN064 Overview C2k has developed an environment to allow GCSE and A-Level students to undertake computer programming from within the C2k Managed Service. This environment will deliver

More information

Tennessee. Business Technology Course Code Web Design Essentials. HTML Essentials, Second Edition 2010

Tennessee. Business Technology Course Code Web Design Essentials. HTML Essentials, Second Edition 2010 Tennessee Business Technology Course Code 6501240 Web Design Essentials HTML Essentials, Second Edition 2010 Notation Key SE Student Edition LE Learning Expectation Standard 1.0 Demonstrate knowledge of

More information

Determining the Best Approach

Determining the Best Approach 2 Determining the Best Approach The remaining chapters of this book cover the capabilities of the BlackBerry application platform and then dig into each application development option in detail. Before

More information

Computer Software A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and

Computer Software A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and Computer Software A computer contains two major sets of tools, software and hardware. Software is generally divided into Systems software and Applications software. Systems software provides infrastructure

More information

An Overview of Visual Basic.NET: A History and a Demonstration

An Overview of Visual Basic.NET: A History and a Demonstration OVERVIEW o b j e c t i v e s This overview contains basic definitions and background information, including: A brief history of programming languages An introduction to the terminology used in object-oriented

More information

Reading How the Web Works

Reading How the Web Works Reading 1.3 - How the Web Works By Jonathan Lane Introduction Every so often, you get offered a behind-the-scenes look at the cogs and fan belts behind the action. Today is your lucky day. In this article

More information

Unit. Programming Fundamentals. School of Science and Technology INTRODUCTION

Unit. Programming Fundamentals. School of Science and Technology INTRODUCTION INTRODUCTION Programming Fundamentals Unit 1 In order to communicate with each other, we use natural languages like Bengali, English, Hindi, Urdu, French, Gujarati etc. We have different language around

More information

Getting started 7. Setting properties 23

Getting started 7. Setting properties 23 Contents 1 2 3 Getting started 7 Introduction 8 Installing Visual Basic 10 Exploring the IDE 12 Starting a new project 14 Adding a visual control 16 Adding functional code 18 Saving projects 20 Reopening

More information

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science)

Lecture 09. Ada to Software Engineering. Mr. Mubashir Ali Lecturer (Dept. of Computer Science) Lecture 09 Ada to Software Engineering Mr. Mubashir Ali Lecturer (Dept. of dr.mubashirali1@gmail.com 1 Summary of Previous Lecture 1. ALGOL 68 2. COBOL 60 3. PL/1 4. BASIC 5. Early Dynamic Languages 6.

More information

SOLVING PROBLEMS ON THE TEACHING METHODS OF LINEAR ALGEBRA THROUGH TECHNOLOGY PLATFORM DOT.NET

SOLVING PROBLEMS ON THE TEACHING METHODS OF LINEAR ALGEBRA THROUGH TECHNOLOGY PLATFORM DOT.NET SOLVING PROBLEMS ON THE TEACHING METHODS OF LINEAR ALGEBRA THROUGH TECHNOLOGY PLATFORM DOT.NET Makpal Iskakova, PhD Yernar Adilbekov, Undergraduate Kazakh National Pedagogical University named after Abai,

More information

Internet and Visual Basic Pearson Education, Inc. All rights reserved.

Internet and Visual Basic Pearson Education, Inc. All rights reserved. 1 1 Introduction to Computers, the Internet and Visual Basic 2 The chief merit of language is clearness. Galen High thoughts must have high language. Aristophanes Our life is frittered away with detail....

More information

5/3/2012. Copyright 2012 The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill. McGraw-Hill. McGraw-Hill. McGraw-Hill

5/3/2012. Copyright 2012 The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill. McGraw-Hill. McGraw-Hill. McGraw-Hill Chapter 03: Basic Application Software Competencies (Page 1 of 2) Discuss common features of most software applications. Discuss word processors and word processing features. Describe spreadsheets and

More information

Programming/Network Programming

Programming/Network Programming 21250 Stevens Creek Blvd. Cupertino, CA 95014 408-864-5678 www.deanza.edu Academic Year 2017-2018 Computer Information Systems Programming/Network Programming Business, Computer Sciences and Applied Technologies

More information

Chapter 1: Introduction to Computers and Java

Chapter 1: Introduction to Computers and Java Chapter 1: Introduction to Computers and Java Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 1 discusses the following main topics:

More information

Lecture 1: Introduction to Java

Lecture 1: Introduction to Java Lecture 1: Introduction to Java 1 Programs Computer programs, known as software, are instructions to the computer. You tell a computer what to do through programs. Without programs, a computer is an empty

More information

8/23/2014. Chapter Topics. Introduction. Java History. Why Program? Java Applications and Applets. Chapter 1: Introduction to Computers and Java

8/23/2014. Chapter Topics. Introduction. Java History. Why Program? Java Applications and Applets. Chapter 1: Introduction to Computers and Java Chapter 1: Introduction to Computers and Java Starting Out with Java: From Control Structures through Objects Fifth Edition by Tony Gaddis Chapter Topics Chapter 1 discusses the following main topics:

More information

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2015 Euiseong Seo

Principles in Programming: Orientation & Lecture 1. SWE2004: Principles in Programming Spring 2015 Euiseong Seo Principles in Programming: Orientation & Lecture 1 1 Course Objectives Introduce various subjects in computer science through puzzles and problems Most problems came from ICPC 2 Introduction Instructor:

More information

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved.

Assoc. Prof. Dr. Marenglen Biba. (C) 2010 Pearson Education, Inc. All rights reserved. Assoc. Prof. Dr. Marenglen Biba (C) 2010 Pearson Education, Inc. All rights reserved. Course: Object-Oriented Programming with Java (4 credit hours) Instructor : Assoc. Prof. Dr. Marenglen Biba Office

More information

System And Application Software

System And Application Software Chapter Six System And Application Software Computer Skills Computer Skills 2016: Chapter6 1 Objectives Overview Define system software and identify the two types of system software Understand Application

More information

But before understanding the Selenium WebDriver concept, we need to know about the Selenium first.

But before understanding the Selenium WebDriver concept, we need to know about the Selenium first. As per the today s scenario, companies not only desire to test software adequately, but they also want to get the work done as quickly and thoroughly as possible. To accomplish this goal, organizations

More information

Computer Science 209. A.S. Degree Requirements. Department Offices. Faculty & Offices. Emeritus Faculty. Degrees & Certificates Awarded

Computer Science 209. A.S. Degree Requirements. Department Offices. Faculty & Offices. Emeritus Faculty. Degrees & Certificates Awarded Computer Science 209 Computer Science (See Computer Information Systems section for additional computer courses.) We are in the Computer Age. Virtually every occupation in the world today has an interface

More information

Chapters and Appendix F are PDF documents posted online at the book s Companion Website (located at

Chapters and Appendix F are PDF documents posted online at the book s Companion Website (located at Contents Chapters 16 27 and Appendix F are PDF documents posted online at the book s Companion Website (located at www.pearsonhighered.com/deitel/). Preface Before You Begin xix xxix 1 Introduction to

More information

CS 113: Introduction to

CS 113: Introduction to CS 113: Introduction to Course information MWF 12:20-1:10pm 1/21-2/15, 306 Hollister Hall Add/drop deadline: 1/28 C Instructor: David Crandall See website for office hours and contact information Prerequisites

More information

Developing Mixed Visual Basic/COBOL Applications*

Developing Mixed Visual Basic/COBOL Applications* COBOL 1 v1 11/9/2001 4:21 PM p1 Developing Mixed Visual Basic/COBOL Applications* Wayne Rippin If you are developing applications for Microsoft Windows, sooner or later you ll encounter one of the varieties

More information

Chapter 3 Computer Software

Chapter 3 Computer Software Chapter 3 Computer Software Learning Objectives LO3.1: Explain system software and operating systems LO3.2: Identify operating systems for desktop PCs LO3.3: Identify operating systems for handheld PCs

More information

Structured Languages. Rahul Deodhar

Structured Languages. Rahul Deodhar Structured Languages Rahul Deodhar You already know Basics of computer Database FoxPro / Oracle DBMS / RDBMS OperaCng System DOS / Novel/Unix ApplicaCons (Spreadsheets / Word processor) Basics of programming

More information

STAR OFFICE CALC. Lesson 6

STAR OFFICE CALC. Lesson 6 Lesson 6 STAR OFFICE CALC 1. command is used to insert special characters? a. Insert Characters b. Special characters Insert c. Insert Special characters d. None of these 2. icon is used to present the

More information

CTI Short Learning Programme in Internet Development Specialist

CTI Short Learning Programme in Internet Development Specialist CTI Short Learning Programme in Internet Development Specialist Module Descriptions 2015 1 Short Learning Programme in Internet Development Specialist (10 months full-time, 25 months part-time) Computer

More information

ACCOUNTING & FINANCIAL

ACCOUNTING & FINANCIAL SKILLS TESTS Please note that there are skills tests for earlier versions of many of the programs. Enquire now to see if the version you are looking for is available. ACCOUNTING & FINANCIAL Accounting

More information

LECTURE 3 ADMINISTRATION SECTION -A

LECTURE 3 ADMINISTRATION SECTION -A LECTURE 3 SYSTEM PROGRAMMING & SYSTEM ADMINISTRATION SECTION -A INTRODUCTION Interpreters Compilers Text editors Debug monitors Programming environment INTERPRETERS An interpreter may be a program that

More information

CSC Introduction to Computers and Their Applications

CSC Introduction to Computers and Their Applications CSC 170 - Introduction to Computers and Their Applications Lecture 9 Software Essentials When searching for new software, it helps to have a framework of categories System Software Operating Systems For

More information

Chapter 3 Application Software

Chapter 3 Application Software Chapter 3 Application Software Application Software What is application software? Programs that perform specific tasks for users Also called a software application or an application Several reasons to

More information

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen

Game keystrokes or Calculates how fast and moves a cartoon Joystick movements how far to move a cartoon figure on screen figure on screen Computer Programming Computers can t do anything without being told what to do. To make the computer do something useful, you must give it instructions. You can give a computer instructions in two ways:

More information

The Internet, the Web, and Electronic Commerce The McGraw-Hill Companies, Inc. All rights reserved.

The Internet, the Web, and Electronic Commerce The McGraw-Hill Companies, Inc. All rights reserved. Discuss the origins of the Internet and the Web. Describe how to access the Web using providers and browsers. Discuss Internet communications, including e- mail, instant messaging, social networking, blogs,

More information

Web Foundations Series Internet Business Associate

Web Foundations Series Internet Business Associate Web Foundations Series Internet Business Associate Internet Business Associate prepares students to work effectively in today's business environment. In this course, you will learn about the tasks involved

More information

Introduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University

Introduction to XML. Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University Introduction to XML Asst. Prof. Dr. Kanda Runapongsa Saikaew Dept. of Computer Engineering Khon Kaen University http://gear.kku.ac.th/~krunapon/xmlws 1 Topics p What is XML? p Why XML? p Where does XML

More information

CTI Higher Certificate in Information Systems (Internet Development)

CTI Higher Certificate in Information Systems (Internet Development) CTI Higher Certificate in Information Systems (Internet Development) Module Descriptions 2015 1 Higher Certificate in Information Systems (Internet Development) (1 year full-time, 2½ years part-time) Computer

More information

CHAPTER 03: MULTIMEDIA & OPERATING SYSTEM. :: Operating System :: ~ What is OS?~ ~ OS Functions~ ~ OS Characteristics ~ ~ Type of OS~

CHAPTER 03: MULTIMEDIA & OPERATING SYSTEM. :: Operating System :: ~ What is OS?~ ~ OS Functions~ ~ OS Characteristics ~ ~ Type of OS~ CHAPTER 03: MULTIMEDIA & OPERATING SYSTEM :: Operating System :: ~ What is OS?~ ~ OS Functions~ ~ OS Characteristics ~ ~ Type of OS~ 1 Operating System and Software Computer Operating System An operating

More information

A NET Refresher

A NET Refresher .NET Refresher.NET is the latest version of the component-based architecture that Microsoft has been developing for a number of years to support its applications and operating systems. As the name suggests,.net

More information

University College of Southeast Norway ASP.NET. Web Programming. Hans-Petter Halvorsen,

University College of Southeast Norway ASP.NET. Web Programming. Hans-Petter Halvorsen, University College of Southeast Norway Hans-Petter Halvorsen, 2016.11.01 ASP.NET Web Programming http://home.hit.no/~hansha Table of Contents 1 Introduction... 4 1.1 Visual Studio... 4 1.2 C#... 5 1.3.NET

More information

Java Applets, etc. Instructor: Dmitri A. Gusev. Fall Lecture 25, December 5, CS 502: Computers and Communications Technology

Java Applets, etc. Instructor: Dmitri A. Gusev. Fall Lecture 25, December 5, CS 502: Computers and Communications Technology Java Applets, etc. Instructor: Dmitri A. Gusev Fall 2007 CS 502: Computers and Communications Technology Lecture 25, December 5, 2007 CGI (Common Gateway Interface) CGI is a standard for handling forms'

More information