Computer Science 200 Study Guide
Transcription
Computer Science 200 Study Guide
Computer Science 200 Study Guide (Print Version) Computer Science 200 Study Guide Introduction to Computing and Information Systems • Introduction - Conventions Followed in the Study Guide • Using Electronic Materials - Tips and Suggestions for Adapting to Online Studying • Unit 0 - Acquiring Software Tools • Unit 1 - Computer Basics ♦ Section 1 - Why Study Information Systems? ♦ Section 2 - Information Processing Overview ♦ Section 3 - Microcomputer Development and Evolution ♦ Section 4 - Data Representation • Unit 2 - System Components -- Hardware and System Software ♦ Section 1 - Classes of Computers ♦ Section 2 - The Central Processing Unit and Primary Memory ♦ Section 3 - Storage ♦ Section 4 - The Peripheral or Auxiliary Devices ♦ Section 5 - The Operating System ♦ Section 6 - Network Operating Systems ♦ Section 7 - Technology Trends • Unit 3 - Single-User Applications ♦ Section 1 - Business Functions and Single-User Computers ♦ Section 2 - Components of an Integrated Environment ♦ Section 3 - More Specialized Single-User Applications ♦ Section 4 - Relational Databases and Data Normalization • Unit 4 - Multiple-User Applications ♦ Section 1 - Integrated and Shared Information Systems ♦ Section 2 - Data- and Tele-communications Technology ♦ Section 3 - The Microcomputer and Client/Server Systems ♦ Section 4 - Internet Applications ♦ Section 5 - Application Trends • Unit 5 - Introduction to System Development ♦ Section 1 - Developing Applications Software ♦ Section 2 - Programming and Programming Languages ♦ Section 3 - Systems Analysis, Design and Implementation • Unit 6 - New Challenges and Techniques in System Development ♦ Section 1 - Introduction to Object-Oriented Programming ♦ Section 2 - Developing Web Applications: HTML and JavaScript ♦ Section 3 - Programming 3D and Virtual Reality ♦ Section 4 - The Java Programming Language Computer Science 200 Study Guide 1 Computer Science 200 Study Guide (Print Version) Introduction: Conventions Followed in the Study Guide Back to top Commentary The course materials for Computer Science 200 are organized around learning objectives. To proceed with the course, follow this Study Guide objective by objective. Each section of every unit (except Unit 0) of the Study Guide contains text readings associated with the learning objectives. (These readings were formerly included separately as an 'online textbook' but have now been included with their related learning objective to simplify navigation.) The 'preparation' unit (Unit 0) has no associated readings, and is mainly provided to help you acquire some useful software tools and utilities for the course. Most sections in the Study Guide end with one or more review questions designed to reinforce the learning objectives of the Unit. Each Unit directs you to Resource Links that support each objective. You will find the Internet is a rich resource for this course. The course requires that you write three Tutor-Marked Exercises (TMEs), and three online multiple choice quizzes. The quizzes are submitted and graded electronically, and the TMEs are to be uploaded through Moodle's Assignment Drop Box. There are also three Projects, to be completed after Units 3, 5, and 6 respectively. These are also to be submitted to your tutor electronically. NOTE: To receive credit for COMP 200, students must obtain a total mark of at least 50 percent for the overall coursework (Quizzes, and TMEs), and a grade of at least 50 percent for both the course projects and the final examination. Details of the grading scheme may be found in the COMP 200 Syllabus. The links contained in the Digital Reading Room are intended as supplementary resources for students who wish to further explore particular topics or concepts. The DRR will also refer you to certain Internet sites in connection with the Tutor-Marked Exercises (TMEs) in the course. Some sites are also provided as resources to assist in the completion of the course projects, particularly Part 2 (Introduction to Programming) and Part 3 (Working with Java). Most of these resources are maintained outside the University by various corporations and individuals, hence we do not have direct control over them and cannot guarantee they will not change or even disappear altogether. We do not generally "deep link" the sites (link directly to a sub-page within the site) so you may have to delve a little bit deeper yourself, or use the search utilities on the site to find specific information. You will find the use of these sites most convenient if you bookmark them in your browser. When you reach a site you think you will want to re-visit, simply select the 'Bookmarks' (Netscape) or "Favorites" (Explorer) option, then select "Add". This will save the links in your browser's bookmark list for easy future use. The DRR should always be considered "under construction". The University assumes no responsibility for the content of those sites not maintained or created by the University itself. SCIS VIRTUAL HELPDESK (VHD) Introduction to Computing and Information Systems 2 Computer Science 200 Study Guide (Print Version) The VHD is maintained by advanced level computing science program students who have had very similar experiences to your own as students, and who are well-equipped to deal with problems related to the use of the various Computer-Mediated Communications (CMC) methods encountered in the course. The VHD site also contains resources such as tutorials, FAQ pages, and course tools. Commentary 3 Computer Science 200 Study Guide (Print Version) Using Electronic Materials: Tips and Suggestions for Adapting to Online Studying Back to top Commentary Using electronic materials to study, especially for the first time, can be a challenging experience. This brief guide will provide suggestions for using the materials effectively, and hopefully will help you to adjust and adapt to what may be a different approach to learning for you. Contents • The Challenges and Opportunities of Electronic Materials • Navigation ♦ Basic Navigation with Internet Explorer or Netscape ♦ Navigating the Course Materials • Note-Taking: Creating a "Unitdoc" • Other Resources The Challenges and Opportunities of Electronic Materials Electronic materials have advantages, but certainly also disadvantages, when compared to printed materials. Electronic materials may be more accessible, more current, broader in scope, and more economical to deliver, but they are also less portable, keeping the user tied to a single place and position during use. This lack of flexibility in use makes electronic materials somewhat less convenient and comfortable to use than reading a book might be. Of course, studying with the aid of a computer has advantages in itself, whether the material being learned is printed or presented on the computer screen. The computer is a very effective tool for collecting and organizing information, which makes it very useful for recording and organizing study notes. Given the opportunity, students would likely use a computer to aid in their studies in some fashion, even if the material they were studying was not itself presented on the computer. When learning materials are presented on the computer, they are generally in the form of a combination of media-based and online materials, as with this course. The media used may be CD-ROM, DVD, or local hard disk, and the online resources used may include both proprietary (owned by the institution delivering the learning) and general resources. In this course, we use a set of local materials, which have been downloaded to your hard disk, combined with our own and other sites on the WWW. This network of materials is by its nature non-linear. That is, one does not tend to proceed through a course of this type in a rigid sequence of steps or 'pages,' as might be the case in more traditional course delivery. Part of the challenge in this approach is being able to navigate effectively from point to point in what may initially seem like a veritable maze of information. Keeping the relationships of the different themes, concepts, and topics clear throughout your exploration of all that material is also challenging. The lack of linearity in electronic learning materials may be seen as either a disadvantage or an advantage. Online study can seem to be made up of many threads, all going off in different directions. Properly managed, however, the threads can all be integrated into a meaningful pattern and relationship. Using Electronic Materials: Tips and Suggestions for Adapting to Online Studying 4 Computer Science 200 Study Guide (Print Version) Educators use electronic materials, particularly hypertext and hyper media, for their flexibility of presentation, for the vast body of information that can be accessed, and for their immediacy. Online, the boundaries of the materials expand enormously, allowing for almost endless exploration in a myriad of directions. ________________________________________________________________ Navigation When using materials such as these for the first time, you may find it difficult to 'get back' to where you left off, to return to a particular item or section when you wish to, or to keep track of where you are in the steps, stages, or sequence of activities you are undertaking. Here are some suggestions that will help you control and track your movement through the network of resources in a course of this type. ________________________________________________________________ Basic Navigation with Internet Explorer or Netscape Your web browser (generally Netscape or Internet Explorer, for PC platforms), has certain aids to navigation built in, so let's begin with those. The back button normally returns you to the previous URL accessed by the browser. Sometimes, however, a link will open a new window in your browser, and the back button will not be activated in that window. There is no history of sites visited in this window because it is a freshly opened, separate window. To use the back button in that case, you would need to switch back to the original browser window (by clicking on its taskbar icon), and from there you would then be able to use the back button to return to the previous site. Browsers also have history files, which keep a list of the most recent sites visited. The number of sites stored varies, and can be adjusted by the user. In Netscape (NS) this list is generally under the "Go" menu, and in Internet Explorer (IE) there is a pull down list associated with the "Address" dialog. Any of the sites on these History lists may be immediately accessed by selecting them from the list. A more permanent record of favorite sites can be created and maintained using the "Bookmarks" (NS) or "Favorites" (IE) feature of your browser. Select "Communicator/Bookmarks/Add Bookmark" in NS, or "Favorites/Add to Favorites" in IE. You should also explore and experiment with the editing of your bookmark list, and use the features provided to create your own names for the links, to place the links in some sort of order or groups, and to delete links that have expired or which you no longer use. The naming of links is particularly useful, as the default saved name may be a URL, or may be a name that does not appear to relate to the material you wish to return to. For example, the default saved name for one of my bookmarks was "xml.startkabel.xn". In my bookmark list, however, I have changed that name to read "List of links to XML tutorials and resources", which is much more useful to me when I am browsing through my bookmarks looking for that topic. Finally, the saved link might not have a name at all unless you input one. I can also use folders and separators created in the "Edit Bookmarks" feature of Netscape to group my bookmarks into topic areas, unit, course groups, etc. In IE, this is done using the menu options "Favorites/Organize Favorites". Commentary 5 Computer Science 200 Study Guide (Print Version) For detailed instructions on the use of these features in your browser, see Netscape Bookmarks or Using Internet Explorer Bookmarks (Favorites). The extra time and effort spent creating and managing your bookmark file will repay you many times over in increased efficiency and control when re-visiting useful sites. ____________________________________________________________ Navigating the Course Materials There is always a fundamental choice for students using materials of this type: take the side roads now, then move on; or follow the current topic to its conclusion, then come back and explore the offshoots later. There is no right or wrong choice in this matter, and people will have different preferences from each other, and perhaps even at different times. Sometimes we may be 'hot on the trail' of completing some task or assignment and have no time or interest for diversions, while at other times we may want to "veer off" on a tangent for a time, before continuing on the main route, so to speak. The 'main route' in the context of this course, should be the Study Plan. Use the Study Plan as a point of departure (and return) for all your perambulations in the course. Many students print out the Study Plan and post it in their work area to use as a checklist as they proceed through the course. Although the rate of progress through the course may vary for different students, the sequence of activities and events should be fairly closely followed. In addition to the Study Plan, the other key elements in the materials are the Study Guide. The links to the External Links and Conference are also very important, and will be discussed later. The Study Guide organizes the topics of the course into Units, each of which has its own Learning Objectives. These objectives should be seen as the goals of the course, and establish benchmarks for evaluating what has been learned. The specific activities to be done by students in order to measure or demonstrate the meeting of these objectives are the assignments, quizzes, and projects identified on the main Moodle page. The readings associated with each learning objective provide background information on each topic. The Digital Reading Room, as well as links embedded in certain Project or TME instructions, provides additional resources or information. The Conference is a forum for discussion among students, which is moderated and supported by the Course Coordinator, and monitored by individual tutors for the purpose of assigning Participation marks (see the Study Plan for details under the heading 'CMC Participation Marks'). Moving among these various documents online, without getting lost, will take some practice. A normal sequence would be to start with the Study Guide, picking up with whatever Unit or Section is next on your checklist. In this context, you should always try to conclude your study sessions at the end of a Section or Unit, to allow for a clean starting point in the following session. After reading over the Section or Unit description (if provided) and the Objectives, the next step would generally be to follow the link provided and do the required reading for the first Objective. While working through Study Guide Objectives and related readings, you should also be recording and organizing study notes, much as you would if you were reading a conventional text. We will discuss Commentary 6 Computer Science 200 Study Guide (Print Version) computer-based note-taking later; for now, let us continue to examine the navigation sequence you should follow while working through the materials. After completing the reading, it may be useful to return to the Study Guide section from which the reading was linked, and review the Objective in the context of what has just been read. Did the reading contribute to your mastery of the Objective? Are there still gaps in your understanding, and could they be filled by another review of the reading, or will additional resources be needed? Are there questions you want to ask your tutor or in the Course Conference? At the end of most Study Guide sections there are links to Review Questions, which you may want to answer. The your answers can then be compared to the sample answers provided. The Review Questions are optional, self-directed learning activities, and need not be submitted to your tutor. At certain places in the Study Guide there are required assignments, including Quizzes, TMEs, and Projects, and these should be done at those points in your progress through the material. Quizzes are to be done in a relatively brief, single sitting, but TMEs and Projects may be started at the specified time, and worked on while you are also advancing into the next section(s) of the course. Note: Each Unit/ Section of this Study Guide has button/ link: "View Full Screen ( Print Version )," which allows you to view and print all of the current unit or section plus Learning Objective content. __________________________________________________________ Note-Taking: Creating a "Unitdoc" Although the activities described in this section are optional in COMP 200, the creation of journals or course notes is a required activity in many of the senior Computer Science courses at AU, and is a good technique for collecting and organizing important course content, particularly for learners accustomed to paper-based materials. As you work through a course like this, it will be extremely important to capture and record notes and links from a variety of sources, and these will likely be most useful if they are organized in a single document. One approach to this is to create what we call in our senior courses a "Unitdoc." This document, which may be created as an Microsoft Word document, or as is done by advanced students, an html document, is organized into Units corresponding to those in the Study Guide and may contain, under each Unit heading, sub-sections for Links, notes from the readings, notes from other sources, review questions and answers, questions to ask or post, plus any responses received. As you view materials on your computer, whether they are part of the readings, on a web page somewhere, or in an e-mail or conference message, you can copy/paste anything you want to keep for review or future reference into your Unitdoc, under the appropriate heading. Even in web pages, the mouse pointer can generally be clicked/dragged over a section of text to select it for copying to the clipboard, from which it can then be pasted into your Unitdoc. After selecting (highlighting) the desired text, click the right mouse button, and select paste (alternatively, Control-C will also copy the selected text in most programs). Next, switch to the Unitdoc window by clicking the taskbar button, click into the desired position to insert the text in your Unitdoc, right-click and select 'paste' (or Control-V). The decisions regarding what to record in this fashion are subjective, and will depend on the student's individual learning style, but may, for example, relate to the difficulty of a particular topic. Commentary 7 Computer Science 200 Study Guide (Print Version) Quiz and practice exam questions may be saved in a section of the Unitdoc devoted to exam preparation, either Unit-by-Unit, or in a single location at the end of the Unitdoc. Specific quotes from the readings relating to challenging or complex topics may be saved, along with your own notes, comments, or interpretations, plus related comments or material from tutor e-mail, conference posts, or online sources. You may also wish to include your TME answers in your Unitdoc. By opening your Unitdoc at the beginning of every study session, you will always have it instantly available, and may drop into it from your taskbar at any time to paste in a piece of useful information, a key quote from the text, the answer to a question you posted in the conference, or any other type of study note or reference you deem to be important for your own learning of the material. Sections of your Unitdoc, perhaps even each new page you add to it can be printed out as required to provide portable materials you can study anywhere, at any time, without needing to access them through the computer. This will be a more efficient way to print materials than for you to simply print out the Text or Study Guide, as the Unitdoc will be an integrated collection of all the material you have identified as being important for your own learning relating to a given topic. __________________________________________________________ Other Resources For information on printing Web Pages of the course materials, see Printing Online Course Materials. For detailed instructions on the use of bookmarks in your browser, see Netscape Bookmarks or Internet Explorer Bookmarks (Favorites). For information on managing the physical demands and risks of prolonged computer use, see the VHD's Ergonomics Links. There are also useful tips and links in the article Strategies for Learning at a Distance from the Engineering Outreach Department of the College of Engineering at the University of Idaho. Commentary 8 Computer Science 200 Study Guide (Print Version) Unit 0: Acquiring Software Tools Back to top Commentary Unit 0 provides links to some useful software tools for the course, as well as practice in obtaining and installing software from online sources. You may not need, or wish to obtain and install all of these programs at this time, but may instead return to this unit as necessary during the course. The recommended software linked to this unit includes shareware, demonstration, or freeware versions of programs, which can be downloaded and used, at least temporarily, at no cost. One of the most important components in any system today is virus protection software. It is essential that any computer that is used online in any capacity has up-to-date, reliable virus protection software installed, and that the software is properly operated and maintained at all times. Virus protection software allows computer users to protect not only their own systems, but also any others they may contact through the Internet. Many viruses are capable of spreading very aggressively by hi-jacking your e-mail address list, and sending themselves to all your contacts. For more information, or to obtain software, go to McAfee or Norton (Symantec). As you continue the study of computers, you will face increasingly complex requirements to obtain and install software from online sources, for which these relatively simple installs will hopefully help prepare you. Some links to downloadable software, including some of the same programs linked from this unit, are also provided in the External Links Table for the course. Some additional downloads will be required for specific parts of the course Projects, and these will be linked for you in the Project instructions as they are required. In general terms, the downloading and installation of software is not a particularly complicated process. Once you reach the linked site where the download is available, it is usually a one-click process to begin the download. The download file may be in the form of a .zip file (open with WinZip), or a self-extracting .exe file, which will automatically install the software when clicked. Either way, it is important to note or choose carefully where on your hard drive the downloaded file is directed. One approach would be to create a new folder for that specific purpose, named 'Downloads'. During the download process there will be an opportunity to choose the target folder for the incoming file. After the download is complete, open that folder and click on the downloaded file to install. Once the installation is complete and you have confirmed that the new software is working, the downloaded .zip or .exe file is no longer required, and may be deleted to recover the disk space. Some providers of these programs may require you to complete a brief registration form or survey first. In cases where information such as your name, e-mail, etc. is required, a Privacy Policy statement will be present, which you may wish to read before proceeding. Unit 0: Acquiring Software Tools 9 Computer Science 200 Study Guide (Print Version) Activities Digital Reading Room Unit 0 Links Activities 10 Computer Science 200 Study Guide (Print Version) Unit 1: Computer Basics Back to top Commentary Unit 1 introduces you to the basic vocabulary and concepts of computer systems. The unit will provide an overview of information systems and information technology. It will also explain why information systems are in such wide use today. In addition to the Study Guide, you will have the opportunity to access materials on the Internet as you work through the unit. Each section presents a set of objectives, materials to read, external sources to explore that expand on them, and review questions. Sections may also include an exercise based on the external sources. Solutions to the questions are provided at the end of the unit. Section 1 Section 2 Section 3 Section 4 Activities Digital Reading Room Unit 1 Links Digital Reading Room 11 Computer Science 200 Study Guide (Print Version) Unit 1 - Section 1 : Why Study Information Systems? Back to Unit 1 Commentary "Information systems" are the products of the application of computing technology and the principles of systems analysis and design to the information-processing needs of organizations. It has been said that, without information systems, the modern organization (business or government) would have faltered under the weight of the information they need to operate. Information processing is hardly a new area of activity, but the systematization and automation of information processing has been largely a result of ever more powerful and affordable computer technology. The effects of computers are found outside the work place as well. Education, entertainment, and many other aspects of daily life have been touched by this pervasive new technology. Learning Objectives Learning Objective 1 • Outline the transition from an industrial-based society to an information-based society. • Discuss the need for computer literacy and education. • Describe the effect information technology has had on the way people work and the kinds of jobs that are available. Objective Readings One of the defining changes in human society during the last 50 years has been the move from an industrial-based society to a knowledge-based society, and the main engine for that change has been the computer. The application of computers as tools in any field of endeavour is generally referred to as "information technology." This change is part of a larger technological revolution that has impacted society to a degree comparable to the Industrial Revolution. However, where industrial society focused on the production of goods through manufacturing, the "information society" also focuses on information itself as a resource, and as an economic product. A "knowledge worker" may be defined as any person who earns his or her living using, creating, or processing information. Of course, the production of goods is still of huge importance in our societies, but the management and execution of the production processes themselves have also been dramatically altered by information technology, and many of the social precepts and paradigms of the Industrial Age are changing as a result. The evolution of information technology has been so rapid that we find ourselves facing a dizzying array of new technologies, with attendant economic and social changes occurring at a pace previous generations Digital Reading Room 12 Computer Science 200 Study Guide (Print Version) could never have imagined. Our vastly expanded ability to record, synthesize, and use information in electronic form has helped to simplify work processes and to increase productivity. The production, collection, and distribution of information has reached a level where virtually any item of public information can be made available to virtually any location, instantly. Much as information technology itself has revolutionized society, telecommunications and networking have revolutionized computing, literally opening a world of possibilities and opportunities. Wireless and broadband communications technology have developed alongside computing technology, and the two combine to create an unprecedented global network for data access and communication. The use of technology to lever performance has also led to the re-engineering of business processes. The computer has enabled automation of the plants that manufacture the products people consume, and industrial robots and large-scale automation of manufacturing processes have enabled widespread access to affordable goods. As an example, consider the way that computer technology has facilitated the move from mass production to mass customization. If you want to remodel your kitchen, you can work with a computer online that will help you design your kitchen, show you what it will look like, and tell you precisely how much it will cost. This is an example of Computer Aided Design (CAD). With "virtual reality" (VR) software, you can "move around" in your proposed kitchen. When you are satisfied with the design, the computer will develop the list of parts, produce the design drawings, and so on. In some applications, this customized design information is then fed into the manufacturing system (Computer Aided Manufacturing, or CAM) of automated plants. The computer also manages the masses of information needed to organize the greatly increased complexity of our society. Markets, including labour markets, are now defined in world terms, and people are increasingly working from home with their desktop computers. Students like you can also use the technology to aid in their learning processes. Using groupware tools for synchronous communication, for example, individuals can participate in text, video, and/or audio conferencing; share files and applications; browse Web sites together; and share interactive tools such as Whiteboards. These software tools come in specialized forms, such as Elluminate and Moodle, which are groupware suites designed specifically for education and training purposes. On the work front, many of the skills that are currently in high demand did not even exist five years ago, when post-secondary graduates now entering the workforce were beginning their College or University education. This is an ongoing and accelerating trend, and many of the jobs that will be available in five years have also not yet been invented. There will be new jobs, products of the continuing and increasing development of new technology, and the resulting change in the way things are done in all sectors of society. They will continue to provide alternatives to the old manual-labour and clerical jobs, many of which have already been replaced by automation. While the transition from an agricultural-based to an industrial-based society took hundreds of years, the change to an information-based society happened in decades. The speed of change has been made possible by mass-production techniques, which have reduced the cost of computer power over the last several decades by a factor of thousands. Computing power which cost half a million dollars 40 years ago, and which required a team of highly trained specialists to operate, is now available for a thousand dollars and can be used by anyone, with relative ease. Objective Readings 13 Computer Science 200 Study Guide (Print Version) In this course, we will access information from computers in different locations, through the Internet, providing a constantly changing perspective on information technology. This provides a resource base that would not be possible using printed texts, and which would have once been an impossible concept for a course. As you progress through these activities and readings, you will be introduced to the skills and knowledge that provide the foundation for further study in Computer Science. Exercises Review Questions 1. Consider the various ways in which you have been affected by, or have dealt with, computers recently. List them, and briefly describe the function(s) performed by the computer. 2. Identify the major professional job categories available in information technology. Indicate, briefly, the types of tasks and responsibilities of each. Answers to Exercises Review Questions and Answers 1. Consider the various ways in which you have been affected by, or have dealt with, computers recently. List them, and briefly describe the function(s) performed by the computer. Home ♦ check my e-mail: the computer acts as a communication device with other computers to provide me with electronic contact with friends around the world ♦ play games: the computer provides me with games for entertainment ♦ maintain my accounts: details of my accounts are stored on a spreadsheet program on the computer ♦ find information (trivia, health information, recipes, etc.) Work ♦ prepare essays for my course: I use a word processor to create essays ♦ test programs: I develop computer programs and test them using software on my computer ♦ e-mail: to stay in contact with my fellow students using my computer at work, which is connected to the Internet My Home City ♦ drive through the city where the traffic lights are controlled by computers that monitor traffic flows using input from cameras and other sensors ♦ withdraw funds from my bank account: an ATM (Automated Teller Machine) allows me access to my bank records and allows me to complete banking transactions Exercises 14 Computer Science 200 Study Guide (Print Version) ♦ pay my utility bills: a machine readable part of my utility bill is used by the bank teller to record my payment on the bank's computer 2. 3. Identify the major professional job categories available in information technology. Indicate, briefly, the types of tasks and responsibilities of each. The main areas for careers in information technology are ♦ the development and construction of applications systems. The business systems analyst is the professional who identifies potential business applications, analyzes the requirements, works with the technical people building the applications, introduces the applications, and so on. The development and construction of computer programs is done by technical analysts and computer programmers. These people are responsible for building the software needed to support the business application. They usually work for an organization that uses computers, or for a consulting company that supports these business users. ♦ the development and construction of systems software. The software engineer is the program designer and builder who is responsible for developing the software systems used by the applications builders, and in some cases, by the user directly. These designers and programmers tend to be more technically oriented, knowing the hardware and software systems in detail rather than the business applications. They usually work for hardware or software manufacturers or businesses that have specialized technical applications. ♦ the maintenance and support of applications. These are the front-line staff responsible for running the computers, networks, and applications software on a day-to-day basis. They may be technical analysts, ensuring the computing infrastructure works well. They may be support analysts, providing front-line support to the users when trouble occurs, training is needed, and so on. These are key operational staff who ensure the systems keep working. They often need both good technical and interpersonal skills. Note that this answer is limited mainly to software development and use in a business setting. There are also many and varied career opportunities in hardware design and development, education and training, computer-aided manufacturing, robotics, graphics, and so on. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Answers to Exercises 15 Computer Science 200 Study Guide (Print Version) Unit 1 - Section 2 : Information Processing Overview Back to Unit 1 Commentary The term "information processing" denotes the process of converting data into information. When raw data is subjected to controlled processes such as sorting, classifying and calculation, it can become useful information. The process of building an information system is complex. It requires a knowledge of the organization and activities that will use the information. In addition, the designers need to understand the role computer technology can play in the system, and how to adapt that technology to work successfully with the people who need the information. Any system needs a process of monitoring to provide feedback, and allow for adaptation to meet changing needs. This section introduces some examples of information systems, and looks at some specific applications of these systems. Learning Objectives Learning Objective 1 • Explain the difference between "data" and "information." • Describe, in general, the ways computers are used as part of information systems. • Describe, in general, the stages involved in developing an information system. • Explain the concept of GIGO (garbage-in, garbage-out) as it relates to information systems. • Explain why feedback is required for effective information processing. • Describe some large information systems that the average person might use on an almost daily basis. • Describe some human or societal issues that need to be addressed when computer information systems are implemented. Objective Readings The concept of data processing is based upon our understanding of the difference between data and information. Data in and of itself may be of no value, but when data is manipulated, organized, or processed, and is then presented in a way that is useful, it may be referred to as "information". This is the essence of information processing, and the underlying function of all applications of computer technology may be described as 'converting data into information'. Raw data is often referred to as 'input', while the processed information is referred to as 'output'. This gives us a simple model, called the data processing cycle: INPUT=>PROCESS=>OUTPUT, which is the most fundamental model for what computers do. Computer technology may convert data into information by • accessing or collecting the data; Conferencing 16 Computer Science 200 Study Guide (Print Version) • sorting or otherwise organizing the data; • transmitting the data; • manipulating or altering the data through the application of mathematical or logical processes; • storing the data, as well as the programs used to process it, and the processed information; • presenting or communicating the processed information in a useable format. The process of developing computer systems involves many stages. These include identifying requirements, developing sample designs, and testing these designs. A proposal is written, reviewed, and validated by several people before construction begins. Once completed, the system is placed in a test installation, and potential users are trained. This process continues indefinitely, in a series of "successive refinements," as the system is built and implemented in parts, and adapted as needed by its users. There is room in the process for constant review and adaptation, as users and analysts realize over time what works and what does not, and as the requirements themselves evolve. The feedback and adjustment process is crucial to any system in a changeable environment or in a situation where needs can only be clearly defined by trial. Almost every application of information technology has one or both of these characteristics. The following model applies equally well to either the development of, or the use of, information systems: • store historical data • gather new data • process • produce results • monitor and refine (feedback). One of the most significant acronyms in computing is GIGO (garbage in, garbage out). This reminds us that systems will produce outputs that are only as good as the data gathered, and if the user inputs incomplete, inaccurate, or irrelevant data, the processed result will not be useful. Again, this is equally true in both the development and the use of information systems. Today, information technology is key to handling the masses of information needed to manage our complex society. Computers record, organize, summarize, and synthesize information. Banks, utility companies, educational institutions, governments, and businesses all use computers to manage their information. Increasingly, personal computers in the home are playing a significant role in the lives of individuals and families, including the way they interact with businesses, organizations, and institutions; in the way they communicate with others; and even how they conduct their own work or business activities. Computer technology speeds up the manipulation of data, minimizes the human processing and handling of information, and speeds transmission, storage, and retrieval. It also provides tools that allow the data to be easily queried and summarized. With the multimedia capability of a modern computer, the definition of data is expanded to include images, as well as audio and video, so the impacts technology has on the workplace are not limited to text or number-centric activities. Previously, administrators would be responsible for gathering, filtering, and distributing information in organizations, but today information is directly available to the front-line staff who need it to do their jobs, Objective Readings 17 Computer Science 200 Study Guide (Print Version) or even directly to customers. In some cases, computers are completely responsible for certain roles, and can communicate directly with other computers in other organizations or firms, automatically performing tasks which once required manpower in both organizations. One example of this is automatic re-ordering of inventory from suppliers, now also applied even at the level of consumer products, such as dishwashers that automatically re-order their own detergent online when required. Communications technology has made many business operations "distance insensitive." There is a much reduced need for people to travel to different sites in a geographically dispersed company, as computer-aided conferencing allows people to meet electronically, and their computers are able to share information electronically. Some examples of very large computer-based information systems are: Utility bills. These are known as "turn-around" documents, where the bill itself acts as a payment document. It contains machine-readable portions that are returned to the company along with payment. Some utility companies also give the customer historical data showing consumption over the last year. This is presented in graphic form, made possible by the laser technology now used to print bills. Credit and Debit Cards. Again, the input/output aspects are fully automated. The sales clerk "swipes" the customer's card and enters the transaction amount. The merchant's machine contacts the bank or credit-card company's computers. These computers then check the customer's account and either authorize or reject the transaction, as well as keeping a record of the transaction. Other Banking. Banks have undergone significant changes to allow customers world-wide access to their bank records 24 hours a day, seven days a week. The increase in Automated Teller Machines has made this possible, at the cost of human teller positions. In some countries, the teller machines include visual and audio contact. Small cameras and microphones are part of the machines. In some cases, customers can see and talk to a real teller, who may be anywhere. Most banks also allow customers with computers to perform certain banking activities from home, such as paying bills, transferring funds, etc. These are a few examples of organizations adding services for their customers by reducing human involvement in routine transactions. In addition to these very large systems that affect almost everyone in society, smaller systems are universally applied in businesses, institutions and homes for an almost endless variety of purposes, ranging from medical diagnostics to digital art. Increasingly powerful machines with broad capabilities for multimedia and communications, and equally powerful and flexible new software tools have brought the computer increasingly into fields such as the arts, teaching, and medicine (to name but a few), where it did not initially have a role. Even in business, where computers have a longer history of use, there are newer applications appearing in areas such as marketing and promotion, retail sales, and human resource management. Objective Readings 18 Computer Science 200 Study Guide (Print Version) The advent and rapid growth of the Internet in particular has given powerful communication tools to small businesses, individuals, and families, and has initiated a revolution in work, commerce, and recreation. Although the social, legal, and human implications of this proliferation of computers in our society is not a significant part of the focus of this course, it would not be appropriate to embark on the study of the systems and their uses without realizing that there are issues and concerns. As in any endeavour, there are successes and failures, and sometimes there are unexpected outcomes or effects when change occurs. Even the successes, as in any undertaking, are invariably obtained at a price, whether financial or otherwise. Increasingly, new communication technologies mean that industries compete in a global market. The changes in business and government, especially those that affect employer/employee relationships, do not come easily because they involve the re-education of every person in an organization. As previously noted, many traditional occupations are disappearing, and new ones are taking their place. As we have seen, these are often jobs for which many workers are unprepared. The confidentiality of the personal information that many organizations now routinely collect is also a significant concern. People need to have access to stored information about themselves, and must be assured that mistakes in the information will be identified and corrected, and that a reasonable standard of privacy is maintained. Canada is a signatory to international legislation guaranteeing these protections, but the protection of individual privacy in this time of broad general access to information is an ongoing struggle. As Smart Card technology, which embeds information on wallet cards for identification, access to government services, and other applications, becomes more widespread, these concerns will multiply. Current and future developments in information technology will change our societies, and perhaps even ourselves, to a degree and in ways that we are only beginning to understand. The potential for improvements in people's lives exists, but there will also be many difficulties to overcome. Significant ethical questions have arisen, and will continue to arise, out of the new uses being found for computer technology. As bio-electronic technology develops, these questions are likely to become even more complex, and more compelling. Like the development or use of any technology, the use of information technology is generally subject to the garbage-in garbage-out rule: what we get out of it will be only as good as what we put in. Exercises Review Questions 1. What is the difference between data and information? Illustrate this difference with some practical examples from your own experience. 2. Why is feedback so important in an information system? Give examples of the feedback that you routinely provide as a user of a system. Indicate how you think that feedback is used. 3. What are the basic stages in the development of a system? 4. Briefly identify the steps involved in an information system you have used. What is the purpose of the system? What type of data is retained by the system? Exercises 19 Computer Science 200 Study Guide (Print Version) Answers to Exercises Review Questions and Answers 1. What is the difference between data and information? Illustrate this difference with some practical examples from your own experience. Data are facts: things that describe people, events, places, and so on. When data are collected and analyzed for some purpose, the results become information. Information can be useful in helping people understand something or making decisions. Computers record enormous amounts of data. When computers are linked and data are shared, the amount of available facts and opinions is so great that no one can know them all. When software tools are used to process the data for a particular purpose, information is generated. The results of the activity are valuable, because they are useful. There are many examples of how information helps people make decisions. When I store data about my assignments and my grades in a database, it is just "there." It serves no useful purpose. When I query this online database, I might ask a question, like "What was my grade for the first assignment?" The result is useful information. A query program has provided me with information from the data. In the same way, when I search for a topic on the Internet or use a spreadsheet to analyze my monthly expenses, I am getting useful information from the data. Clearly, I need the correct data there in the first place so it can be used for some purpose. 2. Why is feedback so important in an information system? Give examples of the feedback that you routinely provide as a user of a system. Indicate how you think that feedback is used. Feedback, and the ability to take corrective action based on that feedback, is key to any system that needs to adapt to its environment. An automatic guidance system collects data from its sensors about its environment, processes that data, and adjusts its direction appropriately. In the same way, an information system processes data and provides output to the user. The output can then help adjust the questions asked, refine a search, identify a trend, change the processing required, and so on. A course is an example of an information system. When I complete an assignment, I send it to my tutor for feedback. The feedback indicates what is well done and what is not, and it includes suggestions for improvement. The feedback could help improve the quality of my future work. A search on the Internet provides me with feedback that can help me refine my search, if necessary. For example, I may query a number of broad terms, and for each query, the search engine may tell me that I have thousands of matches. I may then refine my search by modifying my query to make it more focused. This reduces the number of "hits" found. Most search engines also provide additional, useful feedback by providing some measure of relevance. They use a numeric value to indicate the degree to which each record retrieved matches the query. This can also be helpful in providing me with an indication of the matches I should look at. 3. What are the basic stages in the development of a system? The process begins with an analysis of requirements. A series of design alternatives may be proposed and tested before the system is actually constructed. Once built, potential users are trained, and the system is tested in use. After implementation, there is an ongoing process of refinement and adjustment, based on feedback. Answers to Exercises 20 Computer Science 200 Study Guide (Print Version) 4. Briefly identify the steps involved in an information system you have used. What is the purpose of the system? What type of data is retained by the system? The library system keeps a catalogue of books available to students. I use this system by clicking on a URL in my course. I then enter a login (AUCAT), and use a query to seek books by title, subject, or author. The purpose of the system is to provide local users and students at a distance with a quick and easy search for books. The system retains information about books, including author, title, subject, publishing information, and a short description of the book. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Activities 21 Computer Science 200 Study Guide (Print Version) Unit 1 - Section 3 : Microcomputer Development and Evolution Back to Unit 1 Commentary In this section, we will review the key elements in the development of computers, such as the growth of integrated circuits. The miniaturization of electronics and the automation of their manufacture have led to the massive increase in the power delivered per dollar spent for microprocessors. This in turn led to the development of microcomputers at a price that allowed them to be mass-marketed like any other appliance. It also led to the inclusion of microcomputers in other products, from watches to automobiles, where they have replaced electro-mechanical or mechanical analog devices. Learning Objectives Learning Objective 1 • Identify the key technologies that have contributed to the advancement of microcomputer development. • Describe how the invention and development of the microprocessor paved the way for microcomputers. Objective Readings The evolution of microcomputers parallels the evolution of integrated circuit (or chip) technology. This technology allows computer logic in the form of electronic circuits to be burnt into the layers of a silicon chip, and made possible a massive reduction in the size of computers. Earlier computers used transistors, tubes and wires, now replaced by tiny wafers of silicon. The size reduction also allowed operations to be performed at rates measured in millions per second. As the technology evolves, the number of circuits that can be placed on a single chip continues to grow; however, there are theoretical limits to how far that process can go. Large-scale integrated circuits started to appear in the early 1970s. The development that allowed the processor to fit on a single chip also allowed chips to be used for memory, replacing the expensive and bulky ferrite core which was used previously. These advances led to the birth of the microcomputer (or personal computer, PC), which was introduced initially for the electronics hobbyist market, and was produced for Conferencing 22 Computer Science 200 Study Guide (Print Version) general home and office use soon thereafter. Of all the early microcomputers, the Apple and "IBM-compatible" families of machines have survived to become the major PC types in the market. All computers require operating system (OS) software, which provides an interface for the processor, other hardware, and users. The OS enables the user to control (or operate) the computer, facilitates the running of application programs, and manages the hardware resources, activities, and connections. As new processing chips were developed, programmers and electronic engineers designed operating systems to use them, and these pairings led to the establishment of 'families' of PCs. Microsoft developed the early operating system for IBM machines, and other manufacturers quickly developed 'clones' (or copies) of the IBM machines that could run with MS DOS (Microsoft Disk Operating System), the grandfather of the current Windows systems. The IBM family is based on the Intel 8086 family of chips, which evolved into the Celeron and Core 2 Duo CPU chips used in contemporary PCs. At around the same time the IBM PC was introduced, the Apple Computer Company introduced its family of machines, which became very popular with the launch of the Apple 2 computer. Apple later introduced the Macintosh line of computers, the descendants of which are still in widespread use today. Apple computers were originally based on the Motorola 68000 family of microprocessor chips. Very large-scale integration (VLSI) now produces chip switching rates measured in hundreds of millions of switchings per second, allowing personal computers to have a processing speed a thousand times faster than the early chips, and making vast amounts of computing power available at very low cost. This additional processing power has been paralleled by a growth in the capacity and speed of memory chips and peripheral devices. Again, the automation of manufacturing and miniaturization were the key factors in enabling new levels of computing power. The motherboard is the central component of a micro-computer, upon which the microprocessor and memory chips are mounted. The motherboard also contains the "bus", a high-speed data interface that enables peripheral devices attached to the machine to communicate with each other and with the microprocessor. Peripheral devices are components other than the CPU and main memory, and include storage devices, sound or graphics processing cards, video monitor, speakers, modem, network card, keyboard and mouse, plus many other more specialized input and output devices. Some peripherals are in the form of circuit boards, which plug into the motherboard, and others are external devices connected via cables. Most peripherals have some onboard logic circuits of their own, which speed their operation and allow them to act independently from the CPU as required. Objective Readings 23 Computer Science 200 Study Guide (Print Version) Increasingly, computers are also interfaced with a wide variety of other digital devices, such as cameras, digital audio players, and removable storage devices. These devices are usually connected via a USB (Universal Serial Bus) connection. The vast increase in the power of microcomputers has been achieved with no increase in cost to the user, because of manufacturing improvements made possible by automation and miniaturization. In fact, computers have become dramatically cheaper over the years. The cost of a state-of-the-art PC in the early 1980's was around $3000. Today the cost is less than half of that, even before we adjust for inflation. More significantly, comparing the capabilities of a computer purchased today with the PC of 25 years ago is like comparing a Formula One race car to a horse and buggy. All this additional computing power has allowed for much more sophisticated operating systems, applications, and utility programs, all of which help make computers more flexible and easier to use. Mass-marketing of personal computers relies on the availability of a product for the workplace or home that would not require the user to undergo extensive training, which has driven software evolution in the direction of more interactive and intuitive user interfaces. One pioneer in this was the Xerox company, which developed a graphical interface and mouse system with which users could control operations, rather than using typed command lines or control key combinations. The idea of a graphical user interface (GUI) was picked up by the Apple company and used on its Macintosh computers. These "point-and-click" machines set a standard for usability that was later emulated by the Windows GUI, now used on the IBM-compatible personal computers and their clones. Microcomputer technology is still evolving. Voice input and output, for example, is becoming commonplace, and the quality and speed of sound and graphics representation has advanced to the point where entire big-screen movies may be produced entirely on computers. Processing speeds, memory, and storage capacities increase so regularly, and so dramatically, that it is hardly worth reporting their current measures in a text such as this. The numbers will literally change between the time this is written and the time it is read. In perhaps the most dramatic stage or aspect of computer development, massive growth in Internet use has spawned a whole new category of hardware and peripherals to support communication applications, and has created an entirely new marketplace and global community. For the computing industry, continuing success in the market place depends on the continual development of software to make machines more usable. Developers are finding new ways to make software "smart," Objective Readings 24 Computer Science 200 Study Guide (Print Version) expanding the versatility and power of applications of all kinds through the techniques of artificial intelligence. Such software aids the user in decision-making by analyzing data for patterns, and then reviewing those patterns according to rule-based criteria. Because of the incredible breadth and scope of possible uses for computers, development may be expected to continue in this manner, towards future technologies that may be limited as much by our own imagination as by any other factor. Exercises Review Questions 1. Explain how the development of integrated circuits has significantly influenced the development of microcomputers. 2. Briefly discuss the effect the development of more powerful machines has had on software capability, giving examples of specific software features or functions, and their hardware requirements. 3. What is the significance of the GUI in the development of the microcomputer? Answers to Exercises Review Questions and Answers 1. Explain how the development of integrated circuits has significantly influenced the development of microcomputers. Integrated circuits, or chips, allowed for the mass production of most of the key components of the computer. The development of chips significantly reduced the cost and the size of computer components. The trend of providing more computing power for each dollar spent continues today. The cost of a microcomputer is falling, while the processing power and memory available is increasing. These cost reductions make computing possible in homes and businesses where once the costs would have been prohibitive. The central processing unit (CPU) in a microcomputer is on a single chip. For example, the Intel Pentium chip is commonly used today. The CPU is the brains of the computer. It contains the logic that controls the execution of the instructions in the computer program. Memory also uses chip technology. A microcomputer memory consists of a bank of memory chips. Chips are also used in other parts of the microcomputer; for example, in the video card that manages the video screen. Essentially, chip technology has allowed powerful computers to be manufactured cheaply and small enough for the desk or laptop. 2. Briefly discuss the effect the development of more powerful machines has had on software capability, giving examples of specific software features or functions, and their hardware Exercises 25 Computer Science 200 Study Guide (Print Version) requirements. As more powerful hardware provided greatly increased processing speed, storage and new input and output technologies were developed; the opportunities for software developers to improve their products were numerous. Graphical user interfaces, multimedia, and large, very powerful and easy to use productivity tools are all examples of software developments that demanded multi-GB storage and processing speeds hundreds of times faster than were available even 15 years ago. 3. What is the significance of the GUI in the development of the microcomputer? Operating a computer was a task that once required considerable technical skills. The operator communicated with the computer using a command language that tended to be cryptic. The operator needed a good knowledge of the way the computer worked. A Graphical User Interface (a GUI) takes a different approach to communicating with a computer. The operator uses a pointing device (e.g., a mouse) to select an activity or a resource. These choices are presented using icons or using menu selection. An icon is a small picture that represents a choice. Menu selection provides choices in the form of a list. The graphical approach is a far easier and more natural way to use the computer. The technology was pioneered by the XEROX company, and first made popular with the Apple Macintosh computer. The Microsoft Windows operating systems came later, but are now the predominant operating system for microcomputers. The development of the microcomputer and chip technology made it feasible to cheaply manufacture computers that had the increased power and memory needed with a GUI. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Answers to Exercises 26 Computer Science 200 Study Guide (Print Version) Unit 1 - Section 4 : Data Representation Back to Unit 1 Commentary In this section we will examine the way in which computers "see" data, and how that representation is converted for human use. The relevance of binary and other alternative base number systems to computing is discussed, as well as the measurement of data and related topics, such as data verification. Learning Objectives Learning Objective 1 • Describe the "two state" nature of electronic computers. • Describe the number systems used in a computer, and the relationships of those systems to the decimal system. • Describe the way binary patterns can represent numbers, characters, or instructions. • Describe the units of measurement for data. • Discuss the need for, and methodology of, ensuring data integrity through error checking. Objective Readings The matter of how a computer represents data is a subject of some complexity, and one that requires some background explanation. Computers, at the most basic level, perform various combinations of three basic functions: mathematical calculation, logical comparison, and the movement of data to and from storage. To direct, control, and understand the results of these processes, human users require concrete symbols to represent the commands or data that exist only as electronic signals within the circuitry of the machine. As an electronic device, the computer has the ability to recognize only two states or conditions. An electronic circuit is either open or closed, much like an electric light is either on or off. In a computer, all representation of data consists of a combination of open or closed circuits; that is, circuits in either "on" or "off" states. On electromagnetic storage media, such as disks or tapes, data is actually stored in the form of positive or negative charges - again, a two-state system. The way data can be encoded using only two states can be compared to Morse code, which is made up of only two signals - a dot and a dash. The whole alphabet can be encoded with these two signals combined in various orders and groupings. Similarly, various combinations and sequences of "on" or "off" states in a computer can represent not only letters, but also numbers and other symbols, such as mathematical operators and punctuation marks. For our convenience, familiar symbols ("0" and "1") have been assigned to the two electronic states. We will return to the ways these symbols are used to encode data below, but first we must briefly examine number systems themselves, particularly the fact that there are other bases for number systems besides our own, familiar decimal system. Conferencing 27 Computer Science 200 Study Guide (Print Version) In practice, the use of the symbols "0" and "1" to represent the states recognizable by a computer makes the binary number system the 'natural' number and symbolic system for computers to use. Because the base of the binary system is what we would (in our decimal number system) refer to as "two", other number systems whose bases are multiples of two (notably octal or base 8, and hexadecimal or base 16) are convenient tools for creating shorter and more easily read strings of characters representing data originally encoded in binary. For this reason, students of computer science should understand the relationships among all of these alternate number systems; our own decimal number system, the binary system used by computers, and the octal and hexadecimal systems that we use to shorten and simplify binary expressions. Understanding alternate base number systems requires that we first "unlearn" some of what we may believe about numbers, starting with the idea that "10" represents some absolute quantity. In fact, from a purely mathematical perspective, "10" can be any quantity, depending on the base of the number system being applied in a given situation. When we count, we use a decimal system, based on groups of "ten", and when we say "ten" we mean this many: ( + + + + + + + + + + ). This is because people first counted using their fingers, and we happen to have five on each hand. Other than that, there is nothing special about the number we refer to as "ten", and no other reason for our number system to be based upon groups of that size. The single symbols for numbers, called digits, are equal in number to the base of our number system; that is, there are ten numeric digits in our decimal system, (0123456789), just as we have ten fingers (also called digits!). In the decimal system, as with all number systems, we count in 'places' or columns, starting with the 'ones' column at the rightmost position, then the 'tens', 'hundreds', and so on. The difference between number systems lies in the absolute value of a group, and of successive powers of the group. In the decimal system, when we count 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, we reach 10 and 'run out of fingers', so we create a group, called '10' and start piling those (groups of 10) up in the next position. Once we run out of fingers (and numerical digits) to count the groups accumulated in any column, we form a new "group" column again. For example, once we have acquired a group of ten "tens," we form a new, larger group called "hundreds." Hence, the number 253 can be broken down into: - two groups of one hundred - five groups of ten - three groups of one. Again, the size of the group used in our decimal number system is equivalent to the number of fingers humans have. Remember, each successive group (starting from the last digit and progressing to the left) is actually one exponential power higher than the group to the right of it. Mathematically, these groups can be described (beginning with the rightmost) as having exponents of 0, 1, 2, 3, and so on, as we move to the left. There are two mathematical rules regarding exponential powers which have relevance here: Objective Readings 28 Computer Science 200 Study Guide (Print Version) 1. Any number to the power of zero is equal to one. This means that one is one in any number system. 2. Any number to the power of 1 is equal to itself. This means that the value of the positions in our (decimal) number system are (from right to left): 10 to the power of zero (1) 10 to the power of 1(10) 10 to the power of 2 (100) 10 to the power of 3 (1000) and so on. As noted previously, it is important to remember that the actual quantity represented by "10" changes in number systems with bases other than decimal. If we had happened to evolve with no pinkie fingers, for example, our number system would most assuredly be based upon groups of eight. In that number system, known as "octal," the number we now call 'eight' would be called 'ten', and we would count like this: 0, 1, 2, 3, 4, 5, 6, 7, 10. The octal system requires two fewer digits than the decimal system, and the basic 'group' size is likewise smaller by 2. In the octal system, "10" is (+ + + + + + + +) , and there would be no single numeric symbols (digits) to represent numbers above 7, just as the decimal system has no single digits to represent numbers above 9. Any quantity can serve as the base for a number system, but as noted previously, for computer science, we are most interested in binary (the 'natural' number system of computers), octal (base 8), and hexadecimal (base 16). Again, the latter two are bases that are themselves powers of two, making them convenient shorthand for binary numbers. Figuratively speaking, computers have only two "fingers" to count on (the "on" and "off" states of circuits as explained above), so they use a number system that groups by a quantity referred to in the decimal number system as "two." In binary, the quantity (+ +) is "10". In the binary system, there are only 2 digits (1 and 0), and we would count like this: 0, 1, 10, 11, 100, 101, 110, 111, 1000. Since there are only two symbols or digits used in binary, one of which is "0", the columns in a binary number can only contain one group. "1", therefore, is the largest single digit number in the binary system. Recalling that 100 in any number system represents a quantity equal to the decimal value of the base of that number system squared, and that 1000 is the value of the base cubed, and so on, we can see that, in binary, "1000" represents (+ + + + + + + +), a quantity representing the decimal value of the base (2) to the third power. In decimal values, this would be or 2 X 2 X 2, or 8. Similarly, the decimal value of 1000 in octal, where the group size is equal to the decimal value 8, would be 8 X 8 X 8, or 512. To compare the various number systems, this simple chart shows how one would count the following row of "+" signs in each system. + + Objective Readings + + + + + + + + + + 29 Computer Science 200 Study Guide (Print Version) binary 0, 1, 10, 11, 100, 101, 110, 111, 1000, 1001, 1010, 1011, 1100 octal 0, 1, 2, 3, 4, 5, 6, 7, 10, 11, 12, 13, 14 decimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 From the above, we can see that 12 in the decimal system is equal to 14 in the octal system and 1100 in the binary system. We can also see that 1 and 0 are the only symbols shared by all number systems. Although we have so far discussed only number systems with smaller bases than our own decimal system, number systems can also be based upon larger groups than are used in the decimal system, in which case additional symbols or single digits are required. To represent the digits of the hexadecimal system, such as might be developed by creatures with 16 fingers (or whatever they might use for fingers), we use the letters A, B, C, D, E, and F to represent single digit values above 9. In hexadecimal, we would count: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F, 10, with "10" in this case being equivalent to what we would call (in decimal) "16". Again, the total number of symbols (including the 0), which are used in counting to the highest single digit value (F), is equal to the decimal value of the base (16). As we have said, the computer's own "natural" number system is binary, but there are problems with its use from a human viewpoint. For one thing, because there are only two symbols, we have to combine them in large groups to make enough different combinations to represent all the various symbols we need to use, such as letters, digits, punctuation, and other marks. A page of data in binary code consists of nothing but 0's and 1's, so you can perhaps imagine the difficulty a computer programmer would have in trying to find an error on such a page. Octal or hexadecimal number systems make very convenient "bridges" between our human perception and that of the computer. Binary code is easily converted, by a simple mathematical operation, to octal and hexadecimal because both 8 and 16 are powers of 2 (2 to the third power and 2 to the fourth, respectively). Octal and hexadecimal representations of the same data require fewer characters than binary representation, and use a greater variety of characters, which makes checking or reviewing the information much easier for human eyes and minds. You may find this number systems. Java conversion applet useful to further illustrate the concept of alternate base CONVERTING NUMBER SYSTEMS The actual conversion of any number to its equivalent in another base can be accomplished, like any mathematical operation, as a series of steps. One method is used to covert decimal numbers to any other base, and a different method is used to convert alternate base numbers to decimal. Both are based on the use of the decimal value of the base in question. To convert a decimal number to any other base, we first divide the decimal number by the decimal equivalent of the alternate base. The remainder becomes the right-most digit in the new, alternate base number. We then divide the quotient from the previous division, again using the decimal value of the alternate base as divisor, and continue listing the remainders from right to left, until a quotient of zero is reached. The alternate base value of the decimal number is represented by the listed remainders. Objective Readings 30 Computer Science 200 Study Guide (Print Version) For example, to convert decimal 11 to binary: 11 / 2 = 5, remainder 1 5 / 2 = 2, remainder 1 2 / 2 = 1, remainder 0 1 / 2 = 0, remainder 1 Listing the remainders from right to left, we form the number 1011, which is the binary equivalent of the decimal number 11. We can prove this, and also illustrate the conversion of alternate-base numbers to our decimal system, by multiplying first the right-most digit, then each one to the left, by successive powers of the decimal value of the alternate system, then adding up the products. At this point it is useful to remember the rules for exponential values mentioned earlier: 1. Any number to the power of zero is equal to one. 2. Any number to the power of 1 is equal to itself. The conversion of 1011 (binary) to decimal would look like this: 1 * 2(zero power) = 1 * 1 = 1 1 * 2(first power) = 1 * 2 = 2 0 * 2(squared) = 0 * 4 = 0 1 * 2(cubed) = 1 * 8 = 8 Adding up all the products above produces a sum of 11. As another example, we will convert decimal 1468 to hexadecimal. 1468 / 16 = 91 with a remainder of 12, symbolized in Hex by the digit "C" 91 / 16 = 5 with a remainder of 11, symbolized in Hex by the digit "B" 5 / 16 = 0 with a remainder of 5 The hexadecimal equivalent of 1468 (decimal) is 5BC. Here is another example of binary to decimal conversion: 1001 (binary) converted to decimal 1 * 2 (to the zero power) = 1 * 1 = 1 0 * 2 (to the first power) = 0 * 2 = 0 0 * 2 (to the second power) = 0 * 4 = 0 1 * 2 (to the third power) = 1 * 8 = 8 Add them up and they equal 9. Therefore, 1001 (binary) is equal to 9 (decimal). As another example, we will convert 456 (octal) to its decimal equivalent. 6 * 8 (exp 0) = 6 * 1 = 6 5 * 8 (exp 1) = 5 * 8 = 40 Objective Readings 31 Computer Science 200 Study Guide (Print Version) 4 * 8 (exp 2) = 4 * 64 = 256 Added together these produce a sum of 302, which is the decimal equivalent of 456 (octal). More examples of this and other conversion methods can be found on the number system resource page(s) linked to Unit 1 of the Table of External Links for the course. CODING AND MEASURMENT A binary digit (either a one or a zero) is a called a "bit." As mentioned above, we need to combine bits in long strings to have enough different sequences or combinations to represent all the letters (upper and lower case), plus the various other symbols used in our language and mathematics. In practice, the number of bits usually combined together to represent a single character is usually 8, and that unit of data is referred to as a "byte." For the sake of convenience and familiarity, decimal system terms are used to describe large units as follows: kilobyte -- a thousand bytes megabyte -- a million bytes gigabytes -- a billion bytes terabytes -- a trillion bytes Because data representation and measurement in computers is actually based on multiples of 2, what we call a kilobyte is actually 1024 bytes, not precisely 1000. Every other unit of measure is also in fact proportionately larger than the familiar decimal values, so these terms provide only approximate measures of actual data quantities. The most widely used binary code for data representation is called the American Standard Code for Information Interchange (ASCII). In ASCII, each binary pattern of 8 has some specific meaning, as a numeral, upper case letter, lower case letter, other keyboard character, or special computer control character. The word "ACE", for example, if expressed in ASCII binary code, would look like this: 01000001 01000011 01000101. The microcomputer processor works with data in larger chunks called "words" which may be four bytes (32 bits), eight bytes (64 bits), or more, in size. Word size, like storage, memory, clock speed, and almost every other measurable aspect of computer performance, continues to increase. Objective Readings 32 Computer Science 200 Study Guide (Print Version) A binary word, or group of binary words, can represent an instruction, one or more binary numbers, text characters, or symbols. The actual interpretation of the binary pattern depends on the program instructions and the CPU. Outputting a binary pattern to a screen treats the pattern as characters; doing arithmetic with the pattern treats it as a binary number; and having the CPU execute the pattern treats it as an instruction. ERROR CHECKING Because each character is made up of several bits, and each bit is the result of an electronic impulse (or the absence of one), the potential for error in electronic data always exists. To help identify errors which may occur in data as it is moved from place to place within the computer, or between computers, we use techniques known as "parity checking" and "checksum." Both of these are mathematical methods of detecting errors. When data is transferred from one location to another, over whatever distance (including within the circuitry of a single machine), both the 'sender' and 'receiver' first establish a protocol for the use of either odd or even parity. We will look at an example of even parity. Imagine two bytes of data: 00001111 00000111. The sum of the digits in the first byte (0+0+0+0+1+1+1+1) is 4, which is an even number. The sum of the second byte is 3, an odd number. A single parity bit (either a 0 or a 1) is added to each byte so that the sum of the original bits, plus the parity bit, make an even number. The two bits would now look like this: 00001111(0) 00000111(1). This is done to every byte in the transmitted data. At the receiving end, the parity checking function adds up the data bits plus the parity bit in each byte. The resulting sum should always be even. All other functions ignore the parity bit. In a system where odd parity is used, the same process goes on, except the sum of the original data plus the parity bit must be an odd number. If the transmitted byte 00001111(0) arrives as 10001111(0), the reversal of one of the bits causes a parity error. That is, the sum of the data bits plus the parity bit is no longer an even number. The system recognizes this, and either the offending byte is sent again, or an error message results. It is also possible, however, that two parity errors could occur in the same byte, creating a false correct in parity checking. For example, suppose same two bytes from the example above arrived like this, with parity bits added for even parity: 11001111(0) 00000111(1). Objective Readings 33 Computer Science 200 Study Guide (Print Version) This would pass parity checking even though the first byte contains two errors; therefore a second check, called "checksum" is applied. This function adds up all the bits in a block of outgoing data and reports the total to the receiver, where the data is added up again and the sum is compared against the sender's total. In the example above, where the parity check would not show an error, the "sending" sum would be different than the "arriving" sum, and the error would be detected at that point. Sent: 00001111 00000111 (sum=7) Arrived: 11001111 00000111 (sum=9). Using the binary data representation model, coding systems, and error checking methods described above, computers are able to represent and manipulate complex data reliably. Exercises Review Questions 1. Why do we use binary code to represent data for computer processing? 2. Why is hexadecimal code used as a way of reducing binary code? 3. What are the two basic steps in error checking done by computers during the transmission of data? 4. List the commonly used units of measure for data, and give an example of the context in which each unit might be used. Answers to Exercises Review Questions and Answers 1. Why do we use binary code to represent data for computer processing? Computers, being electronic devices, can only recognize two states: a circuit which is open or closed (on or off). Combinations of on and off electronic "switches" make up codes that represent a variety of complex symbols, including letters and numbers. It is convenient for us to use the symbols for zero and one (the only symbols used in the binary or base 2 number system) to represent the individual on/off switches or "bits." 2. Why is hexadecimal code used as a way of reducing binary code? The long sequences of zeros and ones in binary code make it very difficult to read. A whole page of binary code can be mathematically reduced to a few lines of hexadecimal code ("hex"). Not only are there many fewer lines of code to review, but more symbols are used (16), so it is easier to read. Hex is used for this purpose rather than any other base because 16 is a power of 2. 3. What are the two basic steps in error checking done by computers during the transmission of data? Exercises 34 Computer Science 200 Study Guide (Print Version) The computer verifies data in two ways: parity checking and checksum. Parity checking checks whether the sum of the bits is an odd or even number, and checksum compares the actual sum of the bits to its reported sum. 4. List the commonly used units of measure for data, and give an example of the context in which each unit might be used. The smallest unit of measurement for data is the bit, which represents a single binary digit. A combination of bits, which is a coded representation for a character, is defined as a byte. The byte is the basis for a naming system based upon metric names, but for which the values are only approximately equivalent to the metric values. For example, a KILOBYTE (KB) is actually 1024 bytes, not 1000. We might describe the size of a file in terms of kilobytes. A more frequently used unit today is MEGABYTE (MB), equal to 1000 kilobytes. This is a unit used to describe memory capacity and file size, among other things. A GIGABYTE (GB) is equal to 1000 megabytes, and is used as a measurement of storage capacity. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Links Java Conversion Applet Answers to Exercises 35 Computer Science 200 Study Guide (Print Version) Unit 2: System Components -- Hardware and System Software Back to top Commentary The goal of this unit is to help you become familiar with microcomputer hardware and an accepted standard microcomputer operating system. This unit provides the background needed to work with the operating system of your computer. It should also increase your confidence when dealing with the variety of software systems you'll find in your professional life. The unit also describes the various hardware sub-systems that make up the machine itself, and discusses how they interact with each other and with other components of the system, such as the user, the software, and the data. You will gain an understanding of the way the operating system orchestrates this interaction. Section 1 Section 2 Section 3 Section 4 Section 5 Section 6 Section 7 Activities Digital Reading Room Unit 2 Links Quiz 1 Complete Quiz 1. TME 1 Complete Tutor-Marked Exercise 1. Links 36 Computer Science 200 Study Guide (Print Version) Unit 2 - Section 1 : Classes of Computers Back to Unit 2 Commentary In this section, we will look at the various classes of computers: micro, mini, mainframe, and supercomputers, and discuss the uses and characteristics of each. Learning Objectives Learning Objective 1 • Describe the classifications of computers, their distinguishing characteristics, and their main areas of application. • Explain how different computers can work together as part of an information system. Objective Readings Computers can be categorized as supercomputers, mainframes, desktops, and portables. The last two categories comprise a category known as Personal Computers, or microcomputers. Portable computers range from laptops down to pocket-sized Personal Digital Assistants (PDAs), such as the Blackberry or Palm Pilot. Any classification of computers by power is somewhat relative in nature, and the standards have changed as the machines have become more powerful. As an example, large mainframe computers of 25 years ago were less powerful than the typical microcomputer of today. As computers are networked, their capabilities expand, and classification becomes even more difficult. For example, when microcomputers are networked and have specialized units that act as servers, the power and capabilities of each unit in the network are enhanced. A file server may be another microcomputer, which acts as a repository of shared information or programs. We can see this relationship in action when we communicate with other machines on the Internet. Your local workstation is the client requesting information, and another machine acts as the server supplying the information. The choice between computer types is a cost/performance trade-off, the specifics of which continue to change as hardware and telecommunication costs vary and new software becomes available. The classes of computers are also only loosely differentiated by size and cost: • microcomputers cost thousands of dollars, and are compact • mainframe computers cost tens of thousands of dollars, and are appliance-sized • supercomputers cost millions of dollars, and may occupy whole rooms Another way to look at the difference between types of computers is to consider the number of users or tasks that can be handled simultaneously. A microcomputer usually runs a single application at a time for a single-user, but a modern PC also has the ability to support multiple users and run multiple applications. Twenty years ago computers with even limited ability to support multiple users were called mini-computers, and represented a class between micro and mainframe computers. TME 1 37 Computer Science 200 Study Guide (Print Version) Today, a PC on a network can request information from networked sources, and can act as a server as well. Usually the relationship among PCs in a network is one of equals communicating with each other, peer to peer. Larger computers support larger numbers of users with centralized or distributed software systems, where some or all of the actual processing is done by the main computer. Such software systems co-ordinate and control the process of transferring information to and from the users. The users are often all doing similar things as part of the same business application. For example, the computers used by tellers at a bank are all part of the same transaction-processing system. Larger computers in such systems may be carrying out many different applications at the same time, for users in different departments or sections of the organization. For example, one large computer may look after all of the processing requests from the tellers, while at the same time operating a personnel system for the human resources department. As we can see, today's microcomputers can serve as independent machines, terminals for larger machines, or even servers. Being the smallest and least costly class of computers, they are the workhorse of small business and the individual computer user. The minicomputer mentioned above was once the workhorse of larger organizations, where applications often need to support dozens of users sharing the same computer. The minicomputer could service the requests of other computers, and at the same time, act as a traffic manager, looking after the switching of messages between various computers on a network. Today, very powerful microcomputers have largely replaced minicomputers. Mainframe computers (named for the architecture of large computers as it existed in the 1960's), are really just very large computers, designed for massive data throughput and support of many users sharing applications. Today's larger computers, like their smaller cousins, are also enormously more powerful than previous versions. Large corporations, governments, and other very large organizations use mainframes for massive record-keeping or processing activities. When you access the Internet with your personal computer, your PC is in a client/server relationship with larger computers acting as network servers. The applications discussed so far are characterized by routine information processing. Many large organizations use different classes and sizes of computers together. These are typically interconnected as a network reflecting the structure and functions of the organization. Imagine, for example, a company with a head office in Edmonton and warehouses in five different locations around Alberta. Each location, including the head office, will probably have a local server managing a number of microcomputers on employees' desks. The local servers may all be connected to a mainframe at the head office, creating a hierarchical structure. Objective Readings 38 Computer Science 200 Study Guide (Print Version) In addition to accessing shared systems, an employee in such an organization will be able to run desktop applications on his or her own microcomputer. For example, he or she could build spreadsheets and use the word processor to create documents. In the situation described above, workers at every location must be able to get information related to their particular role in the organization. For example, salespeople, buyers, marketing people, and others need up-to-the-minute information regarding the inventory available at any location. The inventory system must be shared by many users in the company's different warehouses, and requires that the users of the system be able to update the database on an ongoing basis. Typically, this will be a distributed database application, in which the inventory database will be shared across all of the servers. The servers are interconnected to provide all users with online access to all of the information at every location. The same company may also use a larger computer to do its personnel and payroll activities. These are large, record-processing applications that can be run overnight as they are not so time-critical. The local servers may collect all of the local transactions for the day, and ship them to the mainframe overnight to be run as a big batch of changes to the files. Every night, the mainframe downloads the updated data to the local server. Unlike the inventory information, information in these batch processing applications may only need to be current as of the beginning of the day. This approach provides a way to place information at the site where it is needed and where it can be as up-to-date as needed. It reduces potential bottlenecks on the large mainframes, while still providing access to information across the network. The batch processing approach can yield a cost-saving in terms of resources needed across the whole company network. By managing access to information, this approach allows the computers to be busy on batch activities when the more time-critical interactive systems are not in use. The general objective of networks using different classes of computers is to keep the data available in as current a form as is needed for each purpose, and to manage processing resources and costs efficiently. Some systems, like the inventory-control system, must allow everyone up-to-date information on a minute-by-minute basis. Other applications that are essentially record-keeping can work on batches of transactions that fit its natural cycle. For example, a monthly payroll may have a cut-off date for all changes on the 15th of the month, and be run on the 25th. The information is accurate to the last payroll. Batch processing is much cheaper to provide than "online" data systems, in which the data is processed as it is updated. Batch processing also allows load-sharing by the computer, which can be working day and night. The most powerful computers built are referred to as "supercomputers", and are generally used only for highly specialized and computationally intensive applications, such as weather forecasting and mathematical or scientific modeling. These applications are characterized by their requirements for massive computational power to process data according to very complex formulas, as opposed to merely handling massive amounts of data in relatively simple ways. The supercomputers may, in fact, be a network of specialized small machines that work together to solve a single problem. These are called parallel processors because they can do many operations simultaneously across multiple processors. Objective Readings 39 Computer Science 200 Study Guide (Print Version) One interesting task performed by supercomputers was the Human Genome Project, a research program to identify and sequence all the genes on the human chromosomes. Very powerful supercomputers were used to process and store huge volumes of genome data in this ongoing project, which took years to complete. The genetic mapping project for dinosaur DNA portrayed in the movie Jurassic Park was based upon this real-life supercomputer application. In both the real and fictional genetic mapping applications, the computers used are Cray supercomputers. Supercomputers are also used for applications resembling sophisticated video games. The US Army and National Guard recently developed a very sophisticated helicopter flight and combat training system called the Aviation Combined Arms Tactical Trainer-Aviation Reconfigurable Manned Simulator (AVCATT-A), which simulates the operation of a wide range of aircraft under normal flight or combat conditions. The graphics and other data required for this system are processed by a Silicon Graphics Onyx2 supercomputer. The discussion has so far considered the computer as a general-purpose machine. We have seen that the computer can be used for any number of different applications, depending upon the programs used. In some cases, computers are customized as special-purpose applications machines. The computer aided design workstation typically found in an engineer's office is one example. The software and hardware is configured to give best performance in the particular requirements of engineering design. The package is sold as a specialized workstation, designed for that particular application. Of course, the user will also be able to operate other desktop applications on such a unit. Perhaps one of the most exciting ways information technology is enabling new applications is through "virtual reality" (VR). The US Army helicopter training program mentioned earlier is an example of a VR application. Despite the seemingly high cost of such systems, it is much cheaper (and safer!) to train a pilot in a simulator than to use an actual aircraft. The trainee pilot sits in a "real" cockpit that behaves the way it would in flight, without risk to the pilot or simulator. The blending of graphical devices that give the user the feeling of being inside the displayed environment has many potential uses. A surgeon can show a patient a computer-based simulation of an operation. A medical student can practice the operation with no risk to a real person. An architect can walk you through a house design in a simulation of the house. A remote operator can control a robot or vehicle, possibly operating in a hazardous location such as the inside of a nuclear reactor, or a battlefield. A head-set Objective Readings 40 Computer Science 200 Study Guide (Print Version) connected to the computer allows you to see the simulation as your total field of vision, where you guide your way around by eye movement. If you are wearing gloves that sense your hand and finger movements, you can even pick something up in this virtual world. Many other types of machines also include embedded specialized computers. These computers may not look like PCs because they may not have keyboards or monitors. As components of a larger machine, they collect data and manage many functions, using pre-programmed microprocessors. They can be found managing valves in pipelines, monitoring or controlling a variety of functions in your car, enabling you to program your VCR or microwave, and so on. The modern cell phone, for example, is more closely related to the computer than to the traditional telephone. In fact, when we look at the statistics on the sale of microprocessor chips overall, it is interesting and perhaps surprising to note that only a tiny percentage of all microprocessors made and sold are destined for use in personal computers. Examining the many forms and uses for computers can be overwhelming, but this is to be expected when you consider the rapid growth of computer technology and its adaptation to nearly all aspects of daily life. The computer is having as powerful an impact on society as did the motor car, and the changes in computing and the application of computer technology are happening much more rapidly. As previously noted, all these changes have been made possible, in part, because of the improvements in electronic circuit design and manufacturing. Computers today use "fourth-generation" technology, meaning large-scale integration of circuits on a single chip. Large-scale integration means that a whole computer (microprocessor) can be put on a single chip. In the following sections we will examine the form and functions of the processor itself. Exercises Review Questions 1. What are the different classes of computers, how are they distinguished, and what are some reasons for the blurring of distinctions between them? Answers to Exercises Review Questions and Answers 1. What are the different classes of computers, how are they distinguished, and what are some reasons for the blurring of distinctions between them? Exercises 41 Computer Science 200 Study Guide (Print Version) The different classes of computers are micro, mini, mainframe, and super. These are distinguished by cost, size, processing power and speed, and by the number of users each can support. The distinctions between them have been blurred by the rapid improvements in computer technology, creating microcomputers that are not only cheap, but also more powerful than early mainframes and able to support multiple users. Networking also has made it possible for a group of smaller computers to do the same job as a single, much larger unit. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Answers to Exercises 42 Computer Science 200 Study Guide (Print Version) Unit 2 - Section 2 : The Central Processing Unit and Primary Memory Back to Unit 2 Commentary The central processing unit (CPU) controls the operation of a computer system, following the sequence of instructions contained in a program. Programs are not strictly linear, but contain loops and branches to allow for the repetition of steps and options determined by the user or by logical comparisons the computer makes. Programs are stored in primary memory, along with the data to be processed. Also discussed in this section are the ways in which the operating system is able to use storage, memory, and processing power to maximum advantage in the operation of large, multiple, and complex programs. Learning Objectives Learning Objective 1 • Describe the components of the CPU and the role of each part. Objective Readings The following diagram represents the structure of a computer. The CPU can be thought of, in a limited way at least, as being the "brain" of the computer. It obeys (executes) a sequence of very specific instructions (a program) that is stored in the computer's primary memory. The instructions may involve actions such as: • capturing a character from an input device • passing a character to an output device • transferring a block of characters to or from file storage • manipulating the data in memory This diagram illustrates the basic relationship between the CPU and memory as they work together to execute a program. Conferencing 43 Computer Science 200 Study Guide (Print Version) View a Java Applet describing how the CPU works. Examples illustrating the speed of CPUs become obsolete rather quickly as computers continue to develop. CPU speed is measured in Megahertz (MHz), and one MHz represents a capacity of 1 million cycles a second. Processors with speeds of hundreds of MHz are able to perform hundreds of millions of operations in a second, providing the kind of processing speed that makes interfaces like Windows, as well as a variety of very powerful application programs, possible. The CPU consists of the Arithmetic and Logical Unit (ALU) and the Control Unit. The ALU contains all the electronics needed to take a single instruction and execute it. This would involve calculations or logical operations defined by the instruction, which is in the form of a binary pattern. A number of memory registers are used by both the ALU and the Control Unit. A register is a special memory cell that is connected directly to the different components in the CPU. (It would be too expensive to connect the CPU electronic logic to all primary memory cells.) There are many registers in a modern CPU, including • an instruction register, where an instruction is stored while being executed by the CPU; • a program pointer, containing the address in memory of the next instruction to be obeyed; • general-purpose registers, where arithmetic is done. The control unit manages the process of executing the program. This follows a set cycle, called the machine cycle. The steps of the machine cycle are given below. 1. Fetch the next instruction from memory. The instruction, which is identified by the program pointer, is sent to the instruction register. 2. Increment the program pointer to the next instruction. 3. Execute the instruction. This is done by the ALU, working with the registers and memory, as appropriate, for the specific instruction. This may involve doing arithmetic or logical operations on a general register, or moving a binary pattern between primary memory and a register, or changing the contents of the program pointer if the program flow is to change. The program flow is changed when one wants to jump to another instruction rather than execute the next one. 4. Go back to step 1. Learning Objective 2 • Describe the CPU cycle, and illustrate it by tracing the operation of a small program. Objective Readings 44 Computer Science 200 Study Guide (Print Version) Objective Readings We will now examine the process of executing a program using an imaginary, simplified machine and a small program. All computers execute programs procedurally, following a set of instructions. Higher-level languages that allow programming in a more "natural" way do so by creating a software environment around the hardware, presenting the programmer with a different, and more usable, view of the computer. Underlying this, the processor still handles the program in a procedural way. In this procedural execution of steps, instructions will be executed until an instruction to stop is encountered. In our example, the program is designed to accept input of, and add up, a series of numbers, stopping when a zero is entered. Here is the program, expressed in terms of the content of the 10 memory locations required to hold both it and the data: • Location 0 • Set memory Location 9 to zero. • Location 1 • Read a number into memory Location 10. • Location 2 • Load the contents of memory Location 10 into the working register. • Location 3 • Branch to memory Location 7, if register is zero. • Location 4 • Add the contents of memory Location 9 to register. • Location 5 • Store the contents of the register in Location 9. • Location 6 • Go to Location 1. • Location 7 • Write the contents of memory Location 9. • Location 8 • Stop • Location 9 • Location 10 Assume the numbers 5, 6, and 0 were input. The execution of the program would be as follows. Note that each time a command is executed, the program pointer advances to the number representing the next command. Location 0 is executed. Program pointer goes to 1. Location 9 is set to zero. Location 1 is executed. Program pointer goes to 2. Location 10 is set to 5. Location 2 is executed. Program pointer goes to 3. Objective Readings 45 Computer Science 200 Study Guide (Print Version) Working register is set to 5. Location 3 is executed. Program pointer goes to 4. Working register is not zero; nothing happens. Location 4 is executed. Program pointer goes to 5. Working register is still 5. Location 5 is executed. Program pointer goes to 6. Location 9 set to 5. Program pointer goes to 6. Location 6 is executed. Program pointer reset to 1. Location 1 is executed. Program pointer goes to 2. Location 10 is set to 6. Location 2 is executed. Program pointer goes to 3. Working register is set to 6. Location 3 is executed. Program pointer goes to 4. Working register is not zero; nothing happens. Location 4 is executed. Program pointer goes to 5. Working register is set to 11. Location 5 is executed. Program pointer goes to 6. Location 9 set to 11. Location 6 is executed. Program pointer goes to 7. Program pointer reset to 1. Location 1 is executed. Program pointer goes to 2. Location 10 is set to 0. Location 2 is executed. Program pointer goes to 3. Working register is set to 0. Location 3 is executed. Program pointer goes to 4. Working register is zero. Program pointer is set to 7. Location 7 is executed. Program pointer goes to 8. Location 9 is output. Location 8 is executed. Program pointer goes to 9. Program stops. This is a simplification of a real CPU, which would have more registers, the ability to move blocks of data to and from memory, as well as single characters, and many more different types of instruction. However, the Objective Readings 46 Computer Science 200 Study Guide (Print Version) basic processes are all shown in the example. From the preceding you can see that • the CPU operates memory Locations as binary patterns, whether they are program instructions or data. • the CPU cycle is very simple, but very fast: remember that the processor can do hundreds of millions of these instructions in a second. • the processing speed allows the CPU to do complex things. For example, in Windows the single operation of painting a screen or clicking a mouse causes many instructions to be done in a fraction of a second. • in this little example, the program consists of a sequence of instructions that include a "loop" and an "if" condition; thus steps can repeat, or be contingent on the existence of some logical condition. A "loop" simply repeats a sequence of instructions until some condition is met (for instance, the end of a file is reached). An "if" is a means to test for a specific condition (for example, if total income is less than $5400, do not calculate tax). Any procedural program can be expressed as a combination of these types of primitive constructions. Learning Objective 3 • Describe the different kinds of memory and how they are used. Objective Readings The main "working" memory of a computer is called RAM, or Random Access Memory. It is called "random access" because, as we saw earlier, the CPU can address any memory location. Program instructions and data are held in RAM during processing, but RAM is volatile, which means that when you switch off your computer any unsaved contents of the working memory are lost. At one time the working memory of computers was referred to as "core." This term comes from the days before memory came in integrated circuits, or chips, and was instead created using many thousands of ferrite cores. These were small loops of ferrite through which wires were threaded. Each core could be magnetized in one of two directions, to represent either a zero or a one. Learning Objective 3 47 Computer Science 200 Study Guide (Print Version) Ferrite core was very expensive, and at the time, always in short supply. The invention of integrated circuits radically altered this situation, and made possible much larger and faster memory capability. Personal computers today typically have RAM capacities measured in Gigabytes, contained in a compact array of only a few chips. The typical access speed of RAM is measured in nanoseconds, units equal to one-billionth of a second. The massive performance increases in affordable memory have made it possible to have affordable desktop computers that can support complex applications and operating system software. Your desktop computer system will also have additional processors with their own RAM. These additional processors and memory chips enhance the performance of components that use a lot of memory and computing power, such as video display. The CPU off-loads responsibility for managing the monitor screen to a separate processor, which ensures the video screen is constantly refreshed (or repainted). Without this heavy work-load, CPU cycles and memory space are available for other tasks, and the overall performance of the system is significantly enhanced. The memory capacity of the computer is also enhanced by using something called "cache memory." Most memory is slower than the cycle time of the CPU, so it is possible to gain significant performance benefits by having some very fast memory that the CPU can treat as a kind of "staging area" for RAM. Program instructions are held there, instead of moving them directly from disk storage to RAM. This would be analogous to stacking boxes by the door in a single pile, rather than going to every room to find them before loading them into the moving van. Using cache memory for tasks that require a lot of memory (such as graphic applications, especially those with moving diagrams) improves performance markedly. Because RAM is volatile, there must be instructions available that will enable the machine to start up when it is switched on, even if there is only enough of a program to read the rest of the startup programs from the disk. These instructions are retained in chips referred to as Read-Only Memory, or ROM. Like RAM, ROM is integrated circuit memory, but its memory contents are not volatile; the instructions are permanently recorded in its memory. You may come across some variants of ROM, like Erasable Programmable Read-Only Memory (EPROM), which can be re-programmed, given the right tools. Some of the functions of ROM are further discussed in subsequent sections of the course. Exercises Review Questions Objective Readings 48 Computer Science 200 Study Guide (Print Version) 1. Select a computer advertisement from a newspaper or from a computer store. Describe the configuration in plain English, explaining what the terminology used actually means. For example, "2 gig RAM" means the primary memory is approximately 2 billion bytes in size. 2. List the components of the CPU, and briefly describe their functions. 3. What are the stages in the CPU cycle (also called the machine cycle)? 4. What are the main differences between Random Access Memory (RAM) and Read Only Memory (ROM), and how is each used? Answers to Exercises Answers to Exercises 1. Select a computer advertisement from a newspaper or from a computer store. Describe the configuration in plain English, explaining what the terminology used actually means. For example, "2 gig RAM" means the primary memory is approximately 2 billion bytes in size. ** Note that the sample answer given below represents an older machine, and is provided to show the format of the answer only. Current configurations may also include additional, newer features not specifically mentioned in the example. 1. The machine advertised has the following configuration: 2. 1. Mini-tower 2. Pentium P3-500 processor 3. 128 meg RAM 4. 4.3 gig hard drive 5. 52x speed CD-ROM 6. MPEG video 7. 1.44 floppy drive 8. 17" non-interlaced SVGA monitor 9. 56k modem 10. Dual stereo speakers 11. Microsoft Office 2007 12. Windows Vista 13. 3-year warranty The computer has the following features, translated into English: 1. This is an IBM-compatible microcomputer consisting of an upright computer box and a seventeen-inch colour monitor that supports high-resolution colour graphics. 2. The microprocessor is an Intel Pentium P3 with a speed of 500 million cycles per second. The higher the number, the faster and more expensive the processor. 3. The computer has approximately 128 million bytes (128 megabytes) of Random Access Memory. [Any less will slow the computer, though it can run with 64 megabytes.] 4. The hard disk drive stores approximately 4.3 thousand million bytes of information. [This may seem massive, but many Windows-based programs require millions of bytes for the programs alone.] 5. There is a CD-ROM reader. [The larger the number, the faster the reader.] CD-ROM readers with slower read rates are still in widespread use and are adequate. Much software now comes on CD-ROM. It is a more compact form of removable storage than are floppy disks. Exercises 49 Computer Science 200 Study Guide (Print Version) Multimedia applications also use CD-ROM. 6. MPEG video is software for displaying video on your monitor. 7. A 3.5-inch floppy disk drive is provided to allow removable storage for programs, data files, and so on. 8. Seventeen-inch non-interlaced SVGA monitor is a high-resolution colour monitor suitable for colour graphics and video. 9. The modem has a data-transfer rate of 56.6 thousand bytes per second. [This is normal for a voice phone line.] 10. The computer includes the hardware and software to handle good-quality sound reproduction. [This is typically used in multimedia applications.] 11. Microsoft Office 2007 is a suite of office-automation software. 12. The computer also comes ready with the Windows operating system and software that will connect to the Internet. 13. The computer comes with a three-year warranty. This package is sold by an online retailer; an indication that the Internet is increasingly used for marketing of products, particularly high-tech products. Unit 2 contains additional material to answer this kind of question. 2. List the components of the CPU, and briefly describe their functions. The components of the CPU are the Arithmetic/Logic Unit, which performs the calculations and logical comparisons; and the Control Unit, which tracks the progress and controls the sequence of the program instructions. Registers are special memory locations assigned to the CPU that hold the current instruction as well as the program pointer, which stores the memory address of the next instruction. 3. What are the stages in the CPU cycle (also called the machine cycle)? The stages in the machine cycle are: - fetch the next instruction as indicated by the program pointer - increment the program pointer to locate the next instruction - execute the instruction in memory - repeat 4. What are the main differences between Random Access Memory (RAM) and Read Only Memory (ROM), and how is each used? Random Access Memory is volatile, only retaining its contents while power is supplied. Read Only Memory is permanent, or at least semi-permanent (some types can be altered), and does not lose its contents during shutdown. In terms of use, ROM is primarily used to provide start-up instructions and diagnostics, while RAM is used to store programs and data during processing. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Answers to Exercises 50 Computer Science 200 Study Guide (Print Version) Links Java Applet describing how CPU works Links 51 Computer Science 200 Study Guide (Print Version) Unit 2 - Section 3 : Storage Back to Unit 2 Commentary All programs and data used by a computer system must be stored in an easily and rapidly accessible semi-permanent form. This section deals with the role of the storage devices: tape and disk drives, and CD-ROMs. The development, capabilities, and particular characteristics and applications of each type of storage are discussed. Learning Objectives Learning Objective 1 • List and describe the main storage devices. • Describe how all of these devices interact with the CPU and each other. Objective Readings Computers have not always been able to store data and programs permanently. In the earliest electronic computers, users had to enter program instructions and data each time they wanted to do any processing. Mechanical storage methods such as punch cards were an improvement, but the biggest step forward came with the introduction of magnetic media, first in the form of tape, then disks. Disks brought the added benefit of random, rather than strictly sequential, access. This meant that data could be accessed at any point, not just in the order it had originally been written. As disk capacities have increased, tape storage has become less commonly used. However, magnetic tape is still used in some situations for high-volume archival (backup) storage on all sizes of computers. A typical removable tape cartridge can store thousands of megabytes. Its capacity can be increased up to 100 per cent by using data compression software. Tape continued to be used into the '90s for some live data-processing applications, when the process was serial: accessing or writing data in order, one block after another. This inexpensive form of storage is well-suited to batch applications in which small, relatively simple processes are repeated on a very large number of data records sequentially (e.g., the production of Employment Insurance cheques). With the advent of disk storage devices with capacities in the terabyte range, and with the introduction of optical and solid-state storage technologies, tape has become much less commonly used. The non-destructive read/destructive write capability of magnetic (and later optical) storage technology allowed programs and data to be read into the computer's memory repeatedly as needed, but also updated as necessary. As the size and complexity of both the programs and the data sets they processed increased, the capacity, speed, and reliability of computer storage had to increase to keep pace. Today's microcomputers have, of necessity, massive capacity for storage. The stored data, including code for literally hundreds of system and application programs, plus user data files, is all equally accessible to the processor at any time. Unit 2 - Section 3 : Storage 52 Computer Science 200 Study Guide (Print Version) View a Java Applet describing how the hard drive works. Of course, the processor cannot access magnetically or optically stored data as quickly as data that is already electronically stored in memory, but from a human perspective, the difference in speed is slight. In fact, storage is frequently used as a way to augment memory, exchanging data with RAM on a "just in time" basis to improve processing speed. This is called "virtual memory," and is discussed in detail elsewhere in the study guide. The magnetic computer disk, whether a floppy or internal (hard) disk, is divided into tracks in the form of concentric circles. The disk surface is also split into sectors like the wedge shaped pieces of a pie. For example, a disk may have 200 tracks, each divided into eight sectors. This division creates a kind of grid which serves as the framework to address data stored on the disk. The 3.5 inch floppy disk drive, commonly used in PCs until about 10 years ago, could accommodate removable disks with a capacity of 1.44 million characters, or about 720 pages. On magnetic disks, data is usually stored on all tracks, with the outside tracks often reserved for system information such file tables or bootable (self-loading) programs. The disk rotates when in use, and the read/write heads can move backwards and forwards, allowing the heads access to any sector on any track. When considering the access time to a specific part of the disk, one has to take into account the time it takes to position the read/write head over the required sector and track. Access times for a hard disk would be measured in milliseconds, or thousandths of a second. This may seem very fast, but remember, memory is between a thousand and a million times faster. Disks come in all shapes and sizes, and may be fixed or removable. Non-removable, sealed hard disks in microcomputers typically have capacities measured in gigabytes. One gigabyte is 1000 megabytes, equal to roughly 500,000 double-spaced typed pages, and current hard drives exist with terabyte (1000GB) capacities. In a networked system, storage capabilities may be shared, and individual computers may also have multiple disks, expanding the total storage potential to almost unthinkable volumes of data. The compact disk or CD (of which the larger-capacity Digital Video Disk or DVD is essentially a variation) employs optical, rather than magnetic technology to store digital information. CDs and DVDs hold far more data than floppy disks, and are far more robust. Compared to a magnetic disk (or tape), whose data can be easily destroyed by extremes in temperature, dust, moisture, or ambient magnetic fields, a CD is much more reliable, through not indestructible. Now that writable optical technology is available cheaply, CD drives that Objective Readings 53 Computer Science 200 Study Guide (Print Version) read and write have become standard on PCs, and both "one-write" and "rewriteable" disks are available. CD media is used in the distribution of software and in multimedia publishing, where its high capacity makes it suitable for storing sounds, still and animated images, and high volumes of text. A single CD can store more than 600 megabytes (about 300,000 pages) of information, and DVDs can hold over 4 gigabytes. More recent additions to the storage arsenal of computers include very compact, solid-state "flash" memory devices. This technology, based upon the use of gated transistors, which store data by placing differing numbers of electrons into cells, was first introduced by Dr. Fujio Masuoka in 1984. Flash memory technology is an offshoot of earlier programmable or re-writeable ROM chips, and can now be used to store large amounts of data in very small devices, with no moving parts and no reliance upon a steady source of power to hold the data. The applications for flash memory have been numerous and extremely widespread, including use in digital cameras, audio devices such as MP3 players, and cell phones. Already the level of miniaturization and storage capacity of these devices have reached the point where many gigabytes of data can be stored on a device about the size (and thickness) of your thumbnail. Very compact, high capacity portable flash drives can be connected to any computer through a USB port, instantly becoming a new temporary 'drive' in the computer's data storage system. This is both a major convenience and a new security issue. Flash memory devices are very robust. This writer, for example, has had flash memory sticks, and also a small MP3 player, which survived accidentally going through the laundry. Allowed to dry out thoroughly, my devices actually still worked, although I would not suggest this will always be the case. Although at first glance it may seem that we have excessive storage available in PCs, it should be remembered that programs and operating systems have become huge, and due to the advent of multimedia and the Internet, we store a great many more files, including some (such as sound and image files) that require very large volumes of data to record. Exercises Review Questions 1. Briefly describe the distinguishing features and characteristics of magnetic tape, magnetic disks, and optical disks. Exercises 54 Computer Science 200 Study Guide (Print Version) Answers to Exercises Review Questions and Answers 1. Briefly describe the distinguishing features and characteristics of magnetic tape, magnetic disks, and optical disks. Magnetic tape systems have a fairly large storage capacity (up to 800MB on a small cassette), but are relatively slow and limited to sequential access. This may be acceptable for archival purposes, or for processing jobs that are sequential in nature. Both removable and fixed magnetic disks, which are available in several formats, have a wide range of capacities, from 1.4 MB for 3.5-inch floppy disks, up to a terabyte or more for fixed (hard) disks. Disks have the advantage of allowing random access to the data, and are also faster than tape. Optical disks (CDs and DVDs) have storage capacity ranging from hundreds of MB up to several GB, and are very robust; although they are not quite as fast as fixed magnetic disks. Until recently, they were limited to read-only use for the average user, but "rewriteable" optical storage is becoming more practical. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Links Java Applet describing how the hard drive works Answers to Exercises 55 Computer Science 200 Study Guide (Print Version) Unit 2 - Section 4 : The Peripheral or Auxiliary Devices Back to Unit 2 Commentary Input of instructions and data, output of information, and storage of data and programs, are all essential parts of computer operation. These activities represent the process of communication between people and the machine. The keyboard and the mouse are the most common types of input devices on desktop computers. Other data input devices include scanners that read bar codes or other coding systems. Scanners can also work with software to extract graphics and text from a document. Optical Character Recognition (OCR) software can convert the image of text into a binary text file in which the text can be edited directly. The most common forms of output are the video screen and the printer, however sound output is increasingly used. This section examines these devices and their role in the overall system. Learning Objectives Learning Objective 1 • List and describe the main types of input devices. • List and describe the main types of output devices. Objective Readings Most people control their computers manually, for which the normal mode of input is the keyboard and a pointing device, like a mouse. The most common types of output are on the screen or on a printer. Keyboard and mouse design have begun to reflect ergonomic principles to reduce the physical discomfort of users, as illustrated by the following image. Visual display units, or terminal screens, typically support high-resolution colour graphics as well as text display. Screen sizes vary from the small screens of Personal Data Assistant devices like the PalmPilot, to desktop screens 20 inches or more in size. Flat screens using LCD and other technologies first became available in laptop computers; but have now mostly replaced the more traditional "television" type screen for desktop computers. Links 56 Computer Science 200 Study Guide (Print Version) There are many specialized variations of the computer terminal, with specialized input or output capabilities. An example of this is the ATM machine, which has a limited, specialized functionality, and the unique ability to generate output in the form of cash! Some display devices are sensitive to touch. Choices provided on the screen can be selected by touching a point on the screen, as seen in restaurant ordering systems and video lottery terminals. There are many kinds of scanning input devices, or scanners, which enable input to be read in a number of different forms. A bar coding reader is used by stores to scan Universal Product Codes (UPC). Another is the optical mark reader, which is used for surveys or recording choices in multiple-choice tests. Optical and magnetic character readers are also used to input information. Both of these detect characters or numbers on a document. In some cases, the data being read has been printed by a computer; in other cases, it is written on the document. In addition, there are scanning devices that can digitize pictures, as well as recognize characters in text. The pictures are stored as graphic files that can be displayed on the screen, or manipulated using image editing software. Scanned text can be read and converted into characters that can be edited in the same way as if they had been input via the keyboard. All of these scanning technologies help to speed up and automate the process of inputting data into a system and can, if carefully set up and applied, virtually eliminate data entry errors, as well as greatly reducing the manpower and time required. Objective Readings 57 Computer Science 200 Study Guide (Print Version) Another form of input and output is multimedia data, such as image, video, or sound files. The term "multimedia" generally describes a blending of text, graphics, sound, and animation into a single system or document. The advent of educational materials and video games distributed on CD has popularized the use of multimedia, as has the increased popularity of the World Wide Web. Voice synthesizers for output are now quite common, as computers are now generally equipped to handle multimedia products. Even voice input and control have been available for some years, and have recently become cheap enough to be built into some microcomputers. Macintosh multimedia computers have supported voice commands to some extent for several years; however, the usable vocabulary was initially limited, and the system required fine tuning to recognize the speech patterns of the particular user. More sophisticated versions of voice-control and voice input (dictating to the computer) are being introduced over time. One example is the voice recognition feature now commonly available on cell phones. Voice input capabilities will no doubt continue to improve until they are routinely provided on personal computers. Special purpose computers for voice command have begun to be used in higher-end automobiles, and dictation programs like Dragon System's Naturally Speaking have made the input of speech data directly into word processing documents a very practical reality. Multimedia has become the standard for the Internet, and most World Wide Web sites incorporate images, sounds, and/or animations. Input devices for multimedia applications include microphones and other sound data sources, such as audio tape players or CD players. Even musical instruments that are capable of output to an amplifier (i.e., electric guitars and keyboards) can be connected directly to computers through special circuit cards in a system called MIDI (Musical Instrument Digital Interface). Adapters for digital still and video cameras allow direct input of image data from the cameras. In general, the interfacing of external multimedia devices such as digital cameras or audio players has become effortless, with auto-recognition (Plug & Play) capabilities built into the operating system of the computers. Very fast, easy to connect USB cables (further described below) connect such devices to the computer, making them into detachable extensions of the computer itself. Even newer forms of computer input include biometric information, physical movement capture (e.g., Nintendo's Wii), and image recognition. On the output side, the most commonly used printers today are laser and ink-jet models, which are very quiet and produce high-quality reproductions with graphics and colour capability. These have entirely replaced earlier "impact" printers such as dot-matrix and daisy-wheel models. Objective Readings 58 Computer Science 200 Study Guide (Print Version) Output devices for multimedia include the usual monitors and printers, plus sound-reproduction systems. The sound-reproduction components of multimedia computers are basically amplified speakers, using a signal produced by a circuit card that converts digital information to sound. In the case of recording or otherwise inputting sound, the same card performs the reverse process. This is similar, in principle, to the way a modem converts digital information to a telephone signal and vice versa, as required for computer communications. On the ???cutting edge??? of computer output technology, modern robotics can produce output in the form of a manufactured or machined object, or a controlled industrial process; producing ???output??? means much more than simply information. All of these devices are connected together by the motherboard (or system board) in the computer. The motherboard contains the microprocessor chips, memory chips, ports (channels to attach devices like printers), and slots for add-on boards. Add-on boards might include additional storage, processors, or special function cards for sound, video, communications, etc. The motherboard includes the communications and control channels that allow the processor to communicate with these specialized boards. The main traditional kinds of ports are: • serial ports (used by devices like a mouse, modem, or scanner) transfer one bit at a time. • parallel ports (used by devices like a printer or tape drive) transfer eight bits (one byte) at a time. • More recent developments in port and connection types include Universal Serial Bus ports, a kind of enhanced bi-serial port commonly used for digital camera connections, optical mice, scanners, and other devices requiring high data transfer rates. "Firewire" is another format for high-performance serial connection between devices. Exercises Review Questions 1. What impact has the widespread use of multimedia devices in computers had on the publishing and education industries? Assume the computers are networked. 2. List and describe some input devices other than the keyboard, and describe examples of their use. Exercises 59 Computer Science 200 Study Guide (Print Version) Answers to Exercises Review Questions and Answers 1. What impact has the widespread use of multimedia devices in computers had on the publishing and education industries? Assume the computers are networked. Multimedia is the blending of many technologies to develop an alternative way of publishing. Unlike the printed form, multimedia can include sound, pictures, film clips, and animation with text. The materials are stored on a compact disk (CD). One CD can replace a bookshelf of materials. The materials are viewed on a high-speed computer. It is no longer necessary to be constrained by the linear form of presentation used in books. The reader can easily browse anywhere in the material. Multiple paths through the materials can exist. Text, graphics, sound, and film clips can all be presented on the same screen. The material comes "alive" to the user, and can be explored interactively. The ability to provide simulation and animation means the user can take an active role in using the materials. The cost of developing materials for CD-ROM is high, while the cost of the compact disk medium itself is low. This means that mass production and mass sales are needed to recover development costs. Books will not disappear. Many sources of information will not need the capabilities of multimedia, or may not have sufficient circulation to warrant the development costs. The two forms of presenting materials complement each other. Multimedia presentation is having a significant impact on publishing and education. There is an immense market for multimedia reference materials like encyclopedias and atlases. These are significantly enhanced by sound, graphics, and so on. Multimedia materials can be mass-produced to become an affordable resource in every home with a computer. They are sometimes packaged, like other software, with a new computer. Similarly, educational materials can benefit from being presented in multimedia. The student can interact in a way that is impossible with printed materials. When you mix this blend of technology with the WWW, which itself is capable of delivering multimedia materials, you have a global distribution channel for interactive learning materials. (This course, when piloted, was an early example of educational material delivery on an electronic multimedia platform.) 2. List and describe some input devices other than the keyboard, and describe examples of their use. Input devices such as Barcode Readers and Optical Mark Readers are used to scan product and pricing information into retail Point of Sale terminals. Touch screens are used in restaurants to expedite ordering, and are also used in recreational applications such as Video Lottery Terminals. Voice input using a microphone and a sound card is now being applied to the input of both data and commands. Scanners can be used to input images, or with the addition of Optical Character Recognition software, to input printed text, which can then be edited as text rather than as a graphic image of the text. Answers to Exercises 60 Computer Science 200 Study Guide (Print Version) Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Activities 61 Computer Science 200 Study Guide (Print Version) Unit 2 - Section 5 : The Operating System Back to Unit 2 Commentary The explosion in the use of microcomputers has given a boost to software development, resulting in new software that is powerful yet easy to learn and use. Operating systems have been subject to intensive development and improvement, as have applications. Between the user and the hardware are many layers of system software. They interact on your behalf with the inner mechanics of the computer to enable you to use the applications software more easily. This section provides an overview of some of the tasks that these inner layers of software accomplish. We will look at the growth in use of "point-and-click" graphical user interfaces in preference to command-line interfaces. We will also look at the way files are organized within computer storage in order to understand the computer, and how to perform the many "housekeeping" activities needed to keep the computer system running well. Learning Objectives Learning Objective 1 • Identify and describe the main components of your computer's operating system. • Describe the main functions of an operating system. • Explain and describe the process of "booting" the computer. • Describe the relationship between files, directories, and paths. • Describe the function of housekeeping tools or "utilities." • Describe and compare "graphical user interfaces" and "command-line interfaces." Objective Readings An operating system generally comes packaged with a personal computer. The operating system acts as a buffer between the user and the hardware, controlling all the devices on the computer by interpreting the user's input, and translating it into commands the hardware can understand. Your computer can be represented by the following diagram. Conferencing 62 Computer Science 200 Study Guide (Print Version) The most commonly used operating system for PC's is Microsoft Windows. Like any operating system, Windows manages all the devices on the computer, ensuring they communicate with the programs correctly. It organizes file storage and controls access to the files. It provides a way of communicating with the computer, and for the computer to communicate with other computers. Windows is an example of a Graphical User Interface (GUI). When using a GUI you can usually select what you want done by using the mouse to point at an icon, button, or menu selection. For example, there is a desktop icon in Windows for the 'Recycle Bin'. This represents a program used in Windows to temporarily store deleted files, allowing them to be recoverable. By clicking on the recycle bin icon you invoke the program. Within the program itself, other choices and functions are also click-able. The point and click interface technique reduces the amount of typed input, thereby increasing speed and ease of use, as well as reducing input errors. In earlier, non-GUI operating systems like DOS, users instructed the computer with "command lines." You can see what this interface looked like if you go to the DOS screen on your Windows computer, also often called simply the "Command Prompt." (See the Accessories menu on the Windows Start list). In a command line interface such as DOS, to copy a file called "notes.txt" from the floppy drive (usually called a:), to the hard drive (c:), the user would type the following command: copy a:notes.txt c:\ Objective Readings 63 Computer Science 200 Study Guide (Print Version) To do the same thing in Windows, you use a file-handling utility such as "My Computer" or "Windows Explorer" to display the contents of the two drives, and "drag and drop" the file with the mouse. In each of these different methods of communication with the computer, the same operation would occur "behind the scenes," so to speak. The file management components of most operating systems organize files in a 'tree' form, consisting of a root directory, and a number of sub-directories, which may also contain their own sub-directories or files. Another name for a directory or sub-directory is a folder. Files types include a variety of formats for data files such as documents, spreadsheet workbook files, images, sound files, etc.; as well as executable program files, library (DLL) files, and other system and application component files. In addition to providing a method of communicating with the machine, and managing the files and various pieces of hardware, the operating system includes many useful tools to perform "housekeeping" activities such as • browsing and editing files; • compacting files - reducing the space they take up when transporting or transmitting; • de-fragmenting files - reorganizing your file space for better performance; • repairing damaged files - detecting, and if possible, repairing files that have become damaged or inaccessible through the file tree; • detecting and cleaning viruses, or protecting the machine memory and files from virus infection; • backing-up and restoring files of whole drives or creating a back-up copy of your files on some removable media, such as magnetic or optical disks or solid-state memory devices. These can then be used to restore data lost because of an accidental deletion or failure of your main disk storage system. Besides the various versions of Windows, other popular operating systems in use today include various forms of Linux, Unix, and the current Apple OS. Applications programs, such as word processors, work with the operating systems to complete processing tasks for the user. An operating system is not a single program, but a collection of programs that enables you to use the machine. Some of the OS components run constantly, others only when needed or when initiated by the user. When you switch on your computer, it goes through a process called "booting," which comes from an earlier term "bootstrapping." This involves loading the most basic components of the operating system from the disk drive. Booting is initiated and directed by a relatively small program that is permanently burned into the ROM (Read-Only Memory) of your computer. This program starts up when you switch on the machine, and reads the first part of the operating system from the hard disk. This first part provides sufficient instructions to then load the entire set of start-up components of the operating system. The operating system "pulls itself Objective Readings 64 Computer Science 200 Study Guide (Print Version) up by its own bootstraps." Because the computer is a general-purpose machine, each user sets up his or her machine to suit their particular needs. As part of the start-up process, the operating system reads files that contain set-up information about your machine. This information may be in auto-loaded files such as autoexec.bat and config.sys, and also in the Windows registry files. These contain information about how the operating system sets up your desktop environment and configures the hardware resources, as well as information about the programs to be automatically loaded upon startup. There are other initialization files that contain specific information about your hardware and software environment, which is needed for the application programs to interface properly with the rest of the system. In Windows systems, these files are often named with .INI filename extensions. At one time, users had to set up many of the instructions in these files directly, as for example when a new hardware device or program was installed. Most hardware products now automatically set up and modify these files as part of their installation process, and modern operating systems will recognize when a new device has been attached or installed, and configure that device automatically. You still may be interested in understanding the contents of these setup files, as a method of 'fine-tuning' your system. There are many different levels to understanding your computer. At first you may focus on the basics, learning just enough to do useful work with the machine. Much like learning to drive a car, reaching this first stage can be a significant accomplishment. As with the car, the more you know, the better you'll able to use your machine. You may get to a stage where you feel comfortable 'tuning-up' your machine or installing new hardware. Some people become technical experts in an operating system, and may build a career upon that knowledge. Built-in help functions, tutorials, and manuals are all useful resources for expanding your knowledge. A personal network of other users of the same applications can also be very helpful, as different people will discover and master different aspects of the very complex and versatile programs being used. Trying to learn everything about a piece of software before using it may not work for you. You may learn best by doing certain basic things in practice, then when you are comfortable, exploring further. As you "learn your way in," you will realize how much more there is to know. The systems you are using are immensely complex, with many interacting components. It is a remarkable testimony to the creative energy of software designers that they have succeeded in delivering very complex products in a way that enables people to use them without much prior knowledge. To use the WWW to find out more about a current microcomputer or operating system, you may use a search engine or select one of the sources from the DRR Unit 0 Links. For additional help with computer-related acronyms and abbreviations, check the online dictionaries and acronym lists provided in the DRR Unit 0 Links. Objective Readings 65 Computer Science 200 Study Guide (Print Version) Learning Objective 2 • Describe the relationship between operating system, hardware, and applications program. Objective Readings Application programs run in conjunction with the hardware and operating system. From the perspective of the user, the actual computer is the hardware plus the operating system. As an example of how the OS and an application program work together, let's look at a typical sequence of events in the use of a spreadsheet. When you enter data, the following happens: The spreadsheet is waiting for input or instructions. The data is typed on the keyboard. The operating system gets the character information from the keyboard, interprets it, and passes it to the spreadsheet. The spreadsheet assigns the character to the correct cell, and then requests the screen be updated. The operating system initiates the screen-updating logic. The spreadsheet resumes waiting for the next input or instruction. The operating system comes between the application program and the hardware, managing the hardware for the application program, giving it access to resources when it needs them, and creating an interface between the hardware or application program and the user. The Functions of an Operating System The operating system represents the major portion of the systems software. Systems software as a general term includes all the software which supports the interaction of the hardware and the applications software. It represents a significant amount of the software running at any point in time. Learning Objective 2 66 Computer Science 200 Study Guide (Print Version) Many hardware components come with their own specialized software, called "drivers." Driver are an example of system software outside the operating system that act as an interface between the specific hardware and the rest of the computer. The operating system works with the drivers to ensure the hardware performs as designed. Early operating systems were far more primitive than modern systems such as Windows. These early systems were called supervisor programs, or executives. They managed the hardware devices and files, and provided a way of starting and stopping applications programs, and a simple command language to communicate with the computer user. In summary, an operating system like Microsoft Windows provides • methods of managing applications programs to try to maximize the performance of all parts of the hardware; • communication with and among hardware devices; • easy-to-use graphical methods of communicating with the computer; • utility programs needed to keep the computer system safe. Some of the specific ways in which operating system software works to maximize the performance of hardware are discussed in the next section. Learning Objective 3 • Explain how multiprogramming works, and the role of interrupts. Objective Readings As hardware technology improved and there were ever-increasing gaps between the speed of the processors and the slower input/output devices, the operating system started to include some functions specifically designed to maximize the use of the processor. The key concepts involved are that of the interrupt, and the ability of hardware components to operate independently, once started. Think of transferring a block of data from primary memory to a disk. Once the transfer has been initiated it can continue without the intervention of the CPU. This is achieved by the use of DMA, or Direct Memory Access technology. This means is that while the CPU is operating on the parts of the machine cycle that do not require access to memory, another processor can gain access to the memory to handle transferring the block of data to the disk. This is done in an interleaved fashion. The DMA transfer occurs over a number of machine cycles at those stages when CPU does not need access to memory. Once initiated, the transfer of data is looked after by the logic in the disk hardware, working with the logic in the CPU. Let's imagine two programs. One initiates an instruction to start a transfer of data to the disk. This is picked up by the CPU, which then • suspends work on the program waiting for the disk transfer to complete; • advises the disk controller to start a transfer from a particular part of memory; Objective Readings 67 Computer Science 200 Study Guide (Print Version) • starts working on the other program. When the disk transfer is complete, the disk hardware sends a signal, known as an "interrupt," to the CPU indicating that the transfer has been completed. This interrupt causes the currently working program to be suspended by the operating system while it looks to see what has happened. The operating system will then restart the suspended program. This capability allows for "multiprogramming"; that is, running more than one program simultaneously, although we only have one CPU. This is possible because • some parts of the hardware can operate independently of the CPU, once initiated; • the hardware can interrupt the CPU when it needs attention, for example when it has completed an assigned activity; • the operating system can restart another program while the original program is suspended, awaiting completion of an activity such as a file transfer. Using a type of processor design that allows for a process called "Hyper-threading," engineers have even developed systems in which a single processor can appear to the operating system to actually be two processors, and can execute two different steps in parallel. You may be able to see this working on your microcomputer, if you start a print job and then start some other task, like editing a new file. The two work at the same time, although you may observe, at times, the printing pauses waiting to get back to some shared resource, like the CPU, in use by the word processor. We can have more than one program in memory at a time. This leads to the next topic, which is how this works, and how a program can assume a memory size far larger than the actual memory size by using something called "virtual memory." Learning Objective 4 • Explain how virtual memory works. Objective Readings From your reading earlier in this chapter, you may have inferred that a program sitting in memory has exclusive use of the CPU, and runs to completion without interruption. But a program can be suspended while another program gains control of the CPU. To achieve this, logic is distributed across the computer. The logic is part of a separate subsidiary processor. There are many of these subsidiary processors in the computer, such as the disk controller that manages the disks. In this way, different programs can do some tasks in parallel. The CPU still controls the program but relinquishes that control to separate processors that look after some functions, like input, output, and files. The interrupt signal is the way the subsidiary Objective Readings 68 Computer Science 200 Study Guide (Print Version) processors indicate to the CPU that they need attention. With the ability to have more than one program in memory at any time, the concept of a memory address must be discussed. When two programs reside in memory, only one can physically start at the first memory address. Which of the two will start will depend upon the sequence events that happen to occur at any time. That is, it won't always be the same program at the front of memory. You can also change the way a program addresses memory. Rather than the using actual memory addresses (absolute addresses), relative addresses can be used. These are addresses that are relative to the beginning of the program. The arithmetic and logical unit (ALU) of the CPU still works on the absolute memory addresses. You need to enhance the logic in the CPU to compute absolute addresses as part of the CPU cycle. The logic has to add the real start address of the program, its offset in memory, to a relative address in order to know the absolute address. The operating system maintains a table of start addresses of all programs resident in memory. It also usually includes the length of the program. Diagram of an Address Table Program # 1 2 3 Start Address 1000 3500 15500 Length 2500 12000 6000 When the CPU gets a relative address from a program in memory, it adds the start address of that program to give the ALU the absolute address being referenced. This is an enhancement to the logic of the CPU to enable the address computation to be done within the CPU cycle. The address translation table is made up of registers connected to the CPU. They are sometimes called "datum and limit registers." If you use Windows or similar operating systems, you may have noticed it does not allow your program to access memory outside of the range of the particular program. The operating system manages this by ensuring the relative address does not exceed the length of the particular program. If a program instruction tries to address relative memory location 16000 and the program uses only 14000 memory locations, then the program will stop with a memory violation error. You may have seen this type of error message, as it is a common error that occurs when running Windows, especially when you are developing your own programs. Basically, the operating system will not allow an applications program to gain access to memory locations occupied by another program. Exploring the idea of relative and absolute addresses further, you can move a partially complete program to and from memory without needing to worry about it returning to its original memory locations. Push the idea a little further and partially completed programs can be stored on disk, waiting to be restarted, while other, more important programs can occupy the real memory. The disk address of the program is recorded in the address-translation table, if it is not in real memory. When the CPU accesses the table and sees that a program is no longer in primary memory but can be restarted, it looks around primary memory to see what can be removed. It selects a program and puts that back on disk. The selected program is probably a program that has been idle for some time. The operating system then brings the suspended program back from disk to real memory to allow it access to the CPU. This is called "swapping." Objective Readings 69 Computer Science 200 Study Guide (Print Version) The operating system is doing work that is essentially overhead. It is organizing the file access in ways that maximize the use of the CPU. The operating system further ensures the use of the CPU is being maximized by swapping out programs that are waiting for input or in a similar state that do not require CPU time. These efficiencies can be achieved because CPU and memory are significantly faster than other components, like disks. Sometimes bottlenecks do happen, and the operating system ends up spending most of its time organizing itself. This leads to a problem known as "thrashing." A particular mix of programs causes the operating system to get into a state of disk swapping. This sometimes happens on larger machines that have many users. Programs perform more slowly until someone stops a program, or the congestion is cleared when a program is completed. Paging refers to the movement of data in blocks or "pages." If addresses are all relative to the program, and the program needs to be in memory only when using the CPU, we can divide the program into chunks, or pages. As in memory caching, very often the next thing your program wants to do is in the next to last memory cell, so the most efficient thing to do is keep the current page of the program in real memory, and swap it when you need another page. You can have even more programs (or, really, pages from different programs) in memory, increasing the CPU's choices without needing to swap entire programs; only pages of programs are swapped, as needed. The address-translation table is now more complex. It needs to address program numbers and page numbers within the program. This is done using a two-tier system of address-translation tables — the main one for all of the programs, as before; and individual ones for each program that is currently active. The latter tables provide the address translation for the pages of the specific program. There can be many programs current, all appearing to have the CPU to themselves, but they are really sharing it. The CPU's usage is further increased, at the cost of the overhead, for managing a more complex address-translation mechanism. You can have a program with any number of pages, even if the program is far larger than the real memory being used. Only the page currently being executed needs to be in real memory, and the rest can be on disk. You can develop your programs to run without reference to the amount of real memory — they run in "virtual memory." Exercises Review Questions Exercises 70 Computer Science 200 Study Guide (Print Version) 1. Identify the main systems software tools you have on your desktop computer, and describe the purpose of each. 2. Briefly describe how the help system works on your computer. 3. Describe the relationship of interrupts to multiprogramming. 4. Explain how paging and virtual memory help maximize a computer's speed. 5. What does a defragmenter do? Why does a hard drive become fragmented? Answers to Exercises Review Questions and Answers 1. Identify the main systems software tools you have on your desktop computer, and describe the purpose of each. This is a review of materials introduced in Unit 2. The purpose of the question is to encourage you to explore your system. Systems software tools can include the following: ♦ the operating system itself that manages the execution of programs ♦ housekeeping tools that help keep the system usable (diagnostics and software repair tools) ♦ software that can help in configuring the system, including newly added hardware devices ♦ software to manage telecommunications requirements ♦ software to manage disk storage, including deleting and un-deleting files ♦ Tools that diagnose and correct problems, such as ◊ a virus checker and cleaner ◊ a disk analyzer and fixer when problems are found ◊ a disk defragmenter (reorders file segments which have become disjointed in storage) ♦ Compiling and translating programs used in building applications. For example, one might have Java or C++ compilers, or any number of visual programming tools. When you use complex software like Windows, the product shields you from its complexity. Instead, you see an easy to way to interact with the software (a GUI), and software that is smart enough to look after details without you needing to know about any of them. You may never use all the tools provided; however, it is worth spending some time exploring the tools that are available. Most operating systems come with excellent tutorial and help systems. 2. Briefly describe how the help system works on your computer. I use the Windows operating system. It has an extensive "help" feature that provides guidance on many things I want to do on my computer. Help can be invoked by pressing the F1 button or selecting Help from the Start menu. The Windows Help feature gives me a number of different ways to find information. There is an index, a search helper, answers to frequently asked questions, and so on. Many software products also include extensive help features. I am writing this using Microsoft Word, which provides extensive help by selecting the Help option on the main menu. The help system works the same way as the Help on Windows, but the contents are different. Microsoft provides the same look and feel to its help by using the same help system on much of its software. There is also Answers to Exercises 71 Computer Science 200 Study Guide (Print Version) context-sensitive help. For example, I can click on the Help button, then another button, and get a help message about the purpose of that second button. 3. Describe the relationship of interrupts to multiprogramming. Interrupts are signals from the processors located in peripherals, indicating that a transfer of data or a function is complete. This causes the operating system to temporarily suspend the operation of the current program. Because they provide a means of triggering a switch between different programs, interrupts play an important role in enabling multiprogramming. 4. Explain how paging and virtual memory help maximize a computer's speed. By breaking large programs down into pages, blocks of program instructions can be swapped in and out of RAM quickly, without having to transfer the entire program. This facilitates and complements the use of caching or virtual memory to improve speed by allowing many programs to be interleaved. 5. What does a defragmenter do, and why does a hard drive become fragmented? The disk defragmenter is found by selecting Accessories, then Systems Tools on my system. As I use my hard drive, I create, alter, and delete files. At the start of using the disk, files are stored in contiguous (adjacent) blocks of disk space. Over time, as the drive becomes full, I may not have enough contiguous space available to store a new or expanded file. The operating system still handles this situation by finding unused blocks of space on the disk and spreading the file over these "fragmented" blocks. When my disk is almost full, the problem gets worse. When I free up contiguous blocks of disk space by deleting records or files, the operating system can only store a new file of the same or smaller size in the freed blocks. Over time, the blocks of contiguous available space will get smaller and smaller. At a logical level, this is of no concern to me. The programs still work, with the operating system keeping track of where the physical parts of the file are stored. However, it takes more time for the disk to keep looking all over the recording surface for blocks than it does to read the same number of contiguous blocks. My programs get slower and slower as the disk drive has to do more work to retrieve a record from a file. The defragmenter is a program that reads all the files on a disk drive and copies them so each file occupies contiguous blocks. This resolves the performance issue. However, running the defragmenter takes some time to complete, so it should be used only when necessary. The defragmenter with Windows advises you on the degree of fragmentation, and whether it is really necessary to defragment the disk. The final decision is up to you. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Activities 72 Computer Science 200 Study Guide (Print Version) Unit 2 Section 5 Objective 1 Links Unit 0 Links -- Search Engines, Online Dictionaries Links Unit 2 Section 5 Objective 1 Links 73 Computer Science 200 Study Guide (Print Version) Unit 2 - Section 6 : Network Operating Systems Back to Unit 2 Commentary Network systems can connect external users to server computers, as well as link different user's computers to each other. Networks use data-communications channels to move data among the various "nodes" or endpoints of the system. This section is an overview of the growth and structure of networks, from single-computer networks serving multiple users, to multiple-computer networks where applications can be run across many interconnected machines. The section focuses on the choices available and the way these choices have increased as computer and communications technologies have grown. International standards, which allow different networks to communicate with each other, are also discussed. Learning Objectives Learning Objective 1 • Identify the different ways computers can be interconnected. Objective Readings 1. The Origin of Networks Early batch-processing applications were characterized by setting up sets of transactions or documents that were batched together for input later. The data was then input in bulk by data-entry staff. The output tended to be reports on paper, or in some compressed form, like microfiche. This approach is still used for some large record-keeping systems. The user of the system completes a document that is then used as a source document for later input. The main difference today is that data-entry staff may be using a terminal that either updates the files directly or uses delayed automatic batch techniques. Today, additional capabilities are available, such as: ♦ decision-support systems, which allow professional staff online access to the data and the ability to query and download information. ♦ the ability to share expensive resources like specialized page printers, where output is added to a queue of output from all users, to be printed in turn. ♦ the ability to share expensive mainframe or minicomputers by many users doing their individual tasks. This is known as time-sharing, which allows many users to have access to the computer. As the power of desktop computers increases, this need to share the processing power of a large computer is limited to specialized applications. Unit 2 - Section 6 : Network Operating Systems 74 Computer Science 200 Study Guide (Print Version) ♦ transaction-processing applications, where the user may directly input either data or a request for information, and the processing is done immediately, in response to this request. These systems use multiprogramming operating systems, in which a fast CPU can be shared among many users, each doing his or her own relatively slow tasks. It can also be shared among a number of tasks that are not time critical, and can be done in the background, as CPU resources become available. The operating system manages this sharing. In these situations, a single computer is capable of serving many users directly, with all users having their own terminal or a microcomputer attached to the central computer. This connection may be direct through a port on the computer, through a modem, or through some form of concentrator or network hub. A concentrator allows a number of slower terminals to share a fast communications line to the computer. This relieves the computer hardware of the need to constantly look at all the slow speed lines to see if there is a need for service. This type of computer system was the main type used in information systems in the 1970s and 1980s. It provided the ability to handle ♦ batch applications, where input is sent to a file for later processing, possibly overnight. An example of this is a payroll production. ♦ interactive applications, where a number of users are all involved with online transactions that are part of the same application. For example, ordering and inventory applications, where a customer comes to the desk and orders are satisfied on the spot, if possible, or the items immediately re-ordered from a supplier. ♦ time-sharing applications, where a number of users are using the computer to do their own tasks. For example, computer programmers compile and test programs, and statisticians analyze data. This type of network is still essentially a single CPU system supporting a communications network that provides access to multiple users. The system may be supporting both local users and users connected via the telephone system. In a network, some functions are now better performed by microcomputers, with processing occurring locally, rather than being done by the central computer. For example, a user might use spreadsheets and word-processing applications on a desktop machine, leaving the main computer to do large processing jobs, and provide services such as e-mail to all users. This type of computer system is used today in businesses with limited computing needs. We can construct larger networks, involving more processing power and larger numbers of terminals, to support more complex applications and many users with very different requirements. Objective Readings 75 Computer Science 200 Study Guide (Print Version) 2. How Computers Can Be Interconnected Computers can be connected locally to form networks in a variety of different ways. The main types of configurations are: ♦ Star Every computer is interconnected through a controlling computer. The distance between any two computers on the network is minimized, but if the central computer breaks down, the whole network goes down. ♦ Ring All traffic between the computers goes around a single, interconnecting ring. The number of steps to communicate between the different processors can become quite long with large rings. However, the network still works when a computer goes down. ♦ Bus This is modeled on the way the different parts of a computer are connected internally. The bus is a high-speed path, or backbone, through the network. Each computer is connected to the bus, and through it, can address any other computer. Any breakdown in processor or connection only affects the single processor attached to the connection. Objective Readings 76 Computer Science 200 Study Guide (Print Version) ♦ Fully Interconnected Configuration All processors are connected to all other processors, thus all can operate with full autonomy. This is the safest, but most expensive, way to connect computers. ♦ Hierarchical This reflects the way an organization may operate, with a head office having a large mainframe for large record-keeping applications; minicomputers at regional offices, looking after the regional data and summarizing it for head office; and local microcomputers in individual offices. Objective Readings 77 Computer Science 200 Study Guide (Print Version) Learning Objective 2 • Identify the need for networks. Objective Readings As systems became more complex, the need to off-load work onto specialized processors increased. Multiple processor systems can be networks of computers connected together, where • individual computers are dedicated as specialized processors. For example, "back-end" processors manage things like the company's database, or specialized "front end" processors manage the terminals. • individual computers service a particular department or group of people, but the computers are connected together to enable system-wide functions, like e-mail, or to allow some applications to be shared across the whole company. An example of the latter is an integrated manufacturing application. It may have application components in a number of computers in different departments. The machine-scheduling components are done on the factory floor computer, the inventory-control components on the warehouse computer, and so on. From the perspective of the application, though, it is distributed across the network, and though the data itself may also be distributed, the system works as an integrated whole. The decisions about which applications function and which machines get which data items are based on usage, and possibly security issues. All of the data is available over the network to all application components, and all of the application's components work together. This type of system is the norm for larger businesses forming their computing infrastructure today. It still relies on large minicomputers or mainframes for the bulk of the work. This approach is now being challenged by the idea of large networks of microcomputers that co-operate to provide similar services. Learning Objective 2 78 Computer Science 200 Study Guide (Print Version) Learning Objective 3 • Explain the role of protocols and the OSI framework. • Explain the relationship between the different software and hardware components needed to implement a network. Objective Readings Businesses are often spread across countries or around the world. As quickly as the local networks were developed, they were linked to each other. Each location may be largely responsible for its own activities, but some applications are company-wide. Connectivity hardware devices, called bridges and gateways, allow networks to be interconnected within the same geographical area. Bridges allow connection between networks of a similar type, while gateways convert the data being sent between different kinds of networks to allow these networks to interconnect. Looking at greater distances, a network may have a gateway to the Internet or to the public phone system, through which it communicates with other networks, wherever they are located. The users may think they are on a single network, when they are actually using different networks connected by other communications networks. This ability to interconnect networks of different kinds assumes that the different networks use some standard communications protocols. A protocol is the set of rules that define how networks and computers communicate with each other. By the 1970s, an internationally accepted framework for looking at protocols was developed. This framework is called the Open Systems Interconnection (OSI) Model. It defines seven layers of communication, starting with application software at the very top, and moving down to the physical transmission medium, which may be a cable or wire, fibre optic line, or even a wireless medium. There are now many different network-software systems that can run on computers, or use data communications equipment from different manufacturers. A major function of the network operating system is to manage the relationship of the various nodes (workstations or devices) within the network. The network operating system may be another layer of the same operating system that already runs the computer, or it may be provided by another software manufacturer, but is able to work with the existing operating system. The software in the machine might look like the following illustration. Objective Readings 79 Computer Science 200 Study Guide (Print Version) The technical details of communications protocols and media will be discussed in another section. Exercises Review Questions 1. Identify and briefly describe the different network configurations available. 2. Describe several ways in which networks may benefit users. In what specific ways may they enhance the performance of computers? 3. What is the role of protocols in networking? Identify and describe one example of a protocol. Answers to Exercises Review Questions and Answers 1. Identify and briefly describe the different network configurations available. Network configurations include: ♦ Star - In a star configuration, all stations are connected to a central computer. This provides short connection distances, but may be heavily reliant on the proper functioning of the central computer. ♦ Ring - A ring configuration is essentially a circuit, onto which each workstation connects. Connection distances between workstations are longer, but the stations are relatively independent in their functions. This configuration is often used in "peer-to-peer" networks, where there is no main server. ♦ Bus - A bus consists of a single, high-speed "backbone" line, to which workstations connect like side streets to a highway. ♦ Fully Interconnected - A fully interconnected network looks basically like a ring, but with additional connections across the ring between every pair of workstations. This provides the stability of a ring configuration as well as the shortest possible connection distances. ♦ Hierarchical- A hierarchical network could be described as being similar to an organizational chart, with a pyramid-shaped succession of branching connections. This is often used to parallel the organization of workers into departments or units. 2. Describe several ways in which networks may benefit users. In what specific ways may they enhance the performance of computers? Networks allow users to share peripherals such as printers, and also allow the same files to be accessed by different users. They also facilitate communication among members of a workgroup. The performance of computers is enhanced by having access to additional devices, storage, and even Objective Readings 80 Computer Science 200 Study Guide (Print Version) CPU power within the network. 3. What is the role of protocols in networking? Identify and describe one example of a protocol. Protocols establish the rules and formats for the exchange of data between systems, thereby providing standards and enabling different systems and networks to communicate. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Answers to Exercises 81 Computer Science 200 Study Guide (Print Version) Unit 2 - Section 7 : Technology Trends Back to Unit 2 Commentary With the rapid pace and dramatically wide scope seen in the development of computer technology, even relatively short term predictions are risky. In this section however, we will at least attempt to project some current trends, and suggest some likely directions and outcomes for the near future. Learning Objectives Learning Objective 1 • List some possible future storage technologies, describing where possible their expected capabilities. Objective Readings Since the integrated circuit (IC) was developed, the number of transistors that designers can pack on a chip has doubled approximately every 18 months. This has become known as Moore's Law, after Gordon Moore, who first noticed this trend in the early 1960s. This growth is expected to continue for some years. Processor speed, first measured in Hertz, then Megahertz, is now being measured in Gigahertz. Optical (laser) and other storage technologies also promise larger and faster storage systems. Today, a CD stores up to 650 MB of data, but DVD-ROM and writeable DVD storage, which is also now becoming common as standard equipment on new PCs, can offer up to seven times the capacity of an optical disk of the same size. Another form of optical technology, known as Holographic storage, is expected to achieve storage capacities of 10 gigabytes per cubic centimetre. Currently about 10K per square centimetre can be stored on magnetic recording surfaces. At 10 GB densities, a block of optical media roughly the size of a deck of playing cards would house a terabyte of data. Because it would have no moving parts, such a storage device would have a throughput rate of 1 GBPS (gigabyte per second) or higher, which is enormously faster than mechanical storage devices. This represents a continuation of the growth in both computing power and storage capacity per dollar spent. Looking a little further into the future, research on molecular storage systems and quantum computing are also possible ways in which the continued the growth in size and speed of storage can be achieved. Learning Objective 2 • Describe the likely future direction in user interface development. Conferencing 82 Computer Science 200 Study Guide (Print Version) Objective Readings 1. The Future of Networks and the Increasing Degree of Interconnectedness In earlier chapters, we examined the increasing use of data communications in the home and in business. This increase is being made possible by the continuing merging of voice, data, and video channels. Satellite transmissions, radio communications systems, and the availability of coaxial cable in most homes, are increasing our ability to connect to each other with gradually increasing available bandwidth (data transmission capacity). Current users have the ability to custom program, run complex applications, and use the microcomputer as a network device. Newer types of workstations specialized for using the Internet (such as Web TV, for example) are expected to improve and broaden access, rather than replace the PC on the desktop. As broadband and wireless technology has developed and expanded, more and more of our use of computers involves some degree of networking. Wireless connectivity and the portability of systems and applications are making computing ever more ubiquitous in our lives. Sophisticated, networked computers (using wireless technology) can be worn or carried anywhere, at any time. Cell phones now process e-mail and access the WWW directly, and vehicles can be tracked by Global Positioning Satellite technology using onboard computers and wireless communications. One such system tracks the location of school buses on their routes, and calls each upcoming passenger's home on the telephone minutes before the bus will arrive at that location. The clear trend is for access to the communications network to become available from virtually any location, at any time. Modern wireless systems in particular have helped make network access ubiquitous. 2. Trends in User Interfaces Throughout the history of computing technology, people have been trying to develop more intuitive ways to communicate with computers. The move from command line environments to graphic environments is part of the process. Operating systems like Windows have made it easier for people to use computers. In looking at personal computer use today, we can see that multimedia capability has become the norm for desktop computers. CD/DVD devices and sound input/output are now standard features on new micro-computers. Voice input is now available in various forms, and will doubtless become much more prevalent in the future. Direct, real-time voice and video interaction between people has become a commonplace capability on micro-computers, presenting a compelling (and very inexpensive) alternative to conventional long-distance phone conversations. Initially, graphics systems were developed for engineers. Computer Aided Design (CAD) systems allow designers to develop engineering drawings on a computer, and show them in three dimensions. The designer can rotate the pictures, alter their shape, and show them as line diagrams or as the project would look upon completion. This technology is now sufficiently well-developed to be available cheaply on desktop computers. It also has added the technology for computer-generated shapes that can be used as parts of systems that simulate different environments. Today, this technology is also adapted to allow panoramic photographic images to be used for visual effects in computer multimedia presentations. In attempting to create realistic visual effects for multimedia presentations, both Microsoft and Apple now provide 360 degree panoramic video systems. With these, you can display a picture and scroll around the image 360 degrees horizontally, Objective Readings 83 Computer Science 200 Study Guide (Print Version) and nearly as much vertically. You can, for example, select an artifact and view it from all directions. These systems are being further developed to provide localized sound so that as you approach a particular portion of the picture, certain sounds are invoked. Also, the sounds can increase and decrease in volume as you zoom in and out of that part of the image. Video-conferencing technology now allows the use of shared electronic devices like electronic white boards, where all participants can share the same images. Virtual Reality interfaces are being developed that immerse the user in a computer-simulated environment, using special equipment such as goggles and data gloves. The development of head-mounted displays allowed the idea of "virtual worlds" to be applied to other applications. A head-mounted display limits the user's vision to small computer screens mounted in binocular glasses, which contain 3D simulations of an environment. These systems include computer graphics, video imaging, 3D sound, voice recognition, and the use of gloves containing sensors that detect the user's movements. The user is completely immersed in an environment that reacts to his or her voice and movement. "Avatars" are computer-generated characters, which can be used to represent the user in an electronic or virtual environment. For example, they may represent a clerk in a virtual store, or a character in an online game. Where an avatar is a personification of a program or a piece of equipment, it is called a "bot" (short for robot) or an "agent." The Microsoft 'Office Assistant', which appeared as an excessively cheerful-looking paperclip, and was a feature of Microsoft Office versions up to and including XP, was one example of a so-called intelligent agent. This writer always found the Office assistant intrusive and overly "cute," and does not regret its demise in Office 07. Avatars augment the point and click approach of graphical user interfaces by presenting an even more intuitive interface, simulating an actual being or character that is capable of interacting with the human user. Internet chat rooms are another example of where an avatar might be used, but in that case the avatar represents an actual person. One early experimental groupware software environment called Oxygen was a sort of 'virtual office' evolved from research done by the Massachusetts Institute of Technology (MIT) Media Lab. Each employee could have his or her own avatar, and they could meet in virtual meeting rooms, and have virtual offices that they could customize. This is similar in concept to the interactive conferencing and help-desk systems that exist today, except the users are more recognizable as people on the network, and can work in a more "real-life" environment. Objective Readings 84 Computer Science 200 Study Guide (Print Version) View a Java Applet showing how music can be represented and heard. Many practical applications of VR will be based on the idea that objects and entities that inhabit the virtual world are representations of people and things that exist in the real world. Exercises Review Questions 1. List and briefly describe some possible future storage technologies. 2. Discuss the likely future direction of development of the user interface, and how this may impact applications. Answers to Exercises Review Questions and Answers 1. List and briefly describe some possible future storage technologies. Although the possibility that molecular, and even biological technologies may provide future data storage options, the continuing development of optical storage is likely to be the main focus in the near term. Increased availability and capability in read/write CDs may, in time, lead to practical forms of 3D (holographic) optical storage. A holographic storage space roughly the size of a deck of playing cards could contain a terabyte (1000 gigabytes) of data. Because it will have no moving parts, such a storage device can be expected to have access rates of 1 GBPS (gigabyte per second) or higher. 2. Discuss the likely future direction of development of the user interface, and how this may impact applications. The main directions expected for the development of user interfaces include increasing use of 3D and Virtual Reality, and increasing emphasis on interfaces, which facilitate multi-user access and interaction. Communication and multimedia tools can be expected to continue the current trend towards increasing power and increasing levels of integration with applications and system software. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Exercises 85 Computer Science 200 Study Guide (Print Version) Unit 2 Section 7 Intervals Java Applet -- showing how music can be represented and heard. Unit 2 Section 7 86 Computer Science 200 Study Guide (Print Version) Unit 3: Single-User Applications Back to top Commentary The microcomputer has significantly assisted the growth of small and home-based businesses, and has also changed the way businesses work. Old jobs disappear and new jobs are invented. Small businesses can now compete with larger organizations by producing quality products and services more cheaply. Nowhere is this trend more clearly seen than in the growth of electronic business on the Internet. This unit introduces the most commonly used business software tools or applications, and discusses their impact on work environments. Section 1 Section 2 Section 3 Section 4 Activities Digital Reading Room Unit 3 Links Course Project Part 1 Complete Part 1 of the Project. Course Project Part 1 Tutorials Links: • Access Database Tutorial • Database Tutorial for HSQL/DbVisualizer ( alternative ) Unit 3: Single-User Applications 87 Computer Science 200 Study Guide (Print Version) Unit 3 - Section 1 : Business Functions and Single-User Computers Back to Unit 3 Commentary This section focuses on the common tasks all businesses share. These include marketing products or services, keeping track of the accounts, and planning future business. In earlier years, the use of computers to help in these activities was limited to larger organizations that could afford the equipment and specialized staff needed to develop and maintain the software. Cheap hardware and packaged software have put the same power on the desktop. The development of software that uses the "point-and-click" approach of the Macintosh computer and Microsoft Windows, has given businesses a more accessible way to work using the computer. All the applications have the same "look and feel," making training easier and more transferable. Learning Objectives Learning Objective 1 • Identify common activities carried out by many businesses and the pre-packaged standard business applications associated with those tasks. Objective Readings To introduce the subject of single-user applications, and to illustrate how they are used, let us consider the hypothetical case of a young woman entering business for herself as a computer consultant and trainer. Our subject, whom we shall call Frances, graduated from a computing program three years ago, and initially went to work as a help-desk analyst for a large company. Her main area of expertise was supporting desktop applications, and she has also built custom applications and templates for a variety of purposes. While doing this, she gained a solid reputation as an expert on spreadsheet products, and also as a trainer. When Frances felt ready to go into business for herself, she realized that her technical skills and the software she was accustomed to using needed to be augmented by solid business management abilities and tools. Frances had to prepare a business plan before approaching her bank for a start-up loan. The business plan involved estimating her start-up requirements, income, expenditures, and so on. The spreadsheet was an ideal tool to handle this type of financial data. Her business plan had to be created using a word processor that could incorporate spreadsheets directly into the report. Course Project Part 1 Tutorials Links: 88 Computer Science 200 Study Guide (Print Version) Frances then turned her attention to what would be needed when the business was up and running. The following records needed to be maintained as the core of her information systems: • names and addresses of clients and potential clients • company assets like hardware and software • business expenditures • financial transactions with her clients • time and activities spent on each contract, for costing From this data, she was able to put together her accounts, bills to clients, and so on. Frances used a database to store and retrieve the information. She expected the database to provide tools to enable her to enter and maintain the data accurately, generate regular reports, and query the data. A spreadsheet was the ideal vehicle for summarizing the financial data, producing estimates for clients, and quickly developing graphs to include in her reports. She also knew that many of her clients used the statistical capabilities of the spreadsheet for complex computations. Her present and future word-processing requirements were many. Considering the supporting documentation for the loan request, training materials that had to be developed, and the various communications with her clients, Frances knew that she had to be able to develop professional-looking documents, and incorporate data and graphs from a spreadsheet into any document. It was also desirable, though not essential, to produce presentations for delivery on her laptop computer. For example, she could create "slide shows" to introduce her services to potential clients, or for use in delivering training. A presentation manager software application would give her that capability. Frances had one final thing on her wish list, with a view to her company's future development. She needed to use the Internet as an information resource, and as a way of advertising her services and communicating with her clients. This example describes the common uses of single-user or desktop applications in addressing some of the general information needs of organizations. Frances' own company, as well as those where she finds her clients, all require integrated software tools that are designed to handle all sorts of variations upon the tasks described above. When small computers were first introduced into the workplace, the range of such applications included spreadsheets, word processing programs, and database management programs. Presentation management software appeared with the advent of multimedia, and the basic forms of applications continued to evolve, Objective Readings 89 Computer Science 200 Study Guide (Print Version) expand, and diversify to produce the desktop software suites we use today. The modern incarnations of single-user applications, such as spreadsheet programs, have of course expanded to include multi-user sharing and communications capabilities, but the concept of a single-user operating (and customizing) local applications to meet their own specific work needs is still a key aspect of business computing. Exercises Review Questions 1. Visit your local computer store, library, or friend who uses a computer to help in his or her business. Find out what business activities are carried out on the computer. Answers to Exercises Review Questions and Answers 1. Visit your local computer store, library, or friend who uses a computer to help in his or her business. Find out what business activities are carried out on the computer. 2. There are many possible answers to these questions. Answers will depend on the specific examples you present. This is a scenario about Jill, who earns her living as a contract consultant developing computer programs. Over time, Jill has developed a good reputation in the community, and now has enough work regularly coming in to consider employing a programmer to assist her. Jill has tended to specialize in small engineering shops, doing custom jobs for the machine-tool industry. She has developed a good knowledge of that industry, and is retained on contract by a number of companies to keep their computer systems running. Jill uses her computers to develop custom systems, and to keep the records of her contract work. The custom development falls into two major categories: specialized programs for the machine tools, and administrative programs. The development of specialized programs for the machine tools is technical programming, and requires the flexibility of a programming environment that can work directly with specialized hardware and develop efficient programs. Jill uses the programming language C, and more recently has started exploring the use of object extensions to C found in C++. Jill uses a visual programming language to develop administrative programs. This is a high-level language that allows her to build Windows-based programs that use a relational database. Jill uses a development environment called Delphi. Programming in this environment enables her to build business applications very quickly. She also develops spreadsheet applications that can use the data in the database. Jill uses the Microsoft Excel spreadsheet package that is part of her Microsoft Office Exercises 90 Computer Science 200 Study Guide (Print Version) Pro integrated-application suite. In addition to building applications, Jill performs on-site training in Windows, spreadsheets, and the applications she builds. To help in this, she has developed a number of training packages using the presentation manager and word processor in her integrated application suite. Jill also uses the Office suite for her own administrative system (discussed in the answer to the question for Section 2 of this unit.) Some custom programming ideas have been purposely introduced here. These topics will be developed in more detail in later units. If you are curious, you can search on the Internet for more information. Delphi is a product from Borland. Visual Basic is a Microsoft visual-programming tool. There are several companies that sell programming software for C and C++. Many web applications are programmed using Sun Microsystems' Java, a popular and versatile object-oriented language. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Answers to Exercises 91 Computer Science 200 Study Guide (Print Version) Unit 3 - Section 2 : Components of an Integrated Environment Back to Unit 3 Commentary Whether you work for yourself or as part of a larger organization, you probably use a computer. The computer is playing an ever-increasing role in interactions with colleagues, clients, suppliers, and other business contacts. Electronic mail enables rapid and cost-efficient communications within the office or around the world. The modern desktop environment is integrated. That means that all the components have a common look and feel, and can work together. For example, a document prepared on a word processor can now incorporate graphs developed on a spreadsheet. In this section, we will examine examples of this integration of function. Learning Objectives Learning Objective 1 • Identify the components of an integrated desktop office software package. • Identify the types of tasks that can be performed using word processors, spreadsheets, databases, presentation managers, or communication software in combination with each other. • Describe the breadth of applications software now available on microcomputers. Objective Readings 1. Word Processing and Presentation Managers Written communications are a standard part of doing business - a manager writes reports, a restaurant manager prepares the menu for the day, or a sales representative visits potential customers with materials extolling the virtues of his products. People have learned to expect a professional finish to the documents they receive, and well-prepared presentations when they are being shown a product or service. Word processors allow users to create professional quality documents, and presentation managers enable the development of electronic slide shows. As a user of a word processor, you can design the layout of a document on the page. You can control page headers and footers, page numbering, font types, and character sizes. You are able to mix fonts and character sizes within the same document or even within the same word on a document. In addition, you may wish to create tables or use special characters, like those in mathematical formulae. Conferencing 92 Computer Science 200 Study Guide (Print Version) The word processor can also include a number of useful tools to help produce documents, such as a spell checker, thesaurus, and grammar checker. It may also include tools to help produce reports, such as automatically produced tables of contents and indexes. An additional function that may be available in a word processor is the merge utility. When preparing mailings of standard letters, the utility can create customized letters by merging a name and address file with the standard letter, taking information from the file to customize the letter. The same merge-printing utility also allows the name and address file to be used to address envelopes. Some word processors automatically back up the document in use at pre-set time intervals. This can be a useful feature when the computer fails or shuts down unexpectedly. You can expect your word processor to facilitate the import and export of documents from one word processor to another. For example, documents produced on Word can be read in WordPerfect, and vice versa. The word processor is more than a smart typewriter. You may never need to use all the capabilities of your word processor; however, you can customize the product for those tasks you do regularly. For example, you can change the options on the tool bar or create macros. These are named sequences of key strokes that have been captured and stored. The task can be repeated by recalling the macro with a single click of the mouse, which causes the key sequence to be repeated. One of the less obvious benefits of a word processor lies in the way it can free the writer from the constraint of thinking about mechanical, organizational, or formatting details while engaged in the writing itself. This means that the user is able to focus much more fully on the creative process of writing, and deal with the cosmetic items such as spelling, sequence of material, and elements of appearance such as fonts, italics, etc. separately. Many people (including this writer) believe that this can help the user to actually be a more creative and more productive writer. Finally, a brief look at the presentation manager which is available in some integrated products. This tool can produce a series of "slides" which can be shown on the computer screen, projected onto a larger screen with the proper projector, displayed online, or downloaded onto a disk and converted into photographic slides. Objective Readings 93 Computer Science 200 Study Guide (Print Version) A presentation manager such as PowerPoint is a multimedia tool and can incorporate still or animated images, as well as sounds, into presentations. Text, graphs, charts, and other elements can also be incorporated into presentation slides. Programs such as PowerPoint have many applications in education, training, marketing, and customer service, to name just a few. Best of all, they are able to present material in a manner which can capture and hold the attention of the stimulus-hungry modern audience. They also provide the means to manage a variety of integrated resources within a single presentation format, eliminating the former need for a slide projector, film projector, tape player, overhead projector, etc., and replacing these items with a single laptop computer and compact digital projector. 2. File and Database Systems All businesses need to keep records and track business activities. A business may need to keep a list of customers, services offered, business transactions, and so on. A file and database system is the vehicle for keeping this information. Typically the data is represented in tabular form, in tables of rows and columns. Each table consists of a number of attributes which are stored in fields; for example, a customer table will contain fields for attributes such as customer names, numbers, addresses, credit limits, and so on. Each way of organizing the business (for example, by customer, by purchase order type, or by date of purchase), may require a table. Another business may have a table for customers, one for products sold, and one for actual sales. The table for actual sales will record information that relates to specific transactions and information in the first two tables. The following illustrations show the attributes each table may contain. The Customer Table customer name customer number customer address customer credit limit The Product Table product name product number product price The Actual Sales Table product number (purchased) customer number (the purchaser) quantity purchased date of purchase Each of these tables can contain individual sets of data called records. Think of a record as a form (made up of named, but empty, fields) that has been filled in. A record (usually occupying a row in a Objective Readings 94 Computer Science 200 Study Guide (Print Version) table) will represent one instance of the attributes included in the table, like a specific customer in the customer table or a specific product in the product table. These tables would be kept up to date; that is, new rows would be added, old ones removed, and existing ones modified. This would be done to reflect the normal flow of business activities. For example, customers would be added to the customer table when they make their first purchase. The row would be altered if they change their address, and customer rows (or records) might be purged if those customers do not make any purchases for a year. Documents can be created from these tables. For example, an invoice may contain a list of sales to one specific customer on a particular date. An invoice may be an aggregate of data from, perhaps, three different tables: customers, products and orders. Reports can also be created. For example, a report can show the total business done by each customer over a month. This is called a summary report. It summarizes data in the tables. The reports can be presented with records sorted in a desired order; for example, they can be presented in descending order of total sales value, with the customers who purchase most at the top of the report. The final feature of the file and database system is the user's ability to ask questions of the data. This is done using a query, which can access data from a combination of tables, selecting only those records which meet certain criteria. For example, you could ask for the names of customers who had purchased more than $1000 of products over the last week, or the names of products that had not been purchased in the last three months. This is a general description of the functions performed by a database management program such as Microsoft Access. A much more detailed examination of how databases are constructed and used, and particularly how the data itself is organized, will be provided in a later section of the course. 3. Spreadsheets The spreadsheet was one of the early software tools that helped create a demand for the microcomputer among those who work extensively with numbers. The spreadsheet is modeled on the ledger sheets traditionally used by bookkeepers and accountants in that it consists of a two-dimensional grid of rows and columns. This grid has cells at each intersection, each of which can be used to store an item of data, such as a numerical value, a name (label), or a mathematical formula. Generally, formulas are built using cell addresses that refer to the location of particular variables within the worksheet, rather than actual numbers. The result is a self-calculating and very easily updateable worksheet that allows the user to record, calculate and summarize numerical data, query that data, and represent it graphically. Most business activities that involve manipulating numerical information can be done using a spreadsheet. Objective Readings 95 Computer Science 200 Study Guide (Print Version) As a new spreadsheet user, you could start by keeping your household accounts summarized on a spreadsheet. Every month you could enter your expenses, which could then be added up to provide monthly and annual totals by type of expense. You could also use the spreadsheet to highlight changes in spending patterns. The spreadsheet will provide built-in statistical functions that allow you to measure distributions, trends, and similar statistical summaries. You can select portions of your spreadsheet and, with a few key strokes, generate graphs of the data. Modern spreadsheet programs allow the user to manipulate more than one worksheet in one application. For example, you may keep monthly accounts, each on a single worksheet. Rather than a two-dimensional, single worksheet, you can view your data as a three-dimensional grid consisting of many layered worksheets. You can manipulate the data either within one worksheet (for example, one month's data), or through the same data item in all of the different worksheets (many months' data). Once you become comfortable with your spreadsheet, you can explore its programming capabilities. The spreadsheet has a rich macro language that enables you to do arithmetic, manipulate character strings, test values, use built-in functions, set up logical conditions, and even call other macros you have developed. Essentially, the capabilities of the macro language are similar to conventional programming languages. If you are a manager, you can use spreadsheets to facilitate decision-making by allowing different situations or scenarios to be tested, in order to speculate on their effects. This is known as "what if" analysis. For example, in your accounts, you may be recording loan payments. If the interest rate goes down, you have a choice of keeping your payments the same and reducing the term, or reducing the payments and having more money available to use elsewhere. A well-designed spreadsheet usually has one or more "input ranges" - sections of the spreadsheet into which the raw values used in the spreadsheet's calculations are placed. Because every calculation can be done using the names of cells, which may contain either raw values or other calculations, these input ranges become, in effect, control panels for all the variables in the application. By plugging in a new value or values, the effect upon all the calculations derived from those values is instantly seen, making the spreadsheet an extremely powerful tool for testing the effect of changes to a financial or other numerical model. 4. Integration Capabilities This course cannot do justice to the full range of capabilities of desktop applications, nor is it our purpose to focus on them particularly, because this is somewhat of a broad, "survey"-type course. The success of desktop application suites such as Microsoft Office is directly attributable to the way they have enhanced productivity without requiring the user to have an in-depth knowledge of computing. As you become familiar with these products, you can explore their capabilities in greater detail. A great benefit of integrated graphical operating systems such as Windows is the fact that skills acquired in the use of one application are, to a high degree, transferable to others. For example, once Objective Readings 96 Computer Science 200 Study Guide (Print Version) you know how to save a file in one Windows application, you can expect to be able to perform that same action in any Windows application. The command method and sequence for basic functions that are common to all applications (i.e., open file, save file, print, format text, and many more) are identical in virtually all Windows programs. Another one of the handiest features of modern desktop applications is their ability to work easily with each other, sharing and exchanging data, and combining their various specialized abilities to produce a kind of gestalt — something which, through combining its various strengths and features, is quite literally greater than the sum of its parts in terms of its usefulness and versatility. This integration of desktop applications allows the user to achieve remarkable gains in productivity, as well as enhanced creativity. One example is the ability of word processing programs like Microsoft Word to include embedded spreadsheet samples in documents, with active linking to the original spreadsheet that automatically updates numbers in the Word document when the spreadsheet file is changed. Some of the things you do with a database can also be done with a spreadsheet, and sometimes the basic input for one may be the same for the other. It is useful, for example, to be able to easily transfer a client list from a spreadsheet used to record sales into a database used to generate a mailing list. The spreadsheet may also provide a way to develop summary reports, graphs, or predictive models based on permanent data from the database. There are many choices of products available. As a reference standard for this course, we refer to the Microsoft Office suite of products. When comparing products, you can generally expect to pay more for more functions. To select business software, users should start by identifying those business tasks that must be done, and those that would be good to have but are not essential. Magazines such as Byte and Computerworld, plus many other online and print resources, provide product reviews. If you know people who use products that interest you, ask them about the way the product works for them. Check to ensure tutorials and help files are included in the software. See what training is available in your area. It also helps to have experienced users available who will help you with any difficulties. Exercises 1. Identify five business activities that can be carried out with an integrated office package. For each of these activities, briefly describe the activity and indicate the software components used. Answers to Exercises Review Questions and Answers 1. Identify five business activities that can be carried out with an integrated office package. For each of these activities, briefly describe the activity and indicate the software components used. Exercises 97 Computer Science 200 Study Guide (Print Version) Continuing with the scenario about Jill, here are some of the administrative activities she carries out with the Office suite. She uses her database to keep details of her customers, contracts, and work completed for each customer. She has applications that enable her to keep her database records up-to-date. Based on this data, she also has billing software, which sends customers a monthly statement of the work done and the amount owing. She also uses the services of a local bookkeeper. This bookkeeper uses an accounts package on his computer. He also gets machine-readable records of Jill's customer statements. Jill uses her spreadsheet software to develop estimates of the timing and cost of jobs. Over time she has built a history of how long different types of jobs take. She analyzes her database records to help in this task. She also keeps track of her income and expenses, to help her planning. Her spreadsheet software includes statistical functions and, on occasion, Jill has developed spreadsheets to do statistical analyses that help her make design decisions for her technical programs. Finally, Jill uses her word processor for routine correspondence and for the development of training materials. She uses her presentation manager to augment her training materials. There are many other tools that can be used to help manage a busy day. The electronic diary and organizer is an example of such a tool. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Answers to Exercises 98 Computer Science 200 Study Guide (Print Version) Unit 3 - Section 3 : More Specialized Single-User Applications Back to Unit 3 Commentary Business software for the desktop computer is not restricted to the type of integrated packages described in the previous section. There are also many types of more specialized desktop software available for business use. One example of a more specialized application would be the Computer Aided Design (CAD) tools used by engineers and architects. Until recently, these were only available on large computers. Now software to produce professional design drawings can be purchased cheaply and run on small general-purpose computers. Publishing is one of the fastest-growing applications of computers in small business and the home. An author can write a book on the desktop, and e-mail it to a publisher anywhere in the world. Powerful and affordable desktop publishing programs go far beyond the traditional capabilities of word processors. New technology, such as voice input and output, makes computers more accessible to the visually or physically handicapped. With the growth of the Internet, the need to travel to meet people face to face has been reduced. Learning Objectives Learning Objective 1 • Describe the functions and uses of specialized single-user applications, including multimedia publishing, accounting, expert systems, and CAD. Objective Readings Desktop and Multimedia Publishing You have already seen that the capabilities of word processors have grown to include desktop publishing. Add sound, animation, and film clips, and you have the basis for the rapidly growing multimedia publishing industry. The finished product is "published" on CD-ROM or online. This technology was pioneered by the manufacturers of video games. Multimedia publishing is adding a new dimension to the development of courseware for the education market. Courses can now be delivered in an interactive way that incorporates text materials, static and moving pictures, and simulations. The chemistry student can experiment in the safety of a computer simulation; the medical student can explore human anatomy; the computer student can learn about the way a computer works. All this is done with computer-based simulations. Conferencing 99 Computer Science 200 Study Guide (Print Version) As a tool for communication, including publishing and education, multimedia has almost limitless potential, especially when used in conjunction with online communications in an environment such as the World Wide Web. Specific applications for multimedia on the Internet are discussed in more detail in another part of the course. Learning Objective 2 • Describe the new opportunities becoming available as a result of new application developments. • Explain how specialized single-user applications support the move towards home-based and contract work. Objective Readings 1. Accounting Applications Business applications range from personal productivity tools, such as automated diary systems and the integrated packages discussed earlier in this unit, to more specialized business applications software such as accounting packages. At one time, only large organizations had the volume to justify what was then a significant cost outlay for computer-based accounting systems, inventory systems, and other business-related software systems. Now, these are available to small businesses on the desktop computer at a cost that makes them available to even the smallest businesses. Computer accounting programs eliminate virtually all duplication of data and also greatly reduce or eliminate manual recording, calculating, and reporting of transactions. Once a transaction is entered into an accounting program such as Quicken or AccPac, the effect of that transaction can be automatically posted through to all of the sub-journal summaries, account ledgers and financial statements or reports affected by the transaction. There are many accounting packages on the market. All are capable of managing a company's books. Some packages are integrated with other desktop products to become a layer on top of the office software package. In many cases, a user can access office products (such as Microsoft Word or Microsoft Access) without exiting the accounting program. Programs also include a number of tools to let the user track, analyze, and report upon accounting information. Accounting packages can also provide links with larger networks, allowing users to pay bills or access account information. The electronic banking business is growing as banks form alliances with software suppliers. Banks now allow users to use their own computers to check their accounts, view transaction history, transfer funds, and so on. Objective Readings 100 Computer Science 200 Study Guide (Print Version) In the complete business applications environment, data in diverse areas of activity such as inventory and purchasing, point-of-sale, and payroll are all linked as required to minimize duplication of effort and of data. For example, the sale of an item at a retail counter may generate an automatic inventory adjustment, which may in turn trigger re-ordering of the item if stock has reached a certain level. At the same time, the same transaction may also create a journal entry in the bookkeeping records to reflect the financial aspects of the transaction. Later we will learn more about the different ways in which integrated business systems can work together to produce management information at all levels within organizations, and how that affects managerial decision-making. 2. Applications for Other Professionals We have already seen the way the publishing profession is being changed by technology. Now we will look at two additional areas: the graphic-design industry and the software development industry. Drafting and design have been supported by computer programs for many years, but recent growth in computing power and software capability have made the computer an indispensible tool for complex design. This technology is now available on the desktop, both as a design tool and a simulator. With CAD (Computer Aided Design) software, users can develop drawings, maps, and plans which can then be displayed and manipulated in three dimensions. An architect, for example, can develop a simulation of a house and allow clients to virtually walk around the house. With new levels of computing power, connectivity and communication, as well as the availability of powerful software programs that assist in the development of new programs, computer programming is becoming a cottage industry. Whether one is developing systems that will eventually run on a large or small computer, programs can be developed using a microcomputer. Most programming languages are available in desktop environments that facilitate both the development and management of programs. There are also many rapid-development tools, generally described as CASE (Computer Aided Software Engineering) tools, that allow the programmer to develop prototype applications directly with the client. Software simulators exist for all the major large-system environments, and these simulators allow the programmer to develop applications for large-system environments without leaving the desktop environment. Add this capability to the extensive communications network provided by the Internet and you can see why programming is becoming a "global-village industry." Many independent programmers are now able to market their products online, or work for larger organizations at a distance. In fact, so much technical work of various kinds is now capable of being done at a distance, using computer communications technology, that a growing concern exists in North America over the number of jobs in the computer communications sector that are being lost to other parts of the world. Learning Objective 3 • Describe how rule-based expert systems can simulate the decision-making processes of experienced professionals. Objective Readings 101 Computer Science 200 Study Guide (Print Version) Objective Readings Expert Systems The applications discussed so far represent a movement of existing technologies from large computers to the desktop; however, there are also new technologies in applications. Among these are the so-called "expert systems" that assist the specialist in making decisions. The software uses a model of the behaviour of the application area, which represents past experience in the form of rules or case studies. The expert system then predicts outcomes for current experiences based on past experiences. Perhaps the best known applications of expert systems are in the financial world, where they are used to monitor movements in the stock market and initiate buy/sell requests. However, expert systems are starting to be used in a wide range of situations where complex decisions are made. A feel for the breadth of applications can be seen by looking at the vendors in The Management Software Association (TMSA). This is a trade association for suppliers of "intelligent" software for managers. Traditional views of business software have categorized business applications into four main divisions or types, according to the function performed. These included: • Managing people and projects: software to help organize people; write performance reviews; plan projects; develop job descriptions; develop personnel policy; track and resolve issues; and help manage workers' compensation. • Business planning and management: software to help develop and evaluate business strategies for products and services; develop business plans; plan ventures; develop negotiating plans; and develop products and bring them to market. • Sales and financial forecasting: software to help develop an accurate business forecast; select and apply the most appropriate statistical technique for different key business variables; and analyze risk and "what if" scenarios. • Process modeling and decision support: software to help simulate and validate ideas before they are actually implemented; help in business re-engineer; map, model, and simulate business and organizational processes; use decision trees to simplify complex problems; and develop probabilistic models for risk and policy analysis. With the advent of multimedia and the Internet, marketing has become a huge new area of application for computers in business. The types of tasks being done have moved from being merely at the administrative level to encompassing activities at all levels of business. Higher-level tasks involve helping users make complex decisions based on the stored and processed information. Sophisticated expert systems can basically synthesize the work of an expert in the subject matter, and then apply rule or experience-based modeling techniques to simulate probable outcomes in the problem being analyzed. Exercises Review Questions 1. List and describe three specialized single-user applications. Objective Readings 102 Computer Science 200 Study Guide (Print Version) 2. Discuss the relationship between specialized single-user applications and the increase in home-based work, using one of the applications described above as an example. 3. Define and describe an "Expert System". Answers to Exercises Review Questions and Answers 1. List and describe three specialized single-user applications. Three specialized single-user applications are: Desktop Publishing - This application allows text and graphics to be combined, formatted, and laid out for publication, all within a single program. Computer-Aided Design - Powerful onscreen drafting and design tools allow designers to produce and edit professional quality design drawings, schematics, and blueprints Accounting Programs - Transaction entry generates automatic adjustments to account balances, which are then used to produce standard financial statements easily and quickly, almost eliminating the manual work involved in bookkeeping. 2. Discuss the relationship between specialized single-user applications and the increase in home-based work, using one of the applications described above as an example. By using accounting software, a bookkeeper or accountant can easily perform all the functions in maintaining financial records and producing financial reports for one or many businesses. Using the computer's communications capability, the data can be collected from the business client and the results returned without any need for the accountant or bookkeeper to actually be present at the business location. 3. Define and describe an "Expert System". An expert system is a model of a given task or application based on rules or principles derived from actual past experience. The software predicts outcomes from current data based on these rules or precedents. One example is software used in stock and commodity trading, which suggests buy/sell points based on current and recent data, interpreted in the context of past performance. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Exercises 103 Computer Science 200 Study Guide (Print Version) Unit 3 - Section 4 : Relational Databases and Data Normalization Back to Unit 3 Commentary This section introduces the complex topic of how databases are structured and used. In addition to learning the basic terminology and concepts associated with database management systems, you will also examine an example of the process known as "data normalization." In the normalization process, data is progressively re-organized into tables containing keys, which connect and relate the tables to each other. Without this being done, the complex query operations of data management languages such as SQL would not be possible. Learning Objectives Learning Objective 1 • Describe the purpose of database normalization, and outline the steps involved. • Explain the difference between a flat file system and a relational database. Objective Readings Relational Databases and Data Normalization Databases can be either single-user or multi-user applications. A collection of recipes on a personal computer would probably be a single-user application, but a student record system in a university or college would be a multi-user application. In this section, we will begin with an overview of database terminology and concepts, followed by an examination of how data are organized and managed in relational databases using normalized tables. More than any other desktop application, a database management system requires the user to understand certain principles and complexities in order to design and construct a database properly. Let us begin with a single file system such as a Rolodex-type address file. This type of data organization works well for simple tasks, such as organizing a list of phone numbers, but does not allow for the inter-relationships between different groups of data items that more complex data management applications require. In a simple index-card system, each card represents one record, and each card is basically a form with individual spaces (called fields) for specific items of data, such as "Last Name", "First Name", "Phone #", "Company", etc. If we examine three records taken from a simple Rolodex file, the data might look like this: Last Name: Smith First Name: Ralph Phone #: 843-5467 Conferencing 104 Computer Science 200 Study Guide (Print Version) Company: Roico Last Name: Brown First Name: Robert Phone #: 843-7890 Company: Bainbridge Last Name: Binder First Name: Mike Phone #: 876-5252 Company: Albright Each "card" above represents one record, and each record consists of four data fields. If only a single data entity exists (in this case we might call that data entity "Contacts" or "Clients", for example), it is practical to view data in this way. By contrast, where many data entities are tracked (Clients, Sales, Inventory, and Suppliers, for example), it becomes necessary to create a more complex, relational database, in which data are stored in a series of tables, and relationships or linkages exist between the tables. Each table consists of rows and columns, with key relationships between certain data items in each table establishing links. In tabular form, where each row is a record, and each column a field, the same data would look like this: Last Name Smith Brown Binder First Name Ralph Robert Mike Phone # 843-5467 843-7890 876-5252 Company Roico Bainbridge Albright When more complex databases are created using several tables such as these, each of the various tables represents a different data entity. Entities within databases can be thought of as groups of records, such as the examples Clients, Sales, Inventory, and Suppliers listed above. Each entity has its own data fields to define it, and each has its own table. To further examine the implications of complex databases, we will use the example of a college's student information system, designed to record and report upon students, courses, and the relationships between the two. In the following sample database application, there is a table containing information about students. In that table, there is a record for a student (an entity) called John Murdock. Each column (field) in the table represents an attribute of the entity; that is, some data item that describes the entity. For example, "STUDENT NAME" is an attribute of a student. One or more attributes (fields) are used to create a unique identifier for the record, allowing that record to be distinguished from all others in the table. This field, called a key, is usually in the form of an ID#, such as your AU Student ID#. Another use for keys in relational databases is in the linkages or relationships between tables. Basically, by placing the key from one table as a field in another table (where it would be referred to as a foreign key), a Objective Readings 105 Computer Science 200 Study Guide (Print Version) relationship is created. In some cases, it is convenient to use a combination of foreign keys as the primary key for a table, which is then called a combined or concatenated key. As noted, the components of a concatenated key are generally keys from other tables, and each part of the concatenated key also serves as a link to the original table. The use of concatenated keys in normalized data tables is explored in the example below. In the example of the college information system, John Murdock's student identity number (STUDENT ID #) is a unique value that is used on the computer system to identify him as a student. Later we will see how the STUDENT ID # key is also used as part of a concatenated key. Non-key data items only have meaning when associated with their key values. For example, John's record on the student table might contain a phone number. Taken by itself, without the ID number that connects it to a name, the phone number is a meaningless piece of data. In the student/course database, multiple tables are used to manage the information pertaining to student enrollment in courses. For example, one table contains data about students. A second table will contain data about courses available, while a third table represents the relationship between the other two entities, resulting in a third entity we can refer to as "Enrollments". The diagram below illustrates the nature of the relationships among these tables. A single point on the connecting arrow denotes a single instance of the entity, and a double point represents a multiple instance. What this means in this example is that a single student could be enrolled in many courses, but that each enrollment instance is associated with a single student. Likewise, on the other side of the diagram, a single course can have many enrollments, but each enrollment is only associated with a single course. TABLE 1 (STUDENTS) <---->>TABLE 3 (ENROLLMENTS) <<----> TABLE 2 (COURSES) To describe this another way: A student instance can be related to (or linked with) many enrollment instances. An enrollment instance must relate to one and only one student instance. A course instance can be related to (or linked with) many enrollment instances. An enrollment instance must relate to one and only one course instance. We would describe the relationship of student instance to enrollment instance in the example above as a one-to-many relationship. In this definition, we have also assumed that a student instance can exist without an enrollment instance. That is, there can be a student who has not yet enrolled in any courses. We have also assumed a course can exist without anyone enrolled in it. The essential function of such a system is called a query, which is basically a question the user asks the database. With a system such as this you can obtain answers to many different queries. Some may involve only one table, e.g., "Who is registered in the course COMP 268?" This would provide a list of student names. More complex queries involving extracting data from more than one table are also possible, as shown in the following Objective Readings 106 Computer Science 200 Study Guide (Print Version) examples. What are the courses for which student # 12345 has enrolled-provide course names and numbers Who is enrolled in course # COMP 272-provide student names and numbers These types of queries are generally written in a fourth-generation language such as SQL (Structured Query Language). This language allows you to use an English-like syntax for expressing the query, rather than having to use the mathematical operators that form the functional basis of relational systems. The following is an example of SQL. SELECT STUDENT_NAME, STUDENT_ADDRESS, PROGRAMME_REGISTERED FROM STUDENT WHERE PROGRAMME_REGISTERED= COMP The expression "SELECT STUDENT_NAME, STUDENT_ADDRESS, PROGRAMME_REGISTERED" identifies the fields or data items to include in the response. "FROM STUDENT" tells the system what table to look at, and "WHERE PROGRAMME_REGISTERED= COMP" places a filter on the search, excluding from the report any data from records of students registered in programmes other than "COMP". Some graphical systems generate SQL for the user by providing a point-and-click interface to build the query. Graphical languages and SQL are non-procedural programming, which means they involve telling the computer what is wanted, rather than how to do the query, as procedural programming languages like COBOL require. Fourth-generation languages and graphical interfaces provide tools that can be used by trained users or programmers, depending on the complexity of the problem and skill of the user. Both fourth-generation languages and graphical database interfaces make querying the database much easier than using a procedural programming language to perform the same queries. For relational databases to work properly with multiple tables, the tables must be designed in such a way as to avoid the use of duplicate non-key items, and also to ensure that all non-key items are fully associated with the appropriate key(s). One can ensure this with a process called data normalization that is usually done in three stages. These stages of normalization are known as 1NF (First Normal Form), 2NF (Second Normal Form), and 3NF (Third Normal Form). This may seem complicated, but it has a fairly simple underlying objective. Remember, the basic goals of normalization are to: 1. Eliminate duplicate fields. No field should occur in more than one table unless it is a key field for another table and is used as part of a combined key, or it is used to establish a link between two tables. For example, Student ID # (the key for the Students table) is repeated in the table that records enrollments, because it makes up one half of the key for that table. The same is true for Course #. The field Programme # (the key for the Programmes table) is included in the Student table as a way of connecting it to information about the programme that the student belongs to, but is not necessarily part of the primary key for that table. 2. Ensure that every data entity has its own table and its own unique key. In the student records system described, there are four data entities: Students, Courses, Programmes, and Enrollments. Objective Readings 107 Computer Science 200 Study Guide (Print Version) The designer of the database is responsible for ensuring the data are correctly normalized. Only then can one be sure that the relational query languages are used with validity and utmost efficiency. We will go through some steps and tests to illustrate the process of normalization to the Third Normal Form (3NF). Students interested in designing normalized databases and in learning additional tests to normalize relational systems beyond this level should take systems analysis and database courses. Starting with an non-normalized student record, we would see the fields in the first table below (Students) for each course in which the student is registered in the second table below (Courses): STUDENT STUDENT STUDENT PROGRAMME PROGRAMME PROGRAMME DATE ID # NAME ADDRESS # NAME CREDITS REGISTERED COURSE # COURSE NAME COURSE CREDITS GRADE ACHIEVED Here are examples of data that the actual records in this format might contain: Record Structure: STUDENT STUDENT STUDENT PROGRAMME PROGRAMME PROGRAMME DATE ID # NAME ADDRESS # NAME CREDITS REGISTERED COURSE # COURSE NAME First record: 343567 John Murdock COMP 268 COMP 272 Objective Readings 5214 154 St Athabasca AB Z1Z 2Z2 5200 Introductory Programming Data Structures Second record: 3444765 Mary Kimbel COMP 268 COMP 272 COMP 314 COURSE CREDITS 3333 123 Ave Athabasca AB Z1Z 2Z6 Introductory Programming Data Structures Computer Organization GRADE ACHIEVED BSc CIS 120 3 3 5100 BA IS 3 3 3 090197 82 77 120 090196 88 72 77 108 Computer Science 200 Study Guide (Print Version) The type of record view shown above is sometimes referred to as a user view. This is a useful form for presenting data in reports generated for users of the system, but it is not a convenient or efficient form for storing and managing data in a relational database programme. The form above would not work with relational systems, because it is not in a tabular format with rows and columns. To display data in tabular form, it must be rearranged to eliminate repeating fields. Data in tables cannot have multiple data items, such as those for course information, in the same row and column. One reason for this is that the underlying query system cannot handle variable length records; that is, records with differing numbers of fields or repeating fields. For example, in the row in Mary Kimbel's table, the column for the Course field cannot contain all three courses. Another reason why data in tables cannot have multiple data items is because one would have to search through every record to find information such as the students enrolled in COMP 272. Stage 1 of the normalization process is to remove repeated fields, convert the design to First Normal Form (1NF) and represent the data in a table. Stage 1 is sometimes called a flat record form. The process creates an additional table that will include the key from the original list of fields. We now have: Table 1 STUDENT STUDENT STUDENT PROGRAMME PROGRAMME PROGRAMME DATE ID # (key) NAME ADDRESS # NAME CREDITS REGISTERED In this form, sample student records would contain the following data: First record: 343567 John Murdock Second record: 444765 Mary Kimbel 5214 154 St Athabasca AB Z1Z 2Z2 3333 123 Ave Athabasca AB Z1Z 2Z6 5200 BSc CIS 120 090197 BA IS 120 090196 5100 To contain the course information removed from the above, a second table is created, as follows: Table 2 STUDENT ID # (a foreign key and part of the concatenated key) Objective Readings COURSE # (a foreign key and part of the concatenated key) COURSE NAME COURSE CREDIT GRADE ACHIEVED 109 Computer Science 200 Study Guide (Print Version) Sample records for this table would contain the following data: (*indicates key) *343567 *COMP 268 Introductory Programming 3 *343567 *COMP 272 Data Structures 3 *444765 *COMP 268 Introductory Programming 3 *444765 *COMP 272 Data Structures 3 *444765 *COMP 314 Computer Organization 3 82 77 88 72 77 In the above records, it is important to note that the concatenated key of STUDENT ID # and COURSE # provides a unique identifier for every record. Note that for each row in Table 1, there may be multiple rows in Table 2. This is possible because the STUDENT ID # and COURSE # combine to make a concatenated key for Table 2. The STUDENT ID # and COURSE # also act individually as links to the related student and course rows. These links are the foreign keys. In this state, we will still have duplicated information about COURSE NAME and COURSE CREDITS. The duplication occurs for every student/course combination because each course has more than one student. Therefore, course information appears in more than one place. To change the name or credits for a course or to produce an exhaustive list of courses, we would have to process every record in the table. To produce a list of several hundred courses at Athabasca University, we would have to process over 100,000 records, cross-checking for duplicates in our course list. Furthermore, we would not be able to add a new course or list any course information unless at least one person were enrolled in that course. Stage 2 of the normalization process is to ensure that all non-key attributes (data items) are identified by the full key. In other words, there should be no components in a concatenated key that are not required to uniquely identify the data items. For example, in the form above, the COURSE # specifies the COURSE NAME, which doesn't require the STUDENT ID #. It is generally necessary to create a new table to separate those data items that require different keys. In our case, Table 2 needs to be split, because some attributes need only the COURSE #, while others need the COURSE # and STUDENT ID #. We now have the following tables: STUDENT STUDENT STUDENT PROGRAMME PROGRAMME PROGRAMME DATE ID # (key) NAME ADDRESS # NAME CREDITS REGISTERED Table 2 STUDENT ID # (a foreign key and part of the concatenated key) COURSE # (a foreign key and part of the concatenated key) GRADE ACHIEVED Our first record in this table would now contain the following data: 444765/COMP 314 3 77 Objective Readings 110 Computer Science 200 Study Guide (Print Version) The new table would contain the following fields: Table 3 COURSE # (key) COURSE NAME COURSE CREDITS Note that with the creation of the third table we can now have a record for a course with nobody registered in it, e.g.: COMP 485 Distributed Systems 3 In this state, we still have duplicated information about PROGRAMME NAME and DATE REGISTERED. To change the name or date for a programme will mean finding every occurrence of that information by searching all student records. That is, information about PROGRAMME NAME and PROGRAMME CREDITS is stored for every student enrolled in a given PROGRAMME, instead of being stored in one place in a programme table. Also, no information about a programme can be stored until at least one person registers for that programme. Stage 3 of the normalization process is to ensure all non-key attributes (data items) are independent of the other non-key attributes in the table. In the example above, PROGRAMME NAME and programme descriptions are dependent upon PROGRAMME #. Again, we will need to create new tables. In our case, this change splits Table 1, because some attributes are identified by the non-key attribute, PROGRAMME #. We will leave the PROGRAMME # in Table 1 to act as a link (foreign key) into the newly created table. We now have: Table 1 STUDENT ID # STUDENT (key) NAME PROGRAMME # (foreign key) DATE REGISTERED 343567 5200 090197 5100 090196 444765 STUDENT ADDRESS 5214 154 St Athabasca John Murdock AB Z1Z 2Z2 3333 123 Ave Athabasca Mary Kimbel AB Z1Z 2Z6 Table 2 STUDENT ID # (a foreign key and part of the concatenated key) COURSE # (a foreign key and part of the concatenated key) Table 3 COURSE # (key) Objective Readings COURSE NAME grade achieved credits 111 Computer Science 200 Study Guide (Print Version) Table 4 PROGRAMME # (key) PROGRAMME NAME PROGRAMME CREDITS Note that we can now have a record for every programme, including those with nobody registered in them. If we need to change information about a programme, we only need to search 50 or so records in the PROGRAMME table (Table 4), as opposed to the 30,000 or so records in the STUDENT table (Table 1). In summary, we have systematically broken down the large record structure into tables: one table for each entity (or thing of interest). All the non-key attributes (data items) in each table are fully related to the key for that table. We have also eliminated all duplication of non-key data items. Some software design tools automate the process for the designer by including a dictionary of data items. Remember that a table is a collection of records collated by a unique key for each record. A record can contain a number of data fields. The process of normalization is a way of organizing the records and data fields within tables to reduce redundancy and optimize ease of access. Data Normalization -- PowerPoint slides Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Unit 3 Section 4 Links • Data Normalization -- PowerPoint slides Activities 112 Computer Science 200 Study Guide (Print Version) Unit 4: Multiple-User Applications Back to top Commentary The goal of this unit is to introduce multiple-user environments and applications. These systems allow groups of workers sharing resources to perform large, complex tasks. The unit also deals with the way new technologies are changing work methods and organizational structures. The Internet can be seen as the ultimate multi-user environment. All Internet users (or clients) have their own hardware, software tools, and purposes for using the system, but all share databases on server machines. Each user can interact with the system as though he or she were the only user on it. However, he or she can also interact with the system in concert with other users. Common standards used by the software allow this to work for millions of computers at any one time on the Internet. The online facilities (CMC system) for students at Athabasca University make up a smaller scale multi-user environment, managing shared disk space and e-mail, talker ("chat") functions, and conferencing. Within multi-user systems, there are generally multi-user applications. A multi-user application may be defined as a single software system that serves some well-defined business function, such as a student-registration system at a college, an inventory control system for a large retail chain, or the familiar ATM banking system. These systems may be used at the same time by many different people, but each has only one database, which they all use for the same, relatively narrowly-defined purpose. Section 1 Section 2 Section 3 Section 4 Section 5 Activities Digital Reading Room Unit 4 Links Quiz 2 Complete Quiz 2. Unit 3 Section 4 Links 113 Computer Science 200 Study Guide (Print Version) TME 2 Complete Tutor-marked Exercise 2. TME 2 114 Computer Science 200 Study Guide (Print Version) Unit 4 - Section 1 : Integrated and Shared Information Systems Back to Unit 4 Commentary In this section we will see how the functions of information systems can be described in the context of their role in the decision-making hierarchy. Operational systems cover daily business transactions. These systems provide the basic mechanisms for collecting "raw business data." An example would be a "point-of-sale" system, such as a computerized cash register. Tactical systems monitor operational processes, providing reporting and ad hoc query capabilities. These systems use operational data as an information base, summarizing the data as needed. An example would be an accounting system. Strategic systems satisfy longer-term planning needs, showing business trends and enabling the modeling of plans to assess their impact on business operations. These include decision support systems and expert systems. Learning Objectives Learning Objective 1 • Identify the benefits of sharing information across different applications. Objective Readings Introduction to Multi-User Application Systems A system can be defined as a group of components that interact to achieve a purpose. A general model of a system would include inputs, processes, and outputs, plus a feedback loop. A system has boundaries, but may interact with other elements or systems outside its boundaries. An information-processing system is a system specifically designed to turn raw data into useful information. Multi-user systems allow sharing of applications and information among many users simultaneously and interactively. Information can be shared among: • different users of the same application • different users accessing the same information for different purposes • application subsystems within a larger integrated system Information that is shared only needs to be collected once. This not only saves time and work, but ensures the integrity of the information among users. As it is recorded only once, all users have the same data; however, users have to be very careful to ensure complete accuracy, or all users may end up with inaccurate data. Unit 4 - Section 1 : Integrated and Shared Information Systems 115 Computer Science 200 Study Guide (Print Version) When sharing information, users define what each piece of information means, and what its relationship is to other information. For example, when recording information for a motor-vehicle repair shop, there has to be an agreed-upon definition of a vehicle, how the vehicle is identified, and which information about it will be stored. It may not be easy getting all users of the vehicle information to agree on common definitions, but it must be done. Different users of an information system must be able to access different views of the information. They should be able to use only the items of information appropriate to their particular tasks in the business system. Users carrying out some tasks will require access to certain items of information, but should not be allowed access to other items. Some tasks require the worker to only read data, other tasks require the worker to change data, and so on. For example, in a repair shop, the person working at the front desk may need access to all of the customer records, but the mechanic doing the work may only need to add data about the repairs done on a particular vehicle. When all of the users of the system have a common purpose, there must be some centralized functions looking after the definitions and use of the data. This is the database administration function. It ensures the database information system: • is kept safe • has the appropriate access controls for different users • has a mechanism that allows changes to the common definitions of the data, as needed Learning Objective 2 • Put a simple information system in the context of the other information systems with which it interacts. Objective Readings From Operational to Strategic Information Multi-user systems increase the opportunities for better planning and for more rapid identification and correction of problems. These are a direct consequence of the powerful tools available on desktop computers when there is access to shared data. There are often difficulties in achieving this degree of integration and sharing, mainly where the organizational culture is not compatible with the technological infrastructure being introduced. This is illustrated by the expensive failures that can occur when new technology does not suit traditional organizations. Usually this is the result of an expectation that the organization would adapt to the technology. Where changes have been successful, they have more likely been made by applying the reverse principle: the technology has been adapted and made to fit the way the organization does its business. Of course, there are some technological changes or innovations which are so dramatic and influential that they may actually change business processes or even fundamental business goals. So far, we have been looking at the operational level of information processing, in which routine business transactions are performed and data is collected about the daily activities in a business. Objective Readings 116 Computer Science 200 Study Guide (Print Version) Using systems that allow data to be queried and reports to be produced directly from the desktop, a manager or administrator now also has the resources to help in tactical planning. Data can be downloaded into spreadsheets and modeled to test and predict the effect of changing various input values. When linked to operational systems, such modeling systems can automatically trigger warnings when actual events deviate from expected events. Information and ideas can be exchanged electronically in an instant, and data can be easily analyzed, graphed, and used in presentations via electronic media. Accurate and up-to-date data combined with the powerful tools on the desktop enable the administrator to do things previously requiring specialized clerical staff, and to effectively share information with co-workers. In the college example discussed earlier, the system could, for example, advise planners when enrollment in particular programs or courses is significantly different from that which had been anticipated. The administrator can then experiment with combinations of the available rooms and instructors to see whether alternative or additional offerings are possible. The organization can react very rapidly to changing demands in a way that was impossible when fixed, annual planning cycles had to be used. The data in the shared database can be sifted, summarized, and modeled with ease. For longer-term strategic planning, decision-making can be put in the context of both internal and external trends and conditions by taking data about the organization and combining it with data from other sources, such as the Internet. Learning Objective 3 • Identify some potential problem areas when trying to integrate information systems. Objective Readings Operational Information Systems: The Widget Manufacturing Plant To demonstrate the way interrelated systems and subsystems in a business environment create the need for integration in information management, we will examine a manufacturing plant. This model could apply to any type of plant, manufacturing anything from shower curtain hooks to automobiles. We will call our product "widgets." Objective Readings 117 Computer Science 200 Study Guide (Print Version) Widgets come in all shapes and sizes. Each widget is made up of components. The components may also be made up of other parts; that is, there are assemblies and subassemblies. An automobile, for example, consists of major components such as the chassis, body, and engine. Each of these is made of smaller parts. Within the plant, there are also major systems, each of which is made up of smaller, more specific subsystems, all of which must be synchronized and coordinated. These systems all generate and consume information as they operate. The typical organization of a manufacturing plant would include departments such as Materials Management, Production, Sales and Shipping, and Administration and Accounting. Of course, there are many variations in the configuration and organization of actual companies. Our objective is to illustrate information processing relationships in a relatively simple model of a real world situation. 1. Materials Management Widgets are made from materials which must be supplied to the plant in a timely fashion, and must be always available in the right quantity, type, and quality to satisfy the Production department's needs. The product structure file would be an example of an information management tool used in this department. It would provide details of all parts required to build the product, plus the total quantity of each part needed. In addition to the product structure data, Materials Management also requires an item data file containing current inventories of materials in stock, suppliers, prices, and shipping arrangements associated with each item of material. Inventory Control, a subsystem of Materials Management, records the consumption and acquisition of items into item master data. When the inventory of goods is low, this subsystem identifies the need to re-order, and when components are received, it records the fact that they are now available to be used. Purchase order tracking tracks purchase orders, and follows up on outstanding orders. It also records receipt of components when they arrive. It may record details of different suppliers and the prices they quote. In relation to other systems within the plant, Materials Management both receives and supplies information. For example, Production would advise Materials Management of the anticipated needs for various components, depending upon the type and quantity of widgets required to fill upcoming orders. Materials Management would supply Accounting with information regarding orders, allowing accounts to be set up for the suppliers of materials. 2. Production The Production department of the plant is responsible for the actual assembly of the widgets. This involves the coordination of manpower, machinery, and materials. Production is done in batches, based on customer orders, which are generated, recorded, and tracked by the Sales Department. Objective Readings 118 Computer Science 200 Study Guide (Print Version) Production will check the product structure file to see what is needed to fill the order. It will also check the item master file to allocate available stock, and re-order if needed. This then links with Materials Management's procurement functions in handling purchase orders. Production scheduling can use data from customer orders generated by the Sales department to plan future production runs, schedule labour, and pre-order materials. In addition to the supplying of information to Materials Management we have already mentioned, Production would also supply information on the amount of labour used during specific periods of operation. Again, these are only a few examples of the many ways in which information is shared among the components of the overall system. 3. Sales and Shipping This department promotes, sells, and delivers the product. When a customer places an order with the Sales department, the details are recorded on the customer order file. The customer details such as shipping and billing information, contacts, prices, payment terms, and order history are in a separate customer data file. Details of customer orders must be supplied to both Production and Accounting. Production, as we have seen, bases its plans upon the needs created by customer orders. Accounting must generate accounts receivable for those orders, so that the customer can be invoiced and payment received. 4. Administration and Accounting The Administration department coordinates and monitors the operations of the other departments, and provides support and ancillary services such as the maintenance of personnel records and related skills inventories, and the production of regulatory reports. The management of financial information is the responsibility of the Accounting department. Personnel records consist of employee files that contain necessary information about each employee, including personal data, employment and payroll history, and evaluations. The skills inventory records employees' experience, training, certification, and other qualifications, and can be used to plan work assignments and training, evaluate for promotion, or identify hiring needs. Regulatory reports are generally provided for both internal and external use. These relate to government or other agency requirements in areas such as worker health and safety, emissions, hazardous-waste management, import/export regulations, and product quality. Accounting is responsible for tracking and reporting the financial transactions associated with purchasing materials, paying employees, selling products, and every other aspect of plant operations. Accounting systems enable a company to maintain financial records, as required by law, and produce financial statements such as balance sheets (statements of assets and liabilities) and income statements (statements of expenses and revenues). Here are some of the components of an accounting system: a) General ledger - this component is the main record of all financial transactions for the business. b) Accounts payable and receivable - these components track what is owed to the company and what the company owes. Each sale to a customer means the company has to be paid. Each purchase by the company means the company must pay the supplier. Objective Readings 119 Computer Science 200 Study Guide (Print Version) c) Assets management - these components track the current value of the company's assets, like the plant and the machinery, including the depreciation of these assets over time. They also track the cost of holding stock. d) Payroll - this component looks after paying the employees. Part of the pay may be linked to the work done, in which case there will be a system recording what is actually done by each employee. Similarly, when estimating the selling price of a manufactured item, the labour costs will be an element in the process. The labour costs are produced by the systems that monitor the progress of work in the manufacturing plant. Much of the information supplied by Administration and Accounting is in the form of feedback used to adjust, plan, and redesign the operations of other departments, in order to achieve efficiency, quality, and safety objectives. From this brief overview of some of the main systems operating in a manufacturing plant, we can see that there are both clear separations and also important relationships between and among the systems. While they all operate with some degree of autonomy and have different objectives and functions, they must also effectively share data. Many variations of this basic model are possible. For example, some organizations will outsource applications like payroll. Outsourcing is the process of contracting other companies to do some or all of the information processing needed. The payroll application is particularly complex, and for some companies it may be more cost-effective to hire another company that specializes in such services. Because all the above systems are highly interrelated (each system supplies and consumes information in relation to the other departments), it is easy to see the benefits of a single database that records information needed for every system. The integrated information system components that maintain and use the data contained in the database can then provide the various information sharing applications as described in our example. Learning Objective 4 • Identify the differences and relationships between operational, tactical, and strategic information, as well as the types of information each category includes. Objective Readings 1. Review readings of Objective 3. 2. Supporting Decision Making with Data from Operational Systems Learning Objective 4 120 Computer Science 200 Study Guide (Print Version) Learning Objective 5 • Identify the differences between Management Information Systems (MIS), Decision Support Systems (DSS), and Executive Information Systems (EIS), as well as the way they are related. Objective Readings 1. Supporting Decision Making with Data from Operational Systems 2. Executive Information Systems The trend towards the online querying of databases and analysis of data using decision-support tools has led to the concept of an Executive Information System (EIS). This term usually applies to an integrated collection of software that can be held on a notebook computer. Although there can be cost savings in automating the process of collecting, sifting, and summarizing data, the main emphasis is on giving the manager the ability to make quick decisions based on current, accurate information. An EIS can automatically extract information from the company's databases to provide limited historical data, but full current data, about all the key indicators in the company. This will typically include sales and costs data, production plans, customer-satisfaction indicators, skills and availability of the work-force, status of current major projects, and external data relating to consumer demographics, economic trends, competitors' capabilities, and so on. The EIS will include automated tools to analyze this data, and enable the manager to make reasonable forecasts. The EIS becomes the manager's online briefcase. It contains internal company data and external data, all focused on providing the querying capabilities and analytical tools needed to help in decision making. It includes tools for managing time and personal schedules, word-processing and calculator functions, electronic mail, and the ability to communicate with the world through the Internet or specialized news services. With a widespread net of wireless connectivity available, and a variety of very small yet powerful computers on the market, the portability of executive systems has become almost unlimited. 3. The Data Warehouse for DSS and EIS The integrated database environment provides a wealth of information for the manager. Despite the availability of query languages designed for the manager and DSS, there has been a consistent complaint that the data has been largely inaccessible without an in-depth knowledge of the organization or the company's databases. This is understandable when put in the context that the databases have often evolved over time into complex structures with many hundreds of different files holding information about all aspects of the business. Combine this with the need to archive data about older transactions for reasons of performance and space, and the ideal of an easy-to-use Objective Readings 121 Computer Science 200 Study Guide (Print Version) repository of information becomes more difficult, except in the case of smaller systems. Due to the necessity of collecting and managing day-to-day transactions in an efficient manner, the concept of developing a separate database of a company's key historical and current data was born. This is the function of a "data warehouse." Data is collected from routine transaction-processing systems, as well as other internal and external sources, and stored in a form that makes it easy to use with query and analytical tools. The complexities inherent in large transaction-processing systems that interactively update databases are no longer a concern to users. Users are presented with "read-only" data, organized in ways that suit their particular interests. Special software such as OLAP (online analytical processing) tools help "mine" data for specific information, or more significantly, patterns of information that can be applied to decision making or planning processes. Learning Objective 6 • Define workgroup computing, and list the common types of activities involved in workgroup computing Objective Readings Workgroup Computing Workgroup computing is the term used when software is specifically designed to help a number of individuals work as a team or group. This means that the people in the group do not necessarily have to be in the same building, or even the same city, but they can operate as a team using the technology. This technology has grown in parallel with the network technology needed to support communications between the various team members. The types of activities covered by workgroup computing include the following: • E-mail, including the ability to attach documents to e-mail messages. Web browsers, like Netscape, include this capability. • Interactive conferencing. Many systems now allow the use of add-on electronic whiteboards, which can be visible to all members of the group, as well as interactive voice and video features. Objective Readings 122 Computer Science 200 Study Guide (Print Version) • Calendar systems. These allow the different members of the group to access each other's calendars and arrange meetings and events. • Workflow programs that enable group administrators or users to define a path (or workflow) for a document among the members in the group. Each group member may have a particular part to add to the document. Workflow programs may include scheduling software that reminds group members when action has not been taken on the document in a timely manner. • Workgroup-enabled applications packages. This is software that has the ability to be shared by the members of the group, like a spreadsheet or word-processed document. Where sharing involves multiple versions of the same document or spreadsheet, the software tracks the different versions. The most advanced groupware applications create virtual offices, meetings, classrooms, and training sessions where participants are able to share software tools, information, and multimedia content in real-time, all within a user-friendly and reliable interface. Geographical boundaries between group members become irrelevant, and the ability to form effective teams without actually bringing people physically together offers cost benefits as well as other advantages. Among the suppliers of software that provide these capabilities are IBM with Lotus Notes, Novell with Novell GroupWise, and Microsoft with Microsoft Exchange. As yet, the industry has still to define standards that enable sharing across different systems. These standards are coming, and the industry moves towards opening its systems to users on as many different systems as possible. References Theophano, Rochelle. "Groupware: An Overview." In Managing Information Technology, paper # 1244, McGraw-Hill DataPro. Learning Objective 7 • Define electronic data interchange and mass customization and illustrate their applications with examples. Objective Readings 1. Electronic Data Interchange Electronic data interchange (EDI) is the use of electronic forms and documents to replace paper documents exchanged between different companies. EDI is a vital part of daily business operations in the large industries where it began (automotive, transportation, grocery, and pharmaceutical) and in many others. Businesses in these industries realize substantial cost savings (typically $5 to $30 per EDI transaction), depending on the overall volume, compared with the cost of manual paper transactions. EDI also increases data accuracy and productivity. It enables immediate response to orders and order inquiries, same-day shipment, inventory reduction, and reallocation of data-entry resources (Payne). Objective Readings 123 Computer Science 200 Study Guide (Print Version) Organizations agree to use EDI for documents in their transactions. Examples include purchase orders, shipment status reports, and invoices. Organizations cooperating in the use of EDI must agree on the data items to be used on the documents, and on the meaning of those data items. The sending organization's software captures the input data as it is entered locally, and converts it into the agreed-upon format for transmitting. Software at the receiving organization takes the transmitted data, and unpacks it into the form used by that organization. Where organizations have extensive trading relationships, the savings from these systems far outweigh the costs of setting them up. References Payne, Robert A. "Electronic Data Interchange (EDI): An Overview" Managing Information Technology, paper # 1256, McGraw-Hill DataPro. 2. Mass Customization Given the ability of computers to communicate, combined with the automation of machine tools and manufacturing processes, the way mass production works is changing. The term "mass customization" takes the process one step further. Usually there are two choices in the marketplace. The first choice is a mass-produced consumer item. The second is a customized hand-built product. The first will be cheaper as a result of mass production, but it will be a standard item, such as a suit "off the rack." The second choice is very expensive, handcrafted by a specialist to exact specifications, such as a tailor-made suit. What mass customization allows is the best of both worlds - the price benefits of mass production and the ability to customize the end product. An example of this can be seen in suit manufacturing. You go into a store, select a suit you like, and choose a fabric. The salesperson brings up a graphic of the suit on the computer, and notes your measurements and fabric chosen. This information is downloaded to the computer at the manufacturing plant. The order is merged with all of the other orders and scheduled for manufacture. The machines are automatically programmed to produce the desired order, and some time later, your "custom-made" suit is sent to you from the plant. The manufacturing and sales processes have been integrated directly using information technology. Learning Objective 8 • List trends in the way information technology is changing the workplace. Objective Readings Future Applications Many jobs in the coming decades do not yet exist. This means that the workplace is undergoing rapid change. As some jobs disappear, new technologies are creating new jobs, continuing a process which is as old as technology itself. A similar major transition occurred during the Industrial Revolution, when agrarian and other primary production jobs were largely replaced by factory and office work. Through technology, we have seen an increased capacity for people to work in teams and share information from any location. When using the Internet, you are using a "distance-insensitive" system. Whether the site you are visiting is down the road or half-way around the world, the cost to you is the same, and the time it Objective Readings 124 Computer Science 200 Study Guide (Print Version) takes to reach the information is also the same or nearly so. Increases in communications capability, including wireless networks, will lead to continued growth in the number of remote workers, and to more diverse and distant geographic locations for those workers. As the quality and convenience of simulated face-to-face meetings improves, more companies and individuals will likely employ technology as an alternative to business travel. Increasing concerns about terrorism and workplace violence mean there may be a perceived risk associated with workplace centralization. The risk, inconvenience, and expense of air travel are also factors in the increasing popularity of alternatives. Companies engaged in the provision of hardware, software, or services related to telecommuting, "virtual meetings", corporate intranets, and computer communications are, generally, growing as their clients seek secure and cost-efficient approaches to communication and collaboration. This inevitably leads to more home-based workers and to new service industries that support new ways of working. Companies can rent offices by the day or hour. People carry powerful portable computers in briefcases (or pockets!), and can contact their main systems from wherever cell phone connectivity exists. Electronic workgroups facilitate teamwork, and service centres provide a range of the support and communication services needed to conduct business. As mentioned elsewhere, jobs we might never have imagined being possible to do "out of the office"; are now being done from remote locations. The most dramatic example is probably the unmanned aircraft programs of NASA and the US Military, where pilots are now able to "fly" without leaving the ground, but there are many other, more prosaic examples, as well. For example, musicians and singers now collaborate on recording projects from separate locations using electronic communication and other digital technologies. In the Internet industry, among Web-designers, programmers, and related professionals, the reality is that the majority of workers are working at some physical location that is removed from some or all of their co-workers or team members. Another important future trend will be the expanding use of more and more powerful artificial intelligence agents. These have reached a dramatic level of sophistication already, including • query and research tools that find and collate information; • guidance and navigation systems capable of operating unmanned vehicles in a responsive manner and without remote human control; • intelligent inventory management systems that not only reorder stock as needed, but compare prices, shipping times and quality ratings to actually make decisions about what to purchase, and from whom. Essentially, ours is becoming a society where distance and geographic location are no longer barriers to working together, and where processes, equipment, and business systems of all kinds can operate with high levels of independence from direct human control. Exercises Review Questions 1. Using an organization with which you are familiar, identify: Objective Readings 125 Computer Science 200 Study Guide (Print Version) ♦ the purpose of the organization ♦ the customers or users that the organization serves ♦ the transactions that come into and from the organization The purpose of this question is to give you an understanding of how quickly subsystems become complex as they work with other subsystems to provide a service. If you go into any large organization and view the service it delivers, try to determine which subsystems (or business functions) work together to ensure that the service is delivered. 2. What are the differences and similarities between operations and strategic decision-making? Illustrate your answer with examples from an organization with which you are familiar or from one of the case studies found in the Internet Explorations. 3. Briefly define the following terms and provide examples: ♦ Management Information System ♦ Decision Support System ♦ Executive Information System ♦ Workgroup Computing ♦ Electronic Data Interchange ♦ Mass Customization 4. Using this Athabasca University course as an example, identify the different ways in which information technology helps people interact with course resources and the institution. Answers to Exercises 1. Using an organization with which you are familiar, identify: ♦ the purpose of the organization ♦ the customers or users that the organization serves ♦ the transactions that come into and from the organization The purpose of this question is to give you an understanding of how quickly subsystems become complex as they work with other subsystems to provide a service. If you go into any large organization and view the service it delivers, try to determine which subsystems (or business functions) work together to ensure that the service is delivered. The organization examined in this answer is a college library. The purposes of a college library are many. In the simplest sense, a college library is an information source. It is a repository for books and journals, electronic reference sources, and so on. In a deeper sense, it exists to provide primary support to the learning process at the college. It also provides information access to the community outside the college, often complementing the services offered through the public library. A college library may provide additional training and support to its customers; for example, it may offer help in searching for available resources or workshops in note-taking skills. It may also serve as a resource for other libraries, sharing material that cannot be found elsewhere. Looking at the library from the perspective of the user, there are a number of subsystems in operation to support the user. These include: ♦ The library-circulation system. This keeps track of what is loaned. Transactions involve: Exercises 126 Computer Science 200 Study Guide (Print Version) ◊ loans and returns of books and other library products; ◊ overdue notices when loans are not returned on time; ◊ reservations for items already on loan to other users; ◊ usage statistics, indicating the number of times each item is borrowed. ♦ The catalogue system. This provides a central repository of records identifying details of the resources in the library. Transactions involve: ◊ adding entries for new items and removing entries when items are purged; ◊ querying the catalogue to produce lists of entries that match the request; ◊ producing printed lists of the catalogue in different orders, special listings, and so on. ♦ The selection of new materials and ordering in the system. Transactions involve: ◊ advising about materials required by courses; ◊ keeping records of suppliers of books and other materials; ◊ placing orders for new materials and tracking order progress. This is by no means an exhaustive list of the subsystems in a library. 2. What are the differences and similarities between operations and strategic decision-making? Illustrate your answer with examples from an organization with which you are familiar or from one of the case studies found in the Internet Explorations. The purpose of this question is to show how information systems can help an organization. Correctly used, information systems should not only assist in the day-to-day operation of the organization, but also provide the raw material to help all levels of decision making. When you explore the way systems work in large organizations, ask yourself how business transactions are used to help identify the need for change and to monitor the success of changes in the organization. The information systems discussed in an earlier question in this unit are largely operational systems. They are systems that respond to daily transactions, and are mainly based on predefined library rules: ♦ A borrower who is staff is allowed to borrow items for a three month period. ♦ If an item is not returned on time, a fine of one dollar per day is levied on the borrower. ♦ If a book is not borrowed for two years, it is removed from the book stock. Operational systems produce summary data that is useful in making decisions to ensure the library runs smoothly in the short term. These statistics help identify what is working well, and what problems exist. For example, there may be a significant increase in use of the library in the evening; there may be large fines being constantly levied to users in a particular discipline, but not elsewhere; there may be long waiting lists for terminals to use materials on CD. Tactical changes may be made to make the library work more smoothly; for example, the library may stay open longer on the weekends, and so on. The feedback from operational data may indicate a temporary situation or a longer-term trend. For example, it may become apparent that a large-enrollment course has been expecting students to do significant research in a short time using CDs, and that there are not enough workstations available. It is possible to ask the course instructor to schedule things differently, in order to solve the problem. However, if this is part of a long-term trend, some strategic planning has to take place to find a permanent solution to the problem. Strategic decisions are those that influence the long-term direction that the library should take. The operational data may, upon analysis, indicate a trend that should be addressed. For example, more and more courses may be requiring students to use electronic resources like CDs and the Internet. Answers to Exercises 127 Computer Science 200 Study Guide (Print Version) This may enable access to far richer and more current information than the library could provide through traditional print media. As a result, the library may choose to adjust the overall budgets for print and electronic materials to reflect actual need more accurately. While strategic decisions may arise from noting changes in the use of the library, the college may have a long-term plan with goals to be met. One such goal may be to ensure all students have exposure to new electronic technologies. A long-term goal like this would clearly have an impact on many aspects of college life, including student expectations of service available in the library. In this situation, a strategic plan would be put in place to influence both medium-term tactical decisions and daily library operation. The process of change works in both directions, from operational to strategic and from strategic to operational. In each case, the information gathered from the information systems would provide the means of measuring the ability of the library to meet the needs of its users. 3. Briefly define the following terms and provide examples: Management Information System - Management Information Systems are systems that collect and organize operational information to support management decisions, usually of a tactical type. One example would be a retail Point of Sale system (an electronic cash register, usually equipped with scanning devices), which collects sales information that is then processed to produce both detail and summary reports. Middle management uses these reports to make purchasing, pricing, and other structured decisions. This information also becomes part of the basis for financial reporting to senior management, which will eventually be part of a process for strategic decision making. Decision Support System - A Decision Support System is intended to assist in analytical decisions or decisions that are predictive in nature. One example would be predicting future sales, or planning a pricing strategy. Spreadsheet programs and databases are often used, as are specialized programs that support relatively unstructured, longer-term decisions, such as scheduling or the planning of an expansion. With query tools, properly organized databases can be "mined" for specific information relating to a decision. Executive Information System - At the top of the information "food chain" in an organization there are systems designed to supply senior management with the "cream" of information about the organization's operations, financial and competitive position, plans, and current activities. Usually these systems are carefully secured, but also highly portable and accessible to the user. The hardware for such a system may involve laptops and/or the ability to connect to the system from a home computer, so that the executive is always only minutes away from the information. Workgroup Computing - Workgroup computing employs one or more pieces of software to enable and facilitate communication and resource sharing among persons working together. There are many packages available, including Lotus Notes and Novell GroupWise. The functions of a workgroup computing environment might include: ♦ E-mail ♦ Conferencing ♦ Scheduling and project workflow ♦ Embedded applications specific to the group's needs Electronic Data Interchange - In the management of commerce between, for example, a retail organization and one of its major suppliers, it is advantageous to both if electronic - rather than paper - documents are used in the handling of routine matters such as ordering and billing. This is called Electronic Data Interchange, and it can create substantial savings when the volume of business is Answers to Exercises 128 Computer Science 200 Study Guide (Print Version) sufficient to warrant the cost of setup. Mass Customization - Mass Customization is a term which describes a combination of multimedia design and demonstration systems and computer-controlled automated production systems. Consumers design their own versions of products, which are then manufactured to specification. 4. Using this Athabasca University course as an example, identify the different ways in which information technology helps people interact with course resources and the institution. One way you can explore course resources is by using the World Wide Web (WWW) and the Internet. In this course, the WWW is a medium for delivering materials presented by Athabasca University; it is also a resource for researching other materials. The WWW makes possible the delivery of multimedia materials. The Internet is the channel used to navigate the WWW. The Internet also provides capabilities like electronic mail, computer conferencing, and file transfer. These types of tools were available to AU students long before the Internet was routinely used. ♦ Electronic mail enables you to communicate with students and staff at the university. ♦ Conferencing systems enable you to communicate interactively with a group or leave messages on a bulletin board that can be shared with other users. ♦ File-transfer capability enables you to transfer files (such as course materials, assignments, and so on) between yourself and others. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Activities 129 Computer Science 200 Study Guide (Print Version) Unit 4 - Section 2 : Data- and Tele-communications Technology Back to Unit 4 Commentary Data communication is the electronic transmission of data between geographically separate locations using communications channels such as telephone or satellite facilities. The end points are usually two computers, one or both being desktop machines. Communications may be local, national, or international. In this section, we will look first at the modem, the device that connects digital computers to the analogue telephone system. We will also look at the increasingly fast alternative channels becoming available as telephone companies and cable companies compete in the business and domestic marketplace. Learning Objectives Learning Objective 1 • Explain the difference between analogue and digital transmissions. • Describe the role and characteristics of the modem. Objective Readings The Modem: Key to Communications over Phone Lines The term "Modem" comes from the terms "modulator" and "demodulator." Modulation is the process of converting a signal from digital to analogue. Demodulation is the reverse process. The modem has been an important link between computers and the telephone network, because computers communicate digitally, while the telephone is an analogue device. The analogue representation of sound was used exclusively in telephone systems for many years, while the digital representation of data is a more recent innovation. Phone companies now use digital fibre optic links for main lines between centres, which leads to a situation where data may be converted several times in transmission from one computer, through the phone system, to another computer. In the traditional model, the sending computer modem converts a digital signal into an analogue signal for the local phone connection, and that signal is then converted back to a digital signal for transmission along the fiber optic line from the local switch to the switch at the destination. Here, the reverse process happens, where the signal is converted from digital to analogue, then back to digital by the modem connected to the receiving computer. Conferencing 130 Computer Science 200 Study Guide (Print Version) View a Java Applet describing Data Transmissions. Modems use full-duplex lines which allow the simultaneous transfer of data in both directions. They also use synchronous transmission protocols, where transmission is continuous and a timer in the modem determines when each data bit is to be read. The term "protocol" refers to a set of standard rules for communicating. Because they create a uniform "language" for communication devices to use, protocols are very important in the design of data communications systems. Other types of transmission include "simplex" and "half-duplex." The former allows transmission in only one direction; the latter permits transmissions in either direction, but not simultaneously. An "asynchronous transmission protocol" is one in which each character begins with a "start" bit and ends with a "stop" bit. Hence, the receiver only reads data when the start bit is detected and goes back to waiting when a stop bit is read. Most phone systems will reliably support the use of modems rated at transfer speeds of up to 56 600 bits per second (bps). These are called narrowband analogue modems. Speeds are sometimes quoted as baud rates. Baud rate refers to a change of signal per second which may or may not be the same as bps, depending on the coding scheme. At speeds limited to 56 600 bps, the analogue modem would be hard pressed to keep up with the rich media and intensive data transfer requirements of the Internet, so faster, more convenient and more reliable methods have become widespread. Faster communication can be achieved by both commercial and domestic users of the phone system with Integrated Services Digital Network (ISDN) lines, which are existing phone lines that transfer data digitally. ISDN technology allows transmission speeds two to four times faster than a conventional analogue modem. Cable TV operators have also moved rapidly into the telecommunications business. Like telephone companies, cable TV networks already had both the physical infrastructure and much of the expertise needed. Cable modems are designed to work with the cable system, and cable Internet service is available in most communities where cable television is available, bringing significantly increased communications capacity to schools, businesses, and homes. Communications protocol standards for cable modems allow transfer rates in excess of ten million bits per second (10 mbps), allowing the cable system to handle television channels, the Internet, interactive video, and voice. Objective Readings 131 Computer Science 200 Study Guide (Print Version) At the same time, phone companies are moving rapidly towards the establishment of broadband wireless networks, raising the level of telecommunications accessibility to another level, as the demand for anytime, anywhere, high-speed connectivity grows. Learning Objective 2 • List the alternative communications channels available. Objective Readings Communications Channels From the perspective of the business or private user, the selection of communication channels is a choice between public and private communications lines. • In a public channel, the transfer speed has to be fast enough, and the phone company must provide sufficient lines to make the connections. This may be the Public Switched Telephone Network (the phone system) or Value-Added Network (VAN). In the latter, the network company offers users additional capabilities. Packet-switching systems are an example of a VAN. A "packet" of data is a block of data with the address of the receiver. The "packet" is transmitted to the receiver, who pays for the number of packets sent, rather than for the connect time. These systems can be cheaper when transferring large volumes of data. • In a private channel, a dedicated line will support faster transmission rates, and the connections are guaranteed. These lines are usually leased from the phone company when they go beyond a single site. There is a trade-off between cost and usage. A user might be on the Internet for an hour or so in a day. The costs are cheap, the transfer rates adequate, and he or she is willing to work when the line is available. However, a user in business who relies on high volumes of data being transferred, especially during the normal business day, might rent a line that would always be available. An Internet service supplier may have twenty dial-in lines coming into its computer, but it will have a high-speed leased line to the nearest entry point on a network connected to the Internet. The user of the service may occasionally be unable to get a free dial-in line to the service supplier, because there are already twenty people on the service. The service supplier will always be guaranteed a fast enough line connected to the network. The networks themselves will use dedicated lines. Learning Objective 2 132 Computer Science 200 Study Guide (Print Version) The route a particular message takes through the communications system will vary, depending on the traffic on the network at a particular time. The communications company constantly monitors alternative routes, trying to balance the traffic to maximize "throughput." Learning Objective 3 • List digital transmission alternatives that provide faster communications, indicating the transmission speeds available. Objective Readings Transmission Mediums There are a number of mediums used for data transmission, but they may all be grouped into two main categories; physical channels and wireless channels. The main physical channels are: • "Twisted pair" wire This is the most commonly used method. Copper wires are twisted into pairs and used to transmit analogue electrical signals. These are voice-grade lines; that is, they are designed for low-volume analogue traffic. • Coaxial cable This is a copper-wire and aluminum-wire connection. The wires are shielded to reduce interference and, therefore, allow higher transmissions. Again, this is an analogue transmission. • Fibre optic cable This is clear, flexible tubing that allows laser beams to be transmitted along the cable. The cable is far thinner than the wire connections. Also, it allows transmission directly in digital form, so it can achieve far higher speeds with minimal errors. Fibre optic cable allows transmissions of over two Objective Readings 133 Computer Science 200 Study Guide (Print Version) thousand million bits per second (2 gbps). • The main wireless transmission modes include: • Microwave • These are "line of sight" transmissions between ground stations, which transmit analogue signals using very high frequency radio waves. The signals are relayed via a series of ground stations, and transmission between stations must be in a straight line that is unobstructed. The distance between stations is typically no more than thirty miles, with transmission dishes situated on specially constructed towers, high buildings or hilltops. Microwave transmissions are often used in conjunction with satellite transmission. • Satellite • This method is used over larger distances or when it is not possible to have an unobstructed line between the sender and receiver. Satellites orbit above the earth, and act as relay stations between different ground stations. • Others • Both radio waves and infra-red light waves are also used for data transmission, though in more limited ways. Infrared transmissions can be used in small, open areas with a typical transmission distance of up to two hundred metres. Commercial radio frequencies can be used for communications within the local area. These frequencies are managed by a local communications company or may be assigned to private wireless networks operating within a limited range. • Exercises Review Questions 1. Identify the telecommunications alternatives available to you at home by local telecommunications and network suppliers. Indicate the speed, cost, and types of equipment needed for each alternative. If you can find out anything about the way the system is used by your Internet service supplier, add that information, though you do not have to name the commercial service. For each alternative available, identify its likely use. 2. Describe the function performed by the traditional MODEM and explain how this function will continue to exist in some form with transmission technologies other than the phone system. Answers to Exercises Review Questions and Answers Objective Readings 134 Computer Science 200 Study Guide (Print Version) 1. Identify the telecommunications alternatives available to you at home by local telecommunications and network suppliers. Indicate the speed, cost, and types of equipment needed for each alternative. If you can find out anything about the way the system is used by your Internet service supplier, add that information, though you do not have to name the commercial service. For each alternative available, identify its likely use. Most communities now have some choice in local telephone service, plus a variety of companies offering long-distance service. In major centres, there will be several local Internet service providers providing Internet access via the telephone system to local customers. These services are over voice-grade lines and run with modems up to a 56.6 kbps transfer rate. They are used by local domestic users, small businesses, schools, and so on. Users also have the option of using a national or international service, like CompuServe. However, unless there are local numbers for these services, they become expensive, because users incur long-distance charges to get onto the networks. Cable TV companies in larger centers are now supplying Internet services carried on their cable networks with much higher bandwidth than phone lines provide. Fibre optic and wireless (microwave) networks are being developed and are already providing services in many areas. Here are some of the telecommunications options available: ♦ Voice-grade lines to dial into with a transfer rate up to 56.6 kbps. These are mainly for domestic single-users. Conventional modems are used with this alternative. Users are charged for the time they are connected. ♦ IDSN (Integrated Digital Services Network) lines that permit transfer rates of 56 kbps and over. They require a special modem but can be available for business and domestic users. Users are charged for the time they are connected. ♦ Dedicated leased lines that operate in the range of 64 kbps to 1.5 mbps (million bytes per second). These are T1 lines. This alternative is a permanently guaranteed connection that will be used by business. For example, local Internet service suppliers use T1 lines to go from their computers to the nearest Internet connection. ♦ ADSL (asymmetric digital subscriber line) is a newer technology capable of offering multi-megabit transmission using existing copper telephone lines. ♦ Television cable networks that operate with speeds from 10 to 30 mbps. ♦ Optical (fibre optic) lines that operate with speeds up to 500 mbps. It is important to note that the actual transfer speeds achieved may be significantly faster than the quoted line speed. This is because software is used to compress the data being transmitted. 2. Describe the function performed by the traditional MODEM and explain how this function will continue to exist in some form with transmission technologies other than the phone system. A MODEM (MOdulator-DEModulator) converts digital signals (from the computer) and analogue signals (transmitted by telephone lines) back and forth, enabling the transmission of data through the phone system. Newer transmission technologies (cable and fibre optic, for example) will also require that digital data be converted upon entering and leaving the transmission medium. For example, in fibre optic transmission, a device analogous to the modem converts digital information into light pulses. Answers to Exercises 135 Computer Science 200 Study Guide (Print Version) Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Unit 4 Section 2 Links Java Applet describing Data Transmissions. Activities 136 Computer Science 200 Study Guide (Print Version) Unit 4 - Section 3 : The Microcomputer and Client/Server Systems Back to Unit 4 Commentary Microcomputers have become commonplace in households over the last ten years. This, combined with significant reductions in telecommunications charges, make home-based data communications a normal part of North American home life. Wherever there are microcomputers and phones, there is access to the Internet, which is a huge global client/server network. On the business front, the ability to network microcomputers has led to new ways of designing information systems. Client/server systems are networks where the client system (for example the home computer connected to the Internet) provides most of the processing and applications software, and the server (usually a large, institutionally-owned computer) contains the database and responds to client requests for data. Client/server technology has now matured sufficiently to be used to advantage for business applications. Learning Objectives Learning Objective 1 • Describe how the usefulness of microcomputers has been enhanced by network technology. • Explain the terms local area network (LAN) and wide area network (WAN). Objective Readings Local Area Networks and Wide Area Networks Local Area Networks (LANs) were specifically designed to allow microcomputer users to share data and peripherals like high-speed printers and large disks, and to allow communication between users on a network. The key aspects here are the interconnection and the file server. The connections to the physical link and microcomputers are made by a network interface card (NIC) in each microcomputer. Wide Area Networks (WANs) are distinguished from Local Area Networks (LANs) on a variety of dimensions. As the name implies, WANs span further distances (often measured in hundreds or thousands of miles). WANs tend to use leased or rented network bandwidth, whereas LANs tend to be owned. LAN services tend to be more bandwidth intensive; for example, a LAN may include disk sharing while a WAN would be more likely used for something like computer conferencing. WANs tend to be lower speed at a higher cost for bandwidth; for example, a T1 WAN connection is 1 megabit, whereas a local fibre network may be 100 megabits. The critical difference between LANs and WANs on these dimensions has changed over time and the distinction between WANs and LANs is blurring. Microcomputers within networks are usually called workstations. A file server is a device that allows sharing data and peripherals. Workstations are connected in either a star, ring, or bus configuration, as described earlier. Examples of special network operating systems used to manage LANs are Novell's NetWare, Apple's AppleTalk, and Microsoft's LAN Manager. The Windows operating system has had, since the release of the first version of Windows 95, limited networking capabilities built into the standard single-user operating Unit 4 Section 2 Links 137 Computer Science 200 Study Guide (Print Version) system. Learning Objective 2 • Explain how peer-to-peer and client/server networks are organized. Objective Readings Peer-to-Peer Networks of Microcomputers Different approaches are used to allow two workstations to communicate with each other. One simple approach is "peer-to-peer" networking, in which each workstation is viewed as a peer to all the other workstations, with the same capabilities. In this approach, all of the workstations have the capacity to either request or provide information from and to every other workstation. Peer-to-peer networks exist on various scales, and are the basis for large online file-sharing applications, such as those used to trade unlicensed software, music, and other media. Learning Objective 3 • Explain the differences in approach between client/server applications and centralized applications. Objective Readings 1. Client/Server Computing The client/server approach is another method of organizing networks. In this arrangement, one or more computers act as a server, storing shared information, handling requests for information, and allowing access to shared network resources such as printers. Clients may have their own applications and make requests only for data from the servers, or they may actually run programs on the server and receive the output from those programs. Client/server networks can be networked to create a multi-level network. The Internet is essentially the sum of such networks connected together. Objective Readings 138 Computer Science 200 Study Guide (Print Version) 2. A Software View of Client/Server Computing The differences between the peer-to-peer, client/server and centralized approaches to networking lie mainly in the system software, because the physical network and computers can work together in any of these modes. Client/server computing is a significant development, as applications no longer need to be centrally controlled with top-down design, but may be viewed as a number of autonomous programs that co-operate, through the sharing of data, to achieve a purpose. There are many development tools available to build client/server applications. Typically, they consist of a graphical user interface (like Windows) for client screens and activities. Clients send requests to the server using Standard Query Language (SQL). A database is stored on the server and managed with the common data models necessary to ensure that all users can share the same view of the data. Applications builders come with query tools that allow the user to develop personalized queries. This type of environment permits the rapid development of applications and the involvement of the user in building prototypes. Applications development environments that use microcomputers are more recent products, and vendors have provided powerful tools that incorporate good practices for applications building. PowerBuilder is a market leader in providing applications building software for client/server applications. It is a fully functional applications building environment that ♦ uses the object paradigm, which allows for distributed applications; ♦ works with SQL servers for databases; ♦ provides a development environment for system builders; ♦ develops very fast compiled code; ♦ works with Microsoft standards for Object Linking and Embedding (OLE), which means it can work with Microsoft products that support OLE. Exercises Review Questions 1. The Internet is the most widely used example of client/server computing in the world. Explain why the Internet is a client/server system, describe the kinds of things that are available on WWW sites, and list the capabilities of your software browser. 2. What are the limitations of peer-to-peer networks? 3. Define and give an example of a Wide Area Network. Objective Readings 139 Computer Science 200 Study Guide (Print Version) Answers to Exercises Review Questions and Answers 1. The Internet is the most widely used example of client/server computing in the world. Explain why the Internet is a client/server system, describe the kinds of things that are available on WWW sites, and list the capabilities of your software browser. The Internet is the network that provides client/server access to the many millions of existing computer sites and users worldwide. Users are clients who request information from a server. The server is a site that contains information. It responds to client requests by transmitting information. For example, when you visit a Website, that Website is a server and you are a client. There is no way to quickly classify all the things available on a Website. They are as varied as the organizations that own the sites. You have approached a number of different types of sites. These include the following: ♦ Sites run by governments and their agencies. These sites use the Internet as a way of providing information to a wider audience. For example, you have used the Statistics Canada and B.C. Government sites that provide information on small businesses. ♦ Sites run by academic institutions. These sites provide a service to the students and staff of the institution, but also make their information widely available to the general public. As more sites provide this kind of availability, students and staff benefit greatly. These sites have a large collection of resources upon which to draw. So far in this course, we have encountered a case study from the Southern Methodist University and the PC Lube and Tune Site from Yale University. ♦ Magazine and newspaper sites. Many of these sites provide access to articles first published on paper. Other sites have purely electronic publications with articles that are not available in print form. An example of a magazine site you have visited is the Byte magazine site. An example of a newspaper site you have visited is the New York Times syndicate site. ♦ Commercial sites that include technical resources. Most of the sites you have used belong to computer hardware and software companies. These sites are resources to customers. They also act as marketing instruments to the larger public. Computer company sites often have specialized information for developers who use their products. Examples of these sites include the Intel site, the Microsoft site, and the CareerMosaic site. This last site provides an electronic way of posting jobs. ♦ Commercial sites that use the Internet as part of the business services they sell. The Kinko site is an example of this kind of site. Websites may be used by organizations providing information either as part of their mandate, like educational sites and newspapers, or as part of their business strategy, like the Novell site which provides access to all of Novell's technical manuals. 2. What are the limitations of peer-to-peer networks? Peer-to-peer networks do not significantly increase an individual workstation's power, because they do not involve the sharing of powerful central processors. They are also limited in the number of workstations they can effectively involve. 3. Define and give an example of a Wide Area Network. A Wide Area Network (WAN) connects computers in different locations (i.e., not in the same building, city, or region). Most WANs employ leased transmission lines that are part of a larger Answers to Exercises 140 Computer Science 200 Study Guide (Print Version) physical infrastructure network. A multi-store inventory tracking system for a chain retail outlet (Home Depot, Walmart, The Bay, etc.) would be one example of a WAN. Another example of a WAN would be an ATM system (bank machine network). Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Activities 141 Computer Science 200 Study Guide (Print Version) Unit 4 - Section 4 : Internet Applications Back to Unit 4 Commentary Online connectivity has become an indispensable component of modern computer systems, and that fact has both been shaped by, and contributed to, the growth of a myriad of new uses and applications. This section looks at specific applications used on the Internet. We will examine the role that each one plays in the overall interactions of users and systems, as well as the tasks performed. E-mail, Web browsers, FTP utilities, and chat utilities are among the applications discussed in this section. Learning Objectives Learning Objective 1 • Describe, in general terms, the development and structure of the Internet. • Identify the main functions of computer mediated communication, and the classes of software that enable them. • Describe the capabilities and uses of bulletin boards or newsgroups. • Describe the capabilities and functions of the World Wide Web. • List the main features and functions of browser software. • List the benefits and advantages of e-mail. Objective Readings Internet Applications In the history of computing, it seems certain that the development of the Internet will be forever marked as one of the major events. No other technology has so drastically changed the communication "reach" of the average person or made mass media so egalitarian. Of course, the Internet does not, in the strictest sense, exist as a single entity. The phenomenon we call the Internet is not a centrally controlled or managed system, but rather an extension of the growing use of telephone lines and other channels to connect computers for various purposes. The Internet existed for many years before we began to refer to it as "the Internet" or the "information superhighway." The concept of large-scale interconnection of computer networks was developed as a fail-safe communication tool for military purposes, originally called ARPANET (Advanced Research Projects Agency Network). The idea was that the dynamic rerouting capabilities of computer networks would provide a secure communications system in the event of war or disaster. Basically, if one path for a message was unavailable, a different path would automatically be found. Conferencing 142 Computer Science 200 Study Guide (Print Version) Scientists and other members of the academic community adopted the idea, and the global computer communications network later known as the Internet first began to reach into private homes and businesses in the late 1980s. Since that time, improvements in the communication capability of personal computers have been coupled with enormous growth in the average user's awareness and understanding of the Internet. Today, everyone knows about the Internet, most people have had some kind of experience with it, and a great many people use it on a daily basis or rely entirely upon it for their livelihood. Personal use of the Internet for recreation, commerce, and education has been the fastest growing activity since the introduction of television, and its effects upon society will likely be even more significant. The development of communications protocols such as Point-to-Point Protocol (PPP) and Serial Line Internet Protocol (SLIP) has made it practical to connect users to large and small computers all over the world. Internet applications can be roughly divided into two groups: those primarily for individual users, and those which support multiple users. These applications may also be categorized by location. Generally, individual users have programs on their desktop computers that support client access to the Internet, while larger and more powerful computers act as servers for Internet traffic. The client/server relationship is defined by the primary direction in which data flows (from server to client), but there are also situations where clients send information and servers receive it. Internet applications can also be categorized by the aspect or mode of computer-mediated communication (CMC) they enable. The broad area for computer communications includes the following systems. • Simple data dispersal systems such as FTP (file transfer protocol) systems • Nonsynchronous messaging systems such as e-mail and bulletin boards. (Usenet News, the Internet newsgroup system, could be described as the world's largest assemblage of bulletin boards.) • Synchronous messaging systems such as "chat" or instant messaging programs • An interactive online hypermedia system known as the World Wide Web (WWW) Each system has its own specialized tools. Objective Readings 143 Computer Science 200 Study Guide (Print Version) For our purposes, it is appropriate to focus on the client applications that the average Internet user would be likely to have installed on their desktop computer, while bearing in mind that there are usually server applications that correspond to each set of user applications. For example, we use browser programs such as Netscape or Internet Explorer to "surf" the World Wide Web, but there would be no sites to visit on the WWW if other computers were not running Web server applications that enable our connection to the computers that host or store the HTML documents and related files that make up the Web sites. Before online applications can be used, a connection with the Internet - usually through a commercial Internet Service Provider (ISP) - must be made. Initially, this was almost always done using a "dial-up" connection, where the modem in the user's computer would dial the modem pool at the ISP. In some situations, usually business locations with a high volume data line, a permanent connection may be maintained, so that all the computers in a Local Area Network are online at all times. Cable Internet, which also maintains a constant connection, has also become widespread. The program that establishes or maintains the connection also allows users to configure the connection with information such as the number to dial, and the login name and password to send to the host upon connection, as well as essential information about the settings and protocols being used for communication. Dialing programs can also be configured to redial on busy signals, or to connect automatically whenever an online application is started. Once the connection is established, the dialer will minimize itself, and await instructions to disconnect. While connected, most dialing programs track the duration of the connection and the amount of data transmitted in each direction. As alternative channels that allow for continuous connection become more widely available, dial-up connections become less common. File Transfer Protocol (FTP) utilities, as their name suggests, facilitate the transfer of files from one location to another. The files transferred could be text or document files, images, sound files, or programs. Sometimes groups of files are "zipped" (compressed together in a sort of data bundle) for convenience in transit, thereby reducing both the number and size of the files being transferred. FTP servers are simply repositories for libraries of files, usually very simply indexed by directory listing. Accessing an FTP server is not unlike connecting to a network or even a local storage device such as a hard disk or CD-ROM, except that the FTP server is located at some distance from the user's desktop computer. Some FTP servers are restricted, or partially restricted, in terms of who may access them and which files may be uploaded or downloaded. Anonymous FTP servers are those that will allow general access to at least some of the files contained there. In many cases, FTP servers are also configured to enable certain users to upload files from their computers to the server. One example of this can be seen if you make arrangements with an ISP to host a Web page for you. The HTML documents, images, and any other files that make up your Web page are located on the host server, which also runs a Web server application that allows other users to connect to and view your Web page. Those users can see your page, and can even save it and the images and sounds it contains onto their hard drives, but they cannot modify it in any way. As the owner of the page, however, you require FTP access to the directory on the ISP server that contains your files, so that when you want to change or add to your Web page, you can transfer the updated or additional files from your computer to the server. Objective Readings 144 Computer Science 200 Study Guide (Print Version) News servers, an adaptation of computer bulletin board systems (BBS), are much like real bulletin boards in that they enable the "posting" of messages (called articles, supposedly relating to a specific topic), which can then be read or copied (downloaded) by other people in the newsgroup. The messages, which can also contain attachments such as images, media files, or programs, can be posted by anyone, but can only be removed by the news server's administrator. Others may add comments to the message, and news servers also enable readers to e-mail the poster (author) of any article if a valid e-mail address is provided as part of the posting. Unfortunately, newsgroups and e-mail have both become targets of a sort of electronic junk mail technique known as "spamming," where marketers and promoters use e-mail systems and news servers to advertise. There does not seem to be any easy way to control spammers, so Internet users have to accept their presence. The fact that spammers continue to operate suggests that the technique must work to some extent. Somebody must be responding positively to this un-wanted advertising and actually buying the products and services. If we are surprised by this, perhaps we should reflect on the fact that telemarketing also has a reputation for being hugely resented by consumers, yet it too continues to thrive. Fortunately, many tools for blocking spam are available, and work well if carefully configured. Even before the term "Internet" became a household word, people had been using direct-dial computer bulletin boards for several years. Usually, someone with a particular interest - for example, writing programs for obscure hardware platforms or sharing tips and tricks for outsmarting computer games - would set up a computer (server) with a modem and install a dial-up access program that would allow other users to dial the server directly with their own modem-equipped computer, and exchange files with the server. These bulletin boards were precursors of the more recent FTP and newsgroup systems, but were limited by the fact that they were accessed through a direct phone connection from the client computer to the server. This meant that calls were subject to toll charges if they were not local. With the Internet, users make a local call connecting their computer to their ISP, and all subsequent connections are through the ISP, and therefore do not incur toll charges. Very few old-style, direct-dial computer BBSs still operate in today's environment of Internet newsgroups, e-mail, and personal Web sites. In this course, we use a Web accessible, password protected, private bulletin board called the course conference as a forum for exchanging information and creating connections among students. This conference board is just one of the functions of a groupware system called Moodle, which serves as a tool for presenting Web-based material, as well as providing file transfer, tracking, and communication capabilities to AU students and staff. Electronic mail (e-mail) is a nonsynchronous messaging system which was first used in local area networks within companies and organizations, but which is now, perhaps, the most widely used Internet application of all. Microsoft Outlook is a commonly used mail client, and it is a standard feature of the Windows operating system. There are also Web-based e-mail systems such as Hotmail, Yahoo! Mail, and many others which allow the user to send and receive e-mail through a Web site. This makes e-mail accessible from any Internet-connected computer. Mail clients allow users to send messages to one or many recipients at once. Each message includes a return address and may also contain file attachments. Objective Readings 145 Computer Science 200 Study Guide (Print Version) The advantages of e-mail over regular mail are numerous and include lower cost, faster (instantaneous) delivery, and greater reliability. One of the most useful features of e-mail is that, should your message prove to be undeliverable for whatever reason, you will almost invariably get it back with a notification of failed delivery. Sometimes this happens within seconds of the message being sent. As with newsgroups, e-mail systems are often bombarded by advertisers and promoters of products and opinions. They may either "broadcast" mail to everyone whose address falls within a certain mail domain, or they collect or buy e-mail addresses, and target those addresses with electronic junk mail, which is another form of spam. In defense against spam and junk mail, users can configure their e-mail systems to block or screen incoming e-mail from specific addresses, and they can also delete unexpected or unwanted messages without opening them. There are also online organizations which record and counter Internet abuses, and most ISPs will terminate e-mail accounts that generate complaints of spamming. The original (and still popular) form of Internet "chat" utilities allowed for synchronous communication on sites known as MUDs (Multi-User Domains) or MOOs (Multi-User domains, Object-Oriented). When you connect to a basic chat site, you enter a virtual meeting place where every other user who is connected at that time can potentially "talk" to you, and you to them, by typing their conversation or "chat". Modern instant messaging systems, such as MSN Messenger, allow synchronous communication among users who are simultaneously connected to the Internet. Text messaging has also become a popular feature on cell phones in recent years. As with e-mail, some effort is required to express emotion during a chat session. For example, you can type phrases such as "LOL" (laughing out loud) to indicate your reaction to something mentioned in a chat session. Chat is used extensively by people who know each other and are separated by distance because it is a cheaper alternative to long-distance charges, and a more immediate and interactive alternative to e-mail. It is also a popular way to "meet" people from other locations, and when associated with a particular interest or hobby, provides contact with other people who share that same interest or hobby. Recent developments have taken synchronous online communication to new levels, where both audio and video are available and where interactions take place in the sophisticated virtual environments of games or simulations, using digital characters (avatars) to represent users. As an example, online multi-player games such as SOCOM, Final Fantasy, and World of Warcraft are played in an interactive mode, where players not only see their character avatars moving through the game "landscape," but also hear and speak with other players in real time, using headsets. The most versatile, accessible and popular aspect of the Internet has been the World Wide Web. The Web consists of hundreds of thousands of host servers, each of which has stored on it one or more hypermedia documents, and all of which are interlinked by their Uniform Resource Locators (URLs, or Web addresses). These Web sites, also known as Web pages or home pages, combine many of the best features of other CMC tools in a dynamic and media-rich environment that is both easy to use and extraordinarily flexible. Objective Readings 146 Computer Science 200 Study Guide (Print Version) Web sites are also used to provide an interface or connection to other CMC tools. For example, at a Web site you may be able to download material, send an e-mail to the owner of the site, post a message on bulletin boards associated with the site, or link to an associated chat site. Most Web sites contain links to other sites of similar content, or to sites that the owner believes are interesting. Web pages are accessed with applications known as browsers or Web browsers. Popular browsers includes Netscape, Mosaic, and Internet Explorer. These programs locate and connect with Web servers and the pages they contain, as well as facilitate the interpretation of all the data, text, images (still and animated), and sounds contained in the pages. Since most Web browsers also include an e-mail utility and a newsgroup reader, the Web browser is the only Internet tool that many people will need. Both Windows and Mac operating systems include tools, such as Web browsers, FTP utilities, and e-mail clients, in recognition of the fact that virtually every computer user today is also potentially an Internet user. Exercises Review Questions 1. Briefly describe each of the following: ♦ E-mail ♦ FTP ♦ News Servers ♦ Synchronous Chat Sites 2. Define and describe the World Wide Web. Identify and give examples of the main software tool(s) used to access the WWW. Answers to Exercises Review Questions and Answers 1. Briefly describe each of the following: E-mail, FTP, News Servers, and Synchronous Chat Sites (MUDs and MOOs). E-mail is the term applied to electronic messages delivered through the Internet to other user-specified addresses. E-mail messages are asynchronous communication. Files containing data or programs can be attached to e-mail messages. Exercises 147 Computer Science 200 Study Guide (Print Version) File Transfer Protocol (FTP) utilities enable the transfer of files from one location to another. FTP servers are repositories for libraries of files, usually indexed by directory listing. FTP servers may be restricted in terms of who may access them, and what files can be downloaded. Anonymous FTP servers allow general access to at least some of the files contained there. News servers are much like bulletin boards in that they allow users to post messages - called articles relating to a specific topic, which can then be read, responded to, or downloaded by other users. Messages can be posted by anyone, but can only be removed by the newsgroup or news server administrator. Chat utilities, known as MUDs or MOOs (Multi-User Domains; Multi-User Domains, Object-Oriented), support synchronous communication. When you connect to a chat site, every other user who is connected at that time has the potential to communicate with you, and you with them. Typed comments appear on your screen, and simultaneously on the screen of the other users. Chat is used as a cheaper alternative to long-distance telephone calls and as a more immediate and interactive alternative to electronic or regular mail. 2. Define and describe the World Wide Web. Identify and give examples of the main software tool(s) used to access the WWW. The World Wide Web is a huge and ever-growing collection of hypertext documents that are maintained on computers, which are connected to the Internet and are enabled as WWW servers. WWW documents, also known as "Web pages" or "sites," are viewed with browser software such as Netscape or Internet Explorer. Businesses, institutions (like Athabasca University, for example), governments, non-profit organizations, and individuals create and maintain WWW sites. The "Web" is highly interactive, allowing users to seek information by following trails of "links" from site to site, or from section to section within a site. Graphical, text, sound, and animation data can be published on Web pages, and sophisticated search engines and Web indexes (Yahoo!, Snap, etc.) allow for easy reference. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Answers to Exercises 148 Computer Science 200 Study Guide (Print Version) Unit 4 - Section 5 : Application Trends Back to Unit 4 Commentary Online connectivity and communications will likely continue to be the focus of much applications development. Moreover, the powerful new hardware and operating system capabilities for multimedia and virtual reality will open the door for many new types of applications. In this section, we will attempt to look ahead at the new ways computers may be used in response to these developments. Learning Objectives Learning Objective 1 • Describe and discuss, in general, the importance of Inter-organizational Systems, with reference to specific examples such as EDI. Objective Readings Operational Systems We have seen that it is possible to automate many manufacturing processes and their associated transaction processing systems. Order processing, inventory processing, plant scheduling, and so on, are all interrelated. The applications can form a large, integrated system of subsystems that cover administrative and manufacturing processes. The ability to work directly with the customer can be added to these applications, and the cost benefits of mass production can be gained while the ability to customize individual orders is retained. Graphical tools allow the salesperson to work with the customer in defining the customer's requirements. Multimedia and easy-to-use graphical interfaces can integrate with production systems to • assist customers in describing the product features they wish to order, and ensure they are correctly entered by the service representative; • optimize manufacturing schedules; • ensure that the correct components are at the correct points in the manufacturing process. Computer and telecommunication technology provide key communication channels for organizations. These channels include voice, data, video, and multimedia that can then be interconnected by value-added networks (VANs). VANs enable Electronic Data Interchange (EDI) and Electronic Funds Transfer (EFT), which allow different cooperating organizations to complete their business transactions electronically. The flow of information between the customer, suppliers, and the manufacturer is all managed electronically. "A Road Map to EDI," by Stanley K. Ritchie posted on the Electronic Commerce World Institute WWW site provides an introduction to the role of electronic data interchange. The author stresses the advantages of Inter-organizational Systems. This is a change from viewing information systems in a company-wide context only. Information systems now include processes that work with a company's trading partners. Suppliers, Conferencing 149 Computer Science 200 Study Guide (Print Version) distributors, and customers are all part of the information system. These cooperative information systems allow significant savings to all companies involved. The time delays involved in communicating between businesses is largely eradicated because transaction processing costs are reduced. Furthermore, companies can adapt to changing needs far more quickly, providing a better level of service to their customers. Organizations are able to engage in electronic commerce using secure VANs or in-house networks. Trade on public systems has been growing steadily as encryption and security technologies have improved the safety of Electronic Funds Transfer on the Internet. In the article by Stanley K. Ritchie, a number of EDI options are described. These include the use of smart cards and card readers. That is, credit cards with built-in chips containing the information needed to ensure secure transactions. Online retailing has rapidly grown in popularity and scope, enabling consumers to order goods online from the business of their choice, and have them paid for and delivered, without leaving home. The seller no longer needs to have a shop or keep stock in inventory. If customers are willing to wait for delivery in exchange for a good price, the company is able to place an order, and get it shipped directly from the manufacturer or wholesaler. Manufacturers have begun to use this medium to sell directly to their customers, which has created some legal and economic issues within existing distribution systems, because there is less need for the traditional "middleman" role of conventional retailers. Learning Objective 2 • Discuss the growing use of artificial intelligence in Decision Support Systems, giving examples. Objective Readings Decision Support Systems Earlier in the text, we considered the potential growth in information systems that can be achieved by "adding intelligence" to assist in the decision-making process. Decision Support Systems (DSS) are an example of artificial intelligence applications which are becoming more widely used. Many automated tools work by looking for patterns, and using them to predict behaviours. Large amounts of data are now routinely collected in databases. "Knowledge mining" is the term given to software systems that look in databases to try and find new relationships. These software discovery tools use mathematical techniques to help identify relationships of interest. The same techniques can be used by intelligent software agents to screen incoming e-mail, and identify what is useful. There are many software systems already on the market that use a variety of analytical techniques to look for patterns. These tools often require significant amounts of processor power, and may require specialized Objective Readings 150 Computer Science 200 Study Guide (Print Version) servers that are optimized for the work. Conventional query-reporting tools that work with relational databases can easily become overloaded when querying relationships between different data items within a record or across records; however, the latest analytical tools can handle these more general queries. Some of the new techniques borrowed from artificial intelligence operate very differently from conventional algorithmic systems. These new techniques are "self-learning." That is, they are "trained," using examples from existing data. The systems use existing data to tune their variables, and get better at predicting results. They "learn" from known case studies, and provide feedback to refine predictions. Artificial neural networks work this way, and are successfully used to predict the behaviours of complex systems like financial markets. All of these tools are predictors, and the predictions are accurate to a degree. These tools are fundamentally different from conventional reporting systems, which deal only with what has actually been recorded. In the case of purchase data collection systems, such as retailers' "club" cards, the main purpose is to collect and analyze data so that customer preferences may be better understood by both retailers and their wholesale suppliers. Inlen is an example of a machine learning system that does this type of analysis. Large company databases are searched for significant patterns. The database is developed from the transaction records of a store's discount club. With this data, the system can generate profiles of shopper consumption that can be used for planning items to stock, and can generate mail lists and pamphlets for special offers and sales. Learning Objective 3 • Briefly describe and discuss the advantages and opportunities, as well as the limitations, of computer applications for learning. Objective Readings Information and Education Sectors The growth of multimedia materials, the development of usable interfaces, and the channel-capacity growth that will enable access to the materials all indicate rapid change in the way information is delivered. There is already a blending of highly interactive games technology, simulations from virtual reality, and hypertext in presentation techniques. If you explore the WWW, you will find a myriad of electronic reference sources, libraries, and educational institutions, of which Athabasca University is an example. With their access to large markets through distance-insensitive technology, organizations can recover their high development costs for multimedia materials. The standard of the material presented can be far higher than what is possible in a classroom. The benefits of interaction with tutors and other students can be maintained while the information delivery can be left to the electronic materials. As more practical courses are delivered, there will be a greater need for "hands-on" and team work. This can be supplied by physically meeting or by electronic conferencing and simulation. Virtual reality simulation is already used to allow safe and affordable training and experimentation in science and medicine. Artificial intelligence now allows developers of courseware to move from the linear classroom approach to smaller-use systems that monitor student performance, apply analytical techniques to student responses, and provide guidance. Objective Readings 151 Computer Science 200 Study Guide (Print Version) As mentioned elsewhere, new groupware technologies such as Elluminate, GoToMeeting, or Webex provide a wide range of data, file, and application sharing tools within a collaborative, synchronous communication framework. Exercises Review Questions 1. Discuss the concept of Inter-organizational Systems, giving examples. What are the main technological changes and developments that have driven the growth of such systems, and what are their benefits and risks? 2. List and discuss ways in which analytical queries might be used to support strategic decision making in business. 3. From your own perspective as a student in an electronic distance education course, describe what you feel to be the main benefits, as well as the drawbacks, of this type of educational use of information technology. Answers to Exercises Review Questions and Answers 1. Discuss the concept of Inter-organizational Systems, giving examples. What are the main technological changes and developments that have driven the growth of such systems, and what are their benefits and risks? Inter-organizational Systems are information systems whose boundaries extend beyond a single firm or organization. One general example is Electronic Data Interchange systems, which may be set up between a supplier and a purchaser, automatically generating the reorder of inventory and eliminating much paperwork by producing electronic invoices, orders, shipping reports, etc. The increased availability, speed, and security of communications capability in information systems is the main technology factor driving the development of such systems. 2. List and discuss ways in which analytical queries might be used to support strategic decision making in business. The main use of analytical queries is to generate predictive reports. When very large databases are assembled, patterns and trends can be extracted by software that has "learned" from the behaviour of the data in the past, and from rules or predictive assumptions and formulas. In financial markets, for example, such methods might be used to predict the price performance of a particular commodity. 3. From your own perspective as a student in an electronic distance education course, describe what you feel to be the main benefits, as well as the drawbacks, of this type of educational use of information technology. Objective Readings 152 Computer Science 200 Study Guide (Print Version) Answers will vary, but student feedback in the past has mentioned the following benefits or advantages of this approach: ♦ the breadth of information resources available online to support course objectives ♦ the fact that content can be kept up-to-date more easily ♦ interaction with tutors and other students made possible by CMC tools Disadvantages may include: ♦ confusion among some students regarding the use and navigation of materials ♦ "information overload" from online resources Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Answers to Exercises 153 Computer Science 200 Study Guide (Print Version) Unit 5: Introduction to System Development Back to top Commentary This unit introduces the methodology of applications software development, the roles of people involved in the process, and the tools used. We will discuss what a skilled user can achieve and when a professional is needed. Some of the issues that arose in Unit 4 reappear in this unit, such as comparing small and large applications, as well as the need for applications to conform to industry standards. We will also look at the choice between purchasing software or building customized software to meet specific requirements. The significant reduction of hardware costs over the last twenty years, combined with an increasing shortage of technical staff, makes software development costs the major expense of any customized system. This has provided the incentive to software builders to make common business systems available "off the shelf" at computer stores. However, the rapid growth in the use of computers - and in the complexity of the things people want to do with them - means that people with the skills to build and maintain software systems are in great demand. Acquiring software is only part of the picture. In Section 2 of Unit 5 we will explore the role of the systems analyst — a key professional in the process of investigating the different things a new system must do, designing the system, specifying the programs that need building, introducing the new system into the workplace, and overseeing its ongoing maintenance. While the programmer may have a rather solitary task based on logic alone, the analyst must be able to work with people, and understand the business and social aspects of introducing a system. Section 1 Section 2 Section 3 Activities Digital Reading Room Unit 5 Links Course Project Part 2 Complete Course Project Part 2. Conferencing 154 Computer Science 200 Study Guide (Print Version) Unit 5 - Section 1 : Developing Applications Software Back to Unit 5 Commentary In this section, we will explore some of the options available when deciding how to acquire applications software. You have already started to build small applications with your practical work in databases. More and more software tools are being developed that allow skilled users to develop their own applications, to the point where end user development has become a management issue. As a result, the support, control, and evaluation of end user development has evolved into a whole new field of study within the broad field of Management Information Systems. Alternatively, some situations call for software development professionals to develop custom software for specific requirements. Many organizations mix these two approaches because they can have the cost benefits of buying pre-built software that they can adapt for their own use. Custom construction of software is very expensive, while packaged software from the local computer store is relatively cheap because its development costs are "paid for" by many users. As in any business decision, costs must be weighed against benefits when making the choice between pre-built or custom-built applications. Learning Objectives Learning Objective 1 • Identify which types of applications users can program directly, and which require professional programmers. • List activities that an information systems department can carry out to support user involvement in system development. Objective Readings Skilled Users Building Their Own Applications The types of personal productivity tools that are available on today's desktop computer allow skilled users to build their own applications. The accountant building applications with a spreadsheet and the engineer doing design work with computer aided design tools are both examples of application building tools specifically designed so that the user does not need specialized computing expertise. Mailing lists, reports, presentations, and desktop publishing applications can all be handled by skilled users. Statistical packages enable the statistician with limited computer training, but specific product training, to analyze data. The growth that is putting computers into the hands of more workers also fosters the development of software, which makes computers easier to use. As we have already seen, people who run small businesses and have some training in desktop computer products can probably automate many of their Course Project Part 2 155 Computer Science 200 Study Guide (Print Version) clerical procedures with relatively little professional help. There are, however, limitations to this approach, and at some point, professional help is needed. When should a professional be brought in? The answer will depend on the level of experience of the user, and also upon the size and complexity of the application required. This is particularly true when trying to build one's own database applications. Database products, like Microsoft Access, are capable of building applications of great complexity. Whenever an application uses data from more than one aspect of one's business, one needs to know how to represent those data entities safely as tables (or files), in such a way that they can be manipulated to ensure that the correct outputs are achieved. As we learned previously, the method of doing this with relational databases is called "normalization" of the data. A relational database displays data as a number of tables with rows and columns. A database implements a table as a separate file. A relation is a mathematical concept, and relational database software is based on the use of mathematical and logical operators. Users do not need to be aware of this to use databases, because the software shields users from the way it works. However, one does need to start with a correct design, and where a database application involves multiple tables, one may need help in ensuring that the tables are designed correctly. Unfortunately, some software vendors give the impression that no technical knowledge is needed to use their products. This is often true in small applications, and most products are supported by well-developed tutorials and examples, usually interactive and online. However, as applications get more complex, there is a limit to what can be achieved with "common sense" or intuition alone, and a sound understanding of application design principles is needed. As sometimes happens when new users purchase a computer that includes software, they are unhappy if they have to spend more money on applications software, particularly when it involves using professional help to develop it. The reality is that the main costs of any custom-built business application today are for the software development. These costs usually dwarf the hardware costs. Where applications are built by users who have some experience with the technology, a number of information system support functions are included with the applications, which provide assistance to the end users: • training functions: courses are developed for, and delivered to, the user population • help desk functions: experts in the hardware, software, and applications design provide help upon request • product selection, installation, licensing, and version control: the information systems department ensures that the products used are consistent with other products on desktop machines, that they are correctly licensed and installed, and that they are kept current • housekeeping activities: the information systems department sets up and performs necessary activities, such as file backup and virus protection It is a desirable goal of all application building to ensure the user of the application is involved in its design, Objective Readings 156 Computer Science 200 Study Guide (Print Version) and if possible, its construction. An ideal way to do this is to make it easier for users to build their own applications. Learning Objective 2 • List the steps involved in the acquisition of off-the-shelf software. Objective Readings More Complex Applications Software When considering more complex applications software, the user faces a number of choices. One may: • purchase a pre-built application package or system that meets one's needs; • program the application using in-house staff; • contract out the application programming. Most of the requirements of small-businesses and home users can be met by purchasing packaged software from a retail computer outlet. Accounting packages, scheduling packages, and other standard tools are common. Some of these are designed to integrate and work with desktop products, such as Microsoft Access, to facilitate the sharing of existing information. When selecting a product, it often pays to see what other people are using and research the different features of alternative packages. Computer magazines and the Internet are resources that can help in this research. As the size of an organization grows, so does the need for help in selecting a system. One common approach is to approach vendors of systems, looking for a "turn-key" solution. A turn-key solution is a product that includes a computer and software, sold together to perform a certain application. A computer-aided design workstation is an example of such a product. You "turn the key," and the new system is up and running. The alternative is to find software that works on your current hardware (or an upgraded version). In those cases, you would have to spell out exactly what you want, and what hardware is needed. There are also professional research organizations that publish details on software available, providing guidance on selecting software, and explanations of most aspects of information technology. Learning Objective 2 157 Computer Science 200 Study Guide (Print Version) When acquiring software, there are also a number of additional costs to be anticipated: • the cost of training • the cost of converting any existing data to the new system • the costs of changing, as necessary, business processes to fit the new system You also should look at other aspects of the system's performance, especially when the system will have multiple users and share data. Performance aspects that should be considered are: • The response of the system to an activity - for instance, a query at peak loading time - has to be rapid enough to ensure that users do not have to wait more than a few seconds for it to respond. • The ability to recover data when equipment failure occurs. A transaction processing system should never require the user to re-enter more than the last transaction after an equipment failure. • The ability to ensure that data cannot be accessed by unauthorized users. If you are to trust your information to a computer program, you have to be sure that the program will not only do what it is designed to do, but will also protect your data from potential damage through accident or intent. Security features and any potential weaknesses also need to be understood. Another factor to consider when purchasing application software systems is maintenance. There may be some maintenance needed with a new system when errors (or bugs) are found, or as requirements shift in a changing operational environment. A simple example of the latter situation would be the need for tax tables to be updated in software used to prepare income tax returns. In the longer term, maintenance needs usually arise because your business needs change or your business volume increases and the system can no longer handle the volume. You cannot always predict what changes may need to be made, though it is appropriate to specify your requirements to handle anticipated changes. Often you cannot really know how an application will work in your particular circumstances until you use it. When changes are required, they may have to be made by the company that built the software. Alternatively, you may be able to buy both the software application and the right to change it. In the latter case, you would need the necessary documentation, program source code, and expertise to make the changes. The foregoing may argue against buying software; however, the cost of building software is so high that purchasing it is often the only possible route, particularly if you need only one installation of the software. The benefits from this one installation of the software must equal all your development costs. Many organizations have found a balance in purchasing software complete with documentation, so that they can access the code to adapt and maintain the software in a way that suits their particular environments. This saves the initial investment in design and programming, but allows them to retain control over their software resources. In these situations, you would need to have a small information systems department with the specialized staff needed to maintain your systems. Learning Objective 3 • Explain the advantages and disadvantages of custom programming an application. • Describe outsourcing. Objective Readings 158 Computer Science 200 Study Guide (Print Version) Objective Readings Custom Programming The final choice for software is custom designing and programming to suit particular requirements. This is done when there are compelling reasons to believe that pre-built software would not be suitable. Many companies have some software custom built, such as those related to their manufacturing processes, but use pre-built packages for standard applications, like accounting. Two reasons for custom building are: • The application is so specialized that pre-packaged systems are not available. • The application is a key component of the business, and the company wishes to keep the way it does things private. The latter reason highlights one of the main differences in the way organizations handle building new systems. If a company relies on technology for its main business purpose, it is likely to invest heavily in it. Organizations that use technology for their main business, such as computer companies and telecommunications companies, often have large numbers of software support staff. Companies that rely heavily on technology to deliver their services, such as banks and large-scale retailers, also have their own software support staff. Companies in which information technology has a limited supporting role are likely to have limited software support staff. They will rely on consultants and contract staff for any major software development. Small- to medium-sized businesses, educational institutions, hospitals, and local government may also work this way. During recent years many companies have moved to using outside consultants to provide some or all information services, rather than having their own IT professionals on staff. This is known as "outsourcing," and has led to the existence of an increasing number of independent consulting companies that do the computing for others. These companies can specialize in an industry sector, and be large enough to provide the technical environment and training needed by software development staff. This trend towards outsourcing is continuing and broadening as functions other than information systems development and maintenance become areas to be outsourced. The practice fits well with the need for modern organizations to be streamlined, flexible, and able to change quickly. Exercises Review Questions 1. Choose any specialized application program (i.e., not a word processor, spreadsheet, or other common application) from your workplace or local computer store, or from a magazine article, and indicate ♦ the purpose of the program; ♦ the type of organization or business that would use this type of software, and why; ♦ the main tasks performed by the software; ♦ the main inputs and outputs involved. Objective Readings 159 Computer Science 200 Study Guide (Print Version) Answers to Exercises Review Questions and Answers 1. Choose any specialized application program (i.e., not a word processor, spreadsheet, or other common application) from your workplace or local computer store, or from a magazine article, and indicate ♦ the purpose of the program; ♦ the type of organization or business that would use this type of software, and why; ♦ the main tasks performed by the software; ♦ the main inputs and outputs involved. Consider an accounts payable application. It consists of a number of programs that work together to handle the business function. The accounts payable application is a subsystem in the accounting system. It includes a purchase order subsystem, which interacts with the inventory system. This type of application is used by any business that buys goods and/or services; that is, almost all businesses. For this purpose, assume it is a retailer that places orders for goods from a supplier. This generates a purchase order, which is recorded in the purchase order system. When the shipment arrives, the details of the goods actually received are recorded with the cost of the purchase. The retailer then has a record of what is owed, based on what was actually received. Accounts payable programs are triggered when invoices are received from suppliers. The system then compares the details on the invoices to the details on the purchase orders. Most of the time, the invoice matches the items received, but when there is a discrepancy, it is highlighted and the retailer will contact the supplier to resolve it. When the invoice details match the purchase order details, a cheque for payment is produced. The system then also generates a record of the payment transaction for the accounting system. This provides an audit train. The details of the purchase orders and payments are then moved to an archive file, as the purchase has been received and paid. Details of unpaid invoices are retained in a pending invoice file for follow-up. In summary, the accounts payable system described here is triggered by invoices from suppliers. It works with the details of purchase orders, generating cheques and records for the financial parts of the accounting systems. It also retains information about the invoices that need to be queried before payment can be authorized. Although this is only a small application, it is a part of a bigger system — a subsystem of the company's overall information system. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Answers to Exercises 160 Computer Science 200 Study Guide (Print Version) Unit 5 - Section 2 : Programming and Programming Languages Back to Unit 5 Commentary This section is an overview of computer programming. It begins with a brief history of programming, from machine code to the fourth-generation languages of application programming today. The steps in this evolution have been marked by a number of significant changes in programming: • increases in programmer productivity because of languages designed for particular kinds of applications, such as databases; • the transition from languages that were specific to a particular computer to languages that are available on all the main types of computers; • the eventual move away from procedural languages, where the programmer has to specify all the steps in any task, to non-procedural (fourth-generation) languages, where the programmer specifies what is wanted, rather than how to do the task. This topic is further explored in Unit 6. Learning Objectives Learning Objective 1 • List and briefly explain the importance of significant events or milestones in the development of programming. Objective Readings • The Development of Programming Languages Some Comments on Programming The programs on your microcomputer are the result of many hundreds of person years of creative development. These programs work together (at least, most of the time) to enable the user to do things with a computer that were once almost inconceivable. Programming is a relatively new discipline in that it represents a concept that did not exist until the 1940s. Until the late 1970s, programming was practiced primarily in research and academic institutions. More recently, however, programming has grown into a major career path for those who enjoy problem solving. It is also a skill that is in increasingly short supply. The collection of electronics and logic that make up hardware can do nothing without complete instructions from a software program. Programming is all about language and logic. It uses languages with precise syntax and semantics, and which include none of the nuances of most human communication. Computer languages and programs are self-contained. Programmers express the tasks to be done in language statements that completely describe the way the problem is to be solved. The solution to the problem must be logically Conferencing 161 Computer Science 200 Study Guide (Print Version) complete and correct, or the hardware will not be able to convert the program into actions. Programming is an art form and involves individual creativity. Although there is likely to be some consensus about which solutions are elegant or crude, fast to run or slow, easy to maintain or not, different programmers will solve the same problem in different ways that exhibit their individual styles. Programming is difficult because it involves very complex inter-relationships. While it is relatively easy to write a program consisting of ten operations, the difficulty increases exponentially for a program with 100 operations. A typical program may, in fact, consist of hundreds of thousands of operations, all interacting to achieve a purpose. The methodologies that programmers have developed to handle this complexity reflect how people solve large or complex problems of other types, including breaking the job down into its component parts, using "power" tools of various kinds, and viewing the problem from a variety of perspectives. Learning Objective 2 • Define "functional decomposition" in the context of computer programming. Objective Readings Different Ways to Look at Problems As new challenges and new tools and methods have come along, the original top-down structured design techniques have become less universally used. For some years now, researchers have been looking for alternative ways to program computers. The languages discussed so far are all based on the idea of "functional decomposition." This is a classical engineering approach to handling complexity in which problems are partitioned into sub-problems. Where the sub-problems are functionally cohesive, they each complete a well-defined sub-task. These sub-tasks are then further partitioned, and so on, until a manageable-sized programming unit is defined. These units can be viewed as "black boxes" that take certain well-defined inputs, and apply a sequence of steps to the inputs to provide some well-defined outputs or end states. These form a hierarchy with a higher level of abstraction the higher up the structure one goes. Each box is a function that invokes lower-level functions. Design methods, such as structured programming and structured analysis and design, tend to rely on knowledge of the scope of a problem before design begins, as well as some form of centralized control of the design process. This approach starts to become unwieldy when problems have a high degree of complexity. Systems like the Internet were not designed monolithically; they evolved from successive refinements that were largely dictated and required by users. Objective Readings 162 Computer Science 200 Study Guide (Print Version) In this context, and more so as we begin to explore the principles and tools employed in Object-Oriented Programming, we can see that software design has become more modular and more evolutionary, and at the same time, less structured and less hierarchical. Learning Objective 3 • Describe the different characteristics of the main types of high-level languages, and give examples of each. Objective Readings • Review readings of Objectives 1 and 2 Some Examples of New Ways of Looking at Software Design There are three new ways of considering software design: 1. Evolutionary software development. Internet browsers represent a series of improvements by which browsers have absorbed capabilities that were previously only part of small programs built by others to solve a particular problem not solved by the browser. The software evolved naturally, pushed by user requirements. This works because the industry has taken a view that system architectures should be "open," meaning they should conform to well-defined standards and communications protocols that allow anyone with appropriate skills to enhance the system. The software design really belongs to everyone. The software itself is often given away or is very cheap. The companies that do much of the work profit by providing services that add value to the software. They are selling their expertise on how to use the technology to advantage. This is an example of user-driven growth of a software infrastructure. It is an experiment that has demonstrated the speed with which new software systems can be absorbed into the home and office. 2. The object and event driven view of a problem. Like most "new" programming paradigms, the object paradigm has been used for a long time, but only in specialized areas of programming. It came into widespread use because of the need to look at problems in a different way when considering shareable programs that run on interactive networks of computers. The object paradigm models the application in terms of things (or objects) needed in an application. Each object is self-contained. It consists of the data items and program code needed to look after itself. It has relationships with other objects, either by virtue of being related in kind (for example, a part-time employee object is a special kind of an employee object), or because it interacts with other objects to complete some task (for example, an instance of a product object is generated at a specific time when an instance of an employee object works at an instance of a machine object). This view allows users to program the objects and their natural relationships only once. The objects are self-contained and include all of their code and data. They are responsible for how they interact with other objects. Applications are really a definition of the interaction between the objects needed to produce some desired outcome. These interactions are achieved by passing messages to each other. If you go back to the discussion on databases, you can see that this is the natural evolution of the relational database idea. Now, rich structures are added between the objects and program code, Objective Readings 163 Computer Science 200 Study Guide (Print Version) and data are included in the definition of an object. Object databases are starting to replace relational databases. They are "event driven" in that a message received by an object causes the object to interact. There is no central control mechanism. Object technologies are being popularized with languages like C++ (an extension of the C language, for low-level detailed construction) and Visual Basic for rapid construction when dealing with applications that can be driven with a Windows-type interface. A more detailed examination of object-oriented programming is provided elsewhere in the course. 3. Languages based on formal logic and deduction. These are called fifth-generation languages or artificial intelligence languages. We will look at this new class of computer applications later in this course. There are two different perspectives that can be mentioned here: ♦ The first is the issue of correctness of the programs developed. One of the things you may have noticed as you read about programming is that everyone anticipates bugs, or errors, in programs. None of the programming methods discussed so far can really guarantee the correctness of the output for all possible inputs. The builders test the programs to destruction, but users come up with different things to try out. It is not possible to predict all of the circumstances under which a program will be used. To address this issue, language designers developed languages based on formal logic, rather than a definition of an algorithm, to describe the process needed. With logic-based languages, once the problem is defined, the solution can be found by applying the logic rules to the problem definition. LISP and Prolog are examples of languages that work this way. ♦ ♦ The second issue is the way a problem is defined. People learn to do things by experimenting and developing rules that seem to work. These rules can be adapted as one learns more. A variety of "programming" systems have been built that try and emulate this way of working. The programmer "trains" the software system by providing it with examples to try to emulate or with rules that summarize the desired behaviour when events occur. Rule-based expert systems and artificial neural networks are software systems that enable this way to build applications. Both of these approaches are proving to be very powerful in some kinds of application building. These programming technologies are now being used commercially to great advantage. Learning Objective 4 • Explain the need for the translation of programming languages, and distinguish between assemblers, compilers, and interpreters. Objective Readings The Development of Programming Languages Objective Readings 164 Computer Science 200 Study Guide (Print Version) Learning Objective 5 • Explain the different paradigms now used in programming, and why they are being used. Objective Readings Review readings of Objectives 1, 2, 3, 4 Readings Introduction In this part you will survey programming and programming languages. The basic way computers work has not really changed over the years. What has changed significantly is the speed and price of computers; that is, computing power per dollar. A computer is a general purpose machine. It achieves its specific purpose by programming. A sequence of instructions sits in memory and the central processing unit (CPU) executes this sequence. The programmer can change the instructions and the computer will be able to do different things. Many special-purpose machines (calculators, control units on heating plants, and so on) are really computers that have been programmed for a specific purpose and cannot be re-programmed by the user, except within very limited parameters. Exercises Review Questions 1. What are the skills and attributes that make a good programmer? Explain. Answers to Exercises Review Questions and Answers 1. What are the skills and attributes that make a good programmer? Explain. A programmer is responsible for the design, construction, and testing of programs. This is primarily a technical job. There are many opportunities to specialize in different aspects of technology; however, there are considerable interpersonal skills needed to work as a programmer. Most programmers work in small teams. In some cases, the programmer works directly with users, rather than through an analyst. Program maintenance and development of small systems often does not warrant the use of an analyst, so the programmer becomes a programmer/analyst. However, the overall orientation of the programmer is towards technical building tasks, rather than the people-based and business Learning Objective 5 165 Computer Science 200 Study Guide (Print Version) problem-solving focus of the analyst. A programmer needs the following skills and attributes: ♦ An excellent knowledge of programming and computer technology. The programmer has to design and build the programs that will run on the computer. ♦ Analytical and problem-solving skills. Program design and construction is a creative process. Although many programs share certain aspects, each program is different, because it solves a different problem. There is no solution cookbook to answer every problem, so the programmer has to be able to develop the appropriate solutions. ♦ The ability to work accurately to detailed specifications, and follow sound design practices. Programming is a painstaking task that requires both creativity and attention to detail. A program is likely to cost as much or more in maintenance as in original development. Most systems need to be changed as business requirements change. That means that a programmer is likely to work on other people's programs, just as the programs they develop will likely be worked on by others. Good standards and documentation are essential to ensure that this can be done. ♦ The ability to work on his or her own and as a member of a team. Most systems involve many programs, and are written by a number of programmers. These programs all have to work together. Because the process of programming is creative, programmers tend to have a high degree of ownership of their creations. While this is good, it can also lead to problems. Some organizations use techniques that encourage egoless programming. These techniques refocus the task by providing team review of all work. ♦ The ability to take pleasure in building things, explore things to see how they work, and experiment to solve new types of problems. Programming is both analytical and creative. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Answers to Exercises 166 Computer Science 200 Study Guide (Print Version) Unit 5 - Section 3 : Systems Analysis, Design and Implementation Back to Unit 5 Commentary In this section, we will look at the tasks involved in planning and designing a potential application. The design generates a set of program specifications. The programs are then acquired (or built), and finally, the system is introduced into the workplace. These activities are part of the job of the systems analyst. They represent a significant effort for customized applications, often involving as much work as the task of programming itself. If planning and design are not done properly, the application might not really meet the requirements of its users. We will look at a number of factors that can cause this to occur, and in particular, the need for user involvement in the analysis and design stages. We will also look at how the role of the analyst is being influenced by the increasing size and complexity of applications required, and how computer-based tools are now available to help in the analysis process. Learning Objectives Learning Objective 1 • Identify the need for systems analysis and design. • Identify the relationship between tools, techniques, and methodologies. • Describe the stages of systems analysis and design, and explain the purpose of each stage. Objective Readings A Historical Perspective on Systems Analysis When looking at anything as new as information technology, the early developmental experiences are bound to be about learning how to do things properly. The methods of doing things in information technology were borrowed from other disciplines, or just made up along the way. Little effort was made to analyze what was needed or how best to satisfy those needs. The focus was on getting to the programming stage quickly in order to produce something. When people first began to program computers, the need to analyze the way systems work and to understand design alternatives was less recognized. This was part of the transition from scientific to business applications of computers. In science, people doing the research understood their requirements, and could program for them. In business, the requirements were shared throughout an organization, and the programming was usually done by someone who was not working intimately with the applications. Early programs tended to be automated versions of existing manual procedures. When applications were improved, they were usually only faster versions of the old ones, and often included both the good and bad features of the original. Initially, applications tended to be small, and problems could be solved easily by reprogramming as necessary. Conferencing 167 Computer Science 200 Study Guide (Print Version) By the 1970s, however, applications were becoming more complex, and systems analysis and design were being formalized. The old ways of working were no longer suitable. The analyst needed good interpersonal skills, as well as analytical skills. Systems analysis involved tasks like identifying business requirements, estimating costs and potential benefits, analyzing existing systems, and developing designs — a long way from the initial approach of working directly with the programmer, or even worse, expecting the programmer to solve business problems! Systems analysis was, and is, a combination of • methodologies: the way to go about developing a system or a system's life cycle; • tools that aid in this process: these may be analytical tools (e.g., like normalization), or software tools (e.g., like Computer Aided Software Engineering (CASE) workbenches); • techniques: these are the skills needed to apply the tools and follow the methodologies. The traditional system development life cycle consists of the following steps: • Identifying a potential application and a preliminary study to ascertain the feasibility of the project and its potential benefits. • Identifying the requirements in detail of the proposed system. This involves studying the existing system and researching additional requirements. • Analyzing the requirements and designing the new system. This involves developing engineering-type diagrams, called data-flow diagrams, of the new system. These diagrams show the flows of data in the system, the processes using the data, and the files needed. This is a top-down design that involves decomposing each function in the proposed system into greater and greater detail, until it is at a sufficient level of detail to identify the specific programs needed. • Documenting the file and program specifications, required performance constraints, and the way the programs are to be tested. • Writing or acquiring the programs. • Testing the programs: individually, and as a suite of programs that make the system. • Developing procedures for the people who use the computer system. • Introducing the system. This may involve training users, and running the old and new systems to ensure the new system works. • Handing it over to the users. Finally, there is some regular review of both the system and the business needs. The advent of databases and integration of applications added another task — that of modeling the data for the organization as a whole, and then using data/function matrices to identify program clusters that would make up an application. Objective Readings 168 Computer Science 200 Study Guide (Print Version) The type of methodology described above uses a "waterfall" model. Although the tools and techniques used in the methodology are still in widespread use, there were some major weaknesses: • Long time cycles: the development process was often measured in years. When the system was finally delivered, the business needs had changed. • It was not always practical to expect the organization to be able to completely define a system before it was built: you often don't know what you want until you can start using it. Knowing what you want and what the technology can do is a learning process, often involving trial and error. • Little or no user involvement in the design: the process of defining requirements was often done by management, without the involvement of the people who currently did the work, and who would use the new application. They were naturally uncomfortable with the idea that someone was changing their work practices without their participation. The people doing the work are often the best resource about what is actually needed to do the job. They see the way things actually are, rather than what is laid out in job manuals, or what is perceived by management. • Little or no involvement of the designer or programmer with the users: the people building the system were working from fixed specifications and often had no real understanding of the business problem being addressed. Where decisions had to be made during design and construction, these were sometimes made by the programmers, rather than the users who could put the decisions in their business contexts. • Done properly, systems analysis is a major exercise in top-down design. It takes significant time and generates a massive amount of design documentation. Without the aid of automated tools to help manage the documentation, it was often perceived as too much work. People were not willing to put in the effort and money involved. Computer-aided design tools help manage the process in increasingly sophisticated ways. Learning Objective 2 • Explain the problems that have arisen with the traditional implementation of these stages, and how joint application development is addressing these problems. Learning Objective 2 169 Computer Science 200 Study Guide (Print Version) Objective Readings 1. Current Practices that Work The issues considered so far have largely been human issues. It has long been known that the success or failure of a new system depends as much on the users of that system as on its technical merit. People make systems work. This view has led to designing and building systems that are highly participative, and with short life cycles. What this means is that the analyst does not specify the system; he or she works with users to develop it. This type of process, often called joint application development, has been shown to work: ♦ Representatives of the users meet with a systems analyst, who functions as a facilitator. The users agree on the highest-priority requirements of the system. The analyst works with them to identify what this means in terms of inputs, outputs, and processes. Often, analysts will use software tools to build rapid prototypes (mock-ups) of the system, allowing them to explore the requirements more fully. ♦ The analyst then works with the programmers to build that part of the system identified as high priority. ♦ The core system components are delivered to the users to test. At the same time, the users work with the analyst to define the next most important requirement. The cycle is repeated, with short time lines and with users of the end product defining requirements and testing the components as they are built. Partial products are produced frequently, allowing the users to explore and adapt their requirements as they become comfortable with what can be done. The analyst advises the organization and users on what is feasible, as well as the product's likely impact on costs, performance, and so on. Much of this process has to go on, whether or not the programming work is contracted out. This mode of working has been made possible by the availability to the analyst of computer-aided design tools to build mock-ups. 2. Looking Ahead in Systems Analysis If we consider the tools, techniques, and methodologies available to analysts and designers, we see that they have been developing just as rapidly as the rest of computer technology. This is important, as the systems now being built are significantly more complex than those of earlier years. Users are becoming more computer literate, and are demanding more from their systems. The role of the analyst has changed as the tools became available to help with systems analysis processes. The joint application development mode of working assumes the analyst has power tools capable of building prototypes. The profession of systems analysis is maturing as better tools are being developed, as well as industry-wide standards of quality. As you look at the way systems are developed, you are probably beginning to understand that careers in information technology are subject to as much change as the technology itself, and organizations often struggle to meet the human resource needs of their information systems function. The level of stability often depends on ♦ the organization's maturity in using technology; ♦ the existing staff and their level of acceptance of change; ♦ the technology itself, because each new advance creates new challenges. Objective Readings 170 Computer Science 200 Study Guide (Print Version) Clearly, the role of the systems analyst has changed to a more consultative one, and the number of individuals with input into the design and maintenance of systems has broadened. Managed and guided user development can be an effective tool, given the high skill levels of many users, and the sophisticated development potential built into many applications. Exercises Review Questions 1. What are the skills and attributes that make a good systems analyst? Explain. Answers to Exercises Review Questions and Answers 1. What are the skills and attributes that make a good systems analyst? Explain. A systems analyst plays a key role in the development of computer applications that will help solve business problems. The analyst is the link between the company management, the users of the system, and the technical staff who will build and run the system. The most difficult part of designing information systems is defining the activities to be done by the computer. Bad decisions here are the most difficult to correct. They have a structural impact on the system that is built. In addition, failure to involve the people who will use the system also risks failure of the project. If the system is not accepted by the eventual users, it is likely to fail, however well the system is built. Here are the skills and attributes an analyst needs. ♦ Taking pleasure in innovation. Everything an analyst does involves questioning existing practices, and looking for ways things can be done better. ♦ Ability to work with people, understand their perspectives, and synthesize these perspectives into an acceptable set of requirements. Any complex system will serve people with different needs and perspectives on business policies and procedures. The analyst must act both as a facilitator in getting agreement on what is needed, and as a diplomat in ensuring all of the players have ownership in the solution. ♦ An understanding of the organization's goals and the system's place in the big picture, along with an understanding of the organization's policies and procedures. Whatever solutions the analyst develops, they have to be approved by the organization. The solutions should both support the goals of the organization, and be consistent with the organization's practices. ♦ Persuasive sales skills. The analyst often has to present the case for change to a skeptical management. Changes usually involve significant up-front costs, and the return on Exercises 171 Computer Science 200 Study Guide (Print Version) investment might not be received for some time. ♦ The analytical and technical skills to know what is possible. The analyst is involved in the design of the system and the definition of the performance requirements. In addition, the analyst works with the technical designers and programmers. These are technical tasks that require analytical skills and a good understanding of technology. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Answers to Exercises 172 Computer Science 200 Study Guide (Print Version) Unit 6: New Challenges and Techniques in System Development Back to top Commentary The rapid growth in popularity of the Internet for business, recreational, and educational use has led to a number of new opportunities and challenges for system developers. Concurrently, new levels of complexity in programming requirements have prompted the development of improved approaches and new paradigms for program design. The tools to implement these emerging software systems include new and vastly more powerful hardware configurations, as well as programming techniques and languages that take a completely different approach to that found in traditional languages. The movement from text-based user interfaces to two-dimensional representational interfaces, and then to virtual reality, means broader user appeal due to a more intuitive control of systems. Section 1 Section 2 Section 3 Section 4 Activities Digital Reading Room Unit 6 Links Quiz 3 Complete Quiz 3. TME 3 Complete Tutor-marked Exercise 3. Course Project 3 Complete Course Project Part 3. Practice Final Exam Complete Practice Final Examination. Conferencing 173 Computer Science 200 Study Guide (Print Version) Unit 6 - Section 1 : Introduction to Object-Oriented Programming Back to Unit 6 Commentary In this section, we compare the traditional programming model to the object-oriented approach. Object orientation in programming languages and applications has broad implications for the development of more modular, flexible, and user-adaptable systems. Learning Objectives Learning Objective 1 • Explain the differences between traditional and object-oriented programming. • Give examples of the changing requirements of system and applications development that have lead to the need for object orientation in programming. • Define and list benefits of the following features and characteristics of object orientation. ♦ Encapsulation ♦ Object identity ♦ Classes and inheritance ♦ Abstract data typing Objective Readings Introduction to Object-Oriented Programming To understand the importance of object orientation as a new programming concept, we must first examine the traditional model of programming. For many years, the concept of a computer program or instruction set was inextricably linked to the model of a sequence of instructions. Sequences could contain short and simple steps, as well as complex loops and branches — all of which combined to create a path or a variety of paths. The commands were often first expressed as an algorithm, which is a description in plain English of the steps required, and an encoding of these steps in whatever language the programmer chooses. The following program is a simple example of the above concept. The program, written in a very simple programming language called BASIC, is designed to obtain input from the user in the form of two numbers, and then to produce the sum of the two numbers as output. The program itself is shown below in capital letters, exactly as it would be written in BASIC, interspersed with the lines of the algorithm, shown here in italics. clear the screen 10 CLS Practice Final Exam 174 Computer Science 200 Study Guide (Print Version) request input with the prompt "FIRST NUMBER?", await the input, and assign the variable name "A" to the number input 20 INPUT "FIRST NUMBER"; A request input with the prompt "SECOND NUMBER?", await the input, and assign the number input to the variable name "B" 30 INPUT "SECOND NUMBER"; B print the result of the calculation A+B to the screen 40 PRINT "THE SUM IS" A+B In this form of programming, the program line numbers determine the sequence of instructions to be followed. Numbering the program lines in increments of 10 makes it easier to insert additional lines later, without renumbering the lines. Some of the more sophisticated traditional programming languages function without line numbers, executing commands in the sequence they are written, and referring to different sub-routines by name; where either a choice of different paths exists (branching), or where one or more instructions are to be repeated (looping). As programs became more complex, the number of branches and loops, as well as the overall number of lines of code required, became unwieldy. The strict linear (or multi-linear) nature of programs also imposed limitations upon their ability to handle complex data relationships. When developing very large programs using traditional languages, programmers faced growing challenges on several fronts. Error checking (or debugging) programs was difficult, and making changes, additions, or improvements required a very complex process to ensure that all the various line, variable, and command references were properly updated. In some ways, the model of a traditional program could be thought of as a large, complicated tapestry, with threads of various colors, thicknesses, and lengths interwoven to form a whole. Extending the metaphor, the tapestry is a representation of a scene in the real world, achieved through the artful combination of elements (threads) which, in themselves, bear no resemblance or relationship to what is depicted in the scene. If we imagine a tapestry depicting a forest, with images of trees, animals, and birds, we realize that the method has certain limitations. Moving an animal, for example, from its original position on the left of a tree to a new location on the right will involve considerable unraveling and re-weaving of the threads. It would be equally difficult to replace, for example, a deer with a moose. Another problem relates to the dependence of the integrity of any one section upon the integrity of the rest. If a single thread breaks, the whole tapestry begins to unravel. The other difficulty with this approach is that each time we want to introduce a new scene, the new images must be integrated with all the other threads in the piece, often requiring that we start completely over with a new design. Making changes in, or additions to, a computer program created using traditional techniques and languages involves similar problems and limitations. The various actions, data items, and events within the program consist of interwoven "threads" of logic that are not modular, are highly interdependent, and cannot be easily Objective Readings 175 Computer Science 200 Study Guide (Print Version) rearranged. Program elements cannot be "plugged in" in a modular way from existing libraries or stocks of component items. By contrast, we can think of object-oriented program models as exactly that: models of the real world they represent. If we were to construct the same forest scene as a three-dimensional diorama (remember the shoebox models we used to make in elementary school?), the process and result would be a great deal more flexible than what is achieved with the "tapestry" approach. Assuming that you have a collection of model objects, such as trees, plants, animals, and birds, you can construct your forest scene by placing the objects in relation to each other within the framework of an overall package (the shoebox). This system of creating self-contained modular functions is often referred to as encapsulation, and is typical of object-oriented languages. These languages provide extensive libraries of essentially modular components that can be grouped, linked, and interconnected as required. When changes or additions are needed, they may be done without major redesign, and often without much additional programming. This capability, a product of encapsulation, makes object-oriented programming a huge improvement to the traditional method. Today, with highly sophisticated users requiring ever more powerful applications and interfaces, the object orientation paradigm has become more than simply an adaptation to the demands of program complexity. With the introduction of object-oriented techniques and tools, the whole manner in which applications are developed and used has undergone a fundamental shift. With network environments from small LANs to the global Internet occupying such a central position in modern computing, a high degree of compatibility between different operating systems, applications, and hardware systems has become a necessity. Users now need and expect to be able to develop and adapt their own highly specialized and very powerful applications. The pace of software development in the marketplace demands that development methods be fast, accurate, efficient in their use of processing resources, and very reliable. Programmers use the term robust to describe a language that can produce reliable, self-correcting programs that will tolerate a lot of modification, adaptation, and a broad range of operating environments without "crashing." The use of object oriented languages and techniques meets all of these expectations to a large degree. In traditional programming, the focus was on the creation of interrelated routines and sub-routines. In object-oriented programming, the focus is on data. Data objects are created and collected into libraries, from which they can be drawn and plugged into different programs as the situation requires, much like our box of model animals and trees. Objects, and their related methods and actions, are grouped together in classes and subclasses. The objects that are created in object-oriented languages, such as Java, are designed to communicate with each other by sending messages. Objects can thus be placed into structured relationships, where they can always "find" each other by name to exchange the information contained in those messages, regardless of how the objects are moved around or recombined. This concept, referred to as object identity, means that individual objects, classes of objects, and subclasses can all be easily referenced, located, and engaged in interrelationships by virtue of having unique object and class names. Objects can also contain other objects as, for example, our model tree might contain a model squirrel. There is a relationship, but the objects are distinct, and in this example, are not related by class Objective Readings 176 Computer Science 200 Study Guide (Print Version) unless we define a "superclass" called "forest life forms." Another of the key concepts involved in object orientation is that of abstract data typing. This means that a set of objects has the same representation for both the objects and their functions. The telephone system can be used as an analogy for abstract data typing. When we want to place a call, we might pick up a regular stand-alone corded telephone, a short-range cordless extension, a cell phone, a coinor card-operated pay phone, or an extension that is part of a switchboard system. All of these use different technologies to connect with the phone companies' trunk lines. Once connected, our call may be carried by land lines, microwaves, fibre optic lines, or a combination of all three before it reaches its destination. The way we place the call is essentially the same in every case, and the objects (telephones) we use to dial and talk are similar enough that anyone who has used one type will easily adapt to any other. The object (telephone) and the function (placing a call) are recognized as a paired relationship in which either or both may take varying forms without changing the essence of the relationship. The objects in a class can be described as having certain common characteristics that can be automatically inherited every time a new object in a class is created. There can be several subclasses and sub-subclasses, as well, and each inherits certain characteristics from the level above, according to the established template for the class. This means that part of the program code that defines an object can be shared by its "descendants," which leads to faster and easier program development. The three areas of computer science most dramatically affected by the introduction of object orientation as an underlying concept are • the further development of existing programming languages and the creation of new ones; • the ability of large, complex databases to support a variety of users, systems, and applications; • a dramatic increase in the use and standardization of graphical user interfaces. View a Java Applet describing Object oriented programming. Objective Readings 177 Computer Science 200 Study Guide (Print Version) Exercises Review Questions 1. Describe how the concept of inheritance contributes to object-oriented programming, allowing for faster and easier program development. Answers to Exercises Review Questions and Answers 1. Describe how the concept of inheritance contributes to object-oriented programming, allowing for faster and easier program development. Inheritance is the term for the way program components or objects, which are defined as belonging to the same class, will automatically assume certain qualities or characteristics generally assigned to the class. This reduces the need for duplication of program code to define those qualities or characteristics, and also reduces the likelihood of error. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Unit 6 Section 1 Links Object-oriented programming Java Applet Exercises 178 Computer Science 200 Study Guide (Print Version) Unit 6 - Section 2 : Developing Web Applications: HTML and JavaScript Back to Unit 6 Commentary This section introduces two of the most significant tools used in the development of World Wide Web resources: Hyper Text Markup Language and JavaScript. Learning Objectives Learning Objective 1 • Describe the development and features of Hyper Text Markup Language. • List several uses for Web pages, specifically including uses that are interactive in nature. Objective Readings 1. Hyper Text Markup Language Hyper Text Markup Language (HTML), a tool for creating and using linked or "stacked" documents, evolved from a concept introduced during the mid-1980s in early models of the Apple Macintosh computer. The Apple HyperCard, programmed using a language called HyperTalk, was the first widespread application of the document and media linking feature that has since become the mainstay of interactive multimedia materials of all kinds. Today, these materials are ubiquitous in the form of both online and locally run multimedia systems for education, entertainment, and commerce. Initially, only text was linked; however, as hardware became more powerful and tools to create and manipulate images and sounds became available, the concept of hypertext evolved into something more accurately described as hypermedia. The basic function of hypermedia is the point-and-click technique to move from place to place within a set of documents or files. For those experienced with the Internet, the most familiar examples of hypermedia are the pages created and presented on the World Wide Web (WWW). A typical Web page might actually be made up of several HTML documents, plus any other multimedia files associated with the documents, such as image or sound files. Within an HTML document, various commands define such things as the colour of text on the page and the background, position, size, and file name of images to be displayed, and perhaps most importantly, links to other parts of the page or to other pages. These links can appear as images (including icons or "buttons") or as text. For example, you might see a sentence like "click HERE to go to the next section" where the word "HERE" is to be clicked in order to open the next page. Users follow links when they "surf" the Web, and jump from one Website to another, or as in this online text, when they connect to different sections of the same document. They may also connect to other applications, such as a media player to run an animation or play a sound, or an e-mail program Unit 6 Section 1 Links 179 Computer Science 200 Study Guide (Print Version) to generate a preaddressed e-mail message. The latter is commonly seen on Web pages, where an image or text button saying "E-mail me" or something similar will, when clicked, automatically open and address an e-mail message for a visitor to the site to compose and send to the owners of the site. The materials for this course, including the parts installed on your computer, as well as the online components and most of the Internet Explorations sites and other WWW sites you visit, are mostly written in HTML. HTML documents can be created or edited using special HTML editors or word processing programs, such as Word, and saving the files in HTML format. The pages they define can only be viewed using browser programs, such as Netscape or Internet Explorer. The basic functions of browsers, plus other online and Internet tools and applications, have been discussed in a previous section. The following examples of simple HTML code will illustrate some of the basics of an HTML document. Observe that there are certain conventions of syntax, such as the enclosure of all HTML commands in special brackets (chevrons), like this: <command>. Many HTML commands are used in pairs, marking the beginning and ending of sections of the document where, for example, a particular formatting parameter is in place. In such cases, the marker at the end of the section includes the forward slash character (/). An HTML document usually begins with the marker <HTML>, indicating that the code following is to be interpreted as HTML, and ends with the marker </HTML>, indicating the end of HTML code. <HEAD><TITLE> MY WEB PAGE</TITLE></HEAD> <BODY BACKGROUND="main.jpg" BGCOLOR="#C0C0C0" TEXT="#000000" LINK="#FFFFFF" ACTIVE="#FF0000" VISITED="#FF00FF"> Above is a typical HTML HEAD tag and BODY tag. The HEAD tag in this example contains only a TITLE tag, which sets the text to be displayed in the title bar of the browser. The BODY tag defines the page background and the colour of different text objects within the page. Let's take a closer look at the section above. <HEAD> indicates the beginning of the header; </HEAD> indicates the end. <BODY BACKGROUND="main.jpg"> defines the image that will be placed as background on the page, much the same way that a Windows wallpaper image is placed on your computer screen or "desktop." The background image could be a pattern or a picture of something, usually either rendered in low contrast and light intensity, or simply providing a border, so as not to interfere with the readability of the text on the page. Depending on the size of the image, it could fill the entire screen or be "tiled" (repeated). The HTML language supports various image file formats, including .jpg (as in this example) and .gif. These three-letter filename extensions are used to distinguish image formats, but the main filename of the image could be any name that follows the naming rules for the programs or operating system being used. For an image to appear in the browser view of an HTML document like this example, the image file would have to be in the same location (drive and directory) as the HTML document containing the reference to it, because the image name has no other location information. If the image file were located somewhere else - for example, in a directory called "Images" - that information would also have to be provided, and the body might look like this instead: Objective Readings 180 Computer Science 200 Study Guide (Print Version) <BODY BACKGROUND="c:\Images\main.jpg"> The section of the header with the following code defines the colours of background and text, including hypertext links: BGCOLOR="#C0C0C0" TEXT="#000000" LINK="#FFFFFF" ACTIVE="#FF0000" VISITED="#FF00FF"> Links that have not yet been clicked generally appear in a different colour than links that have been used. Although the above section breaks the BODY BACKGROUND command into components, it should be understood that it is a single command because it is contained in a single set of chevrons <>. The codes #C0C0C0, #000000, #FFFFFF, #FF0000, and #FF00FF are hexadecimal conversions of the ASCII codes for the colours grey, black, white, crimson, and lavender, respectively. <TITLE>MY WEB PAGE</TITLE> defines the document title. Note that this does not make the title appear on the page, nor is this the file name under which the document will be stored. However, it will appear in the history list, and in the title bar of your browser when this HTML page is loaded. Here is a segment of HTML code that creates a text link to another Web site: <DIV ALIGN=Center> The <A HREF="http://www.webcrawler.com"> Webcrawler search engine site </A> will help you find what you are looking for on the WWW. </DIV> Again, let's analyze the functions of the various components of the code: <DIV ALIGN=Center> and </DIV> mark the beginning and the end of a segment of text that will appear centered on the page. In fact, any text or images placed between these markers will be centered, unless they are associated with other markers specifically defining another position. The positions "left" or "right" can also be used in this context. The entire sentence "The Webcrawler search engine site will help you find what you are looking for on the WWW" will appear on the page, but the words "Webcrawler search engine site" would usually appear in a different colour from the rest of the sentence, and would usually be underlined, indicating that those words constitute a link. Clicking that part of the sentence would activate the link. This is due to the position of those words between the <A HREF> marker and the </A> marker. The actual URL (Uniform Resource Locator) or Web site address for the page being linked to is the text string http://www.webcrawler.com. In other words, when you click the words "Webcrawler search engine site," your browser will take you to that Web address. In the following example, an image, rather than a word or phrase, is used as the "button" to activate the link. When the mouse pointer touches the image on the page, the text in quotation marks following ALT will appear in a small text box over the image, thereby informing the user of the purpose of the link button. <A HREF="http://www.webcrawler.com"> <IMG SRC="spider.jpg" HEIGHT=108 WIDTH=62 ALT="Webcrawler"> </A> Objective Readings 181 Computer Science 200 Study Guide (Print Version) This example of a link to "Webcrawler" differs from the first example, in its use of the line <IMG SRC="spider.jpg" HEIGHT=108 WIDTH=62 ALT="Webcrawler">. This portion of the code defines the image file to be used (a cartoon spider), the size it will be on the page (measured in pixels), and the message that will appear when the mouse pointer hovers over the image. This feature is sometimes known as a "mouseover." There are many more HTML commands and techniques that are used in the creation of hypertext documents, and that may be learned through reference to HTML tutorials and resources linked through the VHD site, as listed in the online resources for this course. One increasingly important aspect of HTML is its use in conjunction with Java applets. Applets are small Java programs that are run from within Web pages. The focus of one of the course projects is on the relationship between Java applets and HTML, in addition to HTML basics and Java tools. Before attempting the project, you should work through one or more of the HTML tutorials linked to the project instructions and resources. Another way to learn more about how HTML is used is to select the menu commands View > Page Source (in Netscape) or View > Source (in Internet Explorer) to reveal the HTML document "behind the scenes" of any Web page you are currently viewing. You can compare the code with the rendered result in the browser window to see what function certain tags perform. HTML is a dynamic language, and has been released in several versions. There is also an extended version (XHTML) and a wrap-around markup system (called XML) used to create style sheets and other administrative and design tools for Web site creation and maintenance. 2. JavaScript JavaScript is a scripting language developed by Netscape Corporation. (Microsoft has developed JScript, which is compatible.) Scripting languages are usually interpreted languages, and are primarily used for quick development and prototyping. What is unique about JavaScript is that its programs are small scripts embedded entirely within HTML documents. They are interpreted by the JavaScript interpreter within the Web browser. JavaScript supplements HTML's static presentation capabilities with the ability to interact dynamically with the user, and add visual enhancements to a page. JavaScript is an object-oriented language, and supplies a complete set of functions and commands for performing mathematical operations, manipulating strings, opening new windows, playing sounds, and verifying user input. There is a great deal of information available on the Web about Java and JavaScript, and many useful links can be found on the SCIS Virtual Helpdesk Page, linked elsewhere in the course materials. Note: JavaScript should not be confused with Java. Java is a full-function, comprehensive, object-oriented language that can be used to program full-scale applications, and includes facilities for networking and distributed systems. Java can be used to write small programs (applets) that can be loaded from HTML pages. However, stand-alone Java programs are only linked in HTML code. Objective Readings 182 Computer Science 200 Study Guide (Print Version) They are never embedded the way JavaScript programs are. Also, Java applications can be developed to run entirely independently of a Web browser, using the Java virtual machine. The Java programming language is covered in more detail in another section of this course, and is also the focus of a component of the course projects. The scope of the coverage provided is not intended to teach you to actually program in Java, although a brief example is described and analyzed. Programming in Java is a topic for an entire course or series of courses. Our goal here is to familiarize you with the tools and processes used in editing, compiling, packaging, and running Java applets and applications, which will help prepare you for later study of the language itself. Activities Links Simple HTML Editor -- a tool for creating simple Web pages. Conferencing Post any questions or comments to the CMC system for your fellow students. Course Project Part 2 - Web Site Development Complete Course Project Part 2. Activities 183 Computer Science 200 Study Guide (Print Version) Unit 6 - Section 3 : Programming 3D and Virtual Reality Back to Unit 6 Commentary This section introduces one of the most significant new tools for the development of three-dimensional interfaces. VRML, or Virtual Reality Modeling Language, provides a standard for the creation of 3D objects and spaces, and can be used in conjunction with a variety of online applications for business, educational, and entertainment purposes. Learning Objectives Learning Objective 1 • Describe the development and features of Virtual Reality. • List the differences between text interfaces, two-dimensional interfaces, and virtual reality (VR) interfaces. • Identify some of the factors that limited, or contributed to, the move towards VR interfaces. Objective Readings Three-Dimensional and Virtual Reality Interfaces There has been a steady progression in the interfaces provided for applications, from command line to 2D graphical interfaces, to the current virtual reality (VR) and 3D interfaces. With VR interfaces, users are able to interact with graphical representations of 3D objects placed in 3D environments with sound and motion. These enhancements allow interactive business and entertainment software, as well as scientific and educational applications, to appeal to the more intuitive user to a degree never before possible. In addition, the power of the applications is also increased, as more complex and dynamic models of real life situations can be developed and displayed. One of the early standard formats for producing 3D objects and spaces for use on the Internet was the Virtual Reality Modeling Language (VRML). VRML is still in use, but it is no longer considered a significant tool in VR. VRML has since evolved into X3D, which is just one of many contemporary languages and programming tools for creating VR graphics. The Java Development System from Sun Microsystems has also included 3D modeling capability since early versions of the Java programming language. Course Project Part 2 - Web Site Development 184 Computer Science 200 Study Guide (Print Version) With VR or 3D development tools, 3D objects and spaces can be designed for use in place of, or in combination with, the generally two-dimensional interfaces of Web pages created with HTML or JavaScript. In a virtual reality model, there may be objects that can be manipulated or used as links. A 3D space can be a "room" in a virtual reality chat site or MOO, or can provide virtual "tours" of actual (or imaginary!) places. VR graphics can change perspective, size, and level of detail (LOD) as the user "moves" around or within them. Both X3D and Java are client/server oriented systems requiring special client software for rendering their 3D images and worlds on your desktop. The client's sophisticated programs interpret the code which can reside on a local file or be served from a remote host with the same software that serves HTML Web pages. Vector graphics programs, such as those used for VR imaging, represent 3D worlds in an x-y-z coordinate system. Objects are organized in a tree structure. The top level is a node representing the world. Below that are all the child nodes (children). Those nodes may also have children. A child shares a common coordinate system with its parent, and can be manipulated as one object with its parent. Common fields are location (in absolute coordinates), translation (from a centre point), and rotation (around one or more axes). Like many other developments in computer applications, VR clients have placed demands upon hardware platforms, which would have been impossible to meet in commercially available personal computers of only a few years ago. Today's powerful desktop computers have the required storage, processing speed, and graphics capability to handle the large data requirements of 3D programming, and the result is an exciting new interface for computer applications. One interesting application of this technology on the Web has been "virtual communities," of which one of the earliest was Cybertown. Cybertown is a complete community in which members can construct and furnish their own homes, and interact with other "residents" through chat rooms, clubs, and shopping. Residents have virtual "jobs" and earn "citycash," the virtual currency of Cybertown. In one sense, this may seem like nothing more than a very elaborate interactive computer game, and to many users, it is probably just that. However, the significance of simulations like Cybertown is much greater, because it has become increasingly evident that many real jobs can and will be done through VR interfaces. The operation of automated factory or plant processes is just one area where VR technology is already applied. In a more dramatic application, both NASA and the US military have active programs involving unmanned controlled flight. They have working prototypes of a variety of unmanned aircraft that can be piloted from the ground with computer interfaces, using a combination of VR and more traditional systems. The VR interface also has enormous potential for e-commerce and online shopping, of which the virtual mall in Cybertown was only a tiny preview. Objective Readings 185 Computer Science 200 Study Guide (Print Version) Whole imaginary worlds, such as Second Life, have been created online, and the combination of massive multiplayer interaction and virtual reality worlds have led to the development and huge popularity of online games such as World of Warcraft, Final Fantasy, and many others, where players have complete virtual lives as characters in artificial worlds. VR software technologies, especially when combined with the appropriate hardware accessories, can give the user the illusion of really "being there." Not surprisingly, it has been in the entertainment industry where the use of virtual reality techniques and tools has been most intensely developed up to this point. However, the potential of VR is also great for more practical applications, such as online learning systems, travel planning, and hazardous environment work, to name just a few examples. VR interfaces, at their best, can reproduce the intuitive human sense of a 3D world, making possible interfaces that look and behave like real objects. State-of-the-art video games and computer animation in movies provide good illustrations of the degree of reality that is possible. VR development tools, especially those that work well for the development of Web-based applications are, themselves, a relatively recent development. The need for VR programming languages and techniques that are "Web friendly," in the sense of being able to generate simulations requiring relatively small amounts of data, has grown in proportion to the increasing use of the Internet. As new broadband transmission technologies make larger volumes of data faster and more economical to transmit, 3D interfaces on the Internet and in desktop applications will become more widely used. In this context, X3D, Java 3D, and other VR technologies will be increasingly applied to training and educational purposes, as well as business and commerce. As electronic commerce and communication continue to grow, a combination of virtual reality and digitized video can be expected to make both interfaces and applications progressively ever more "real" to the user's eye. For further details and examples relating to VR, see the unit links for connections to VR worlds and other resources. Exercises Review Questions • Explain what is meant by the statement that "VR interfaces are more human-centred than anything we have seen before." Answers to Exercises Review Questions and Answers 1. Explain what is meant by the statement that "VR interfaces are more human-centred than anything we have seen before." Exercises 186 Computer Science 200 Study Guide (Print Version) Because VR interfaces present a three-dimensional simulation of a real (or imaginary) environment, objects in them have the appearance of real objects in perspective. Changes in level of detail occur when the viewer looks at objects at different distances, and objects can be made to move and respond in realistic ways. This makes the interface or simulation more intuitive to use, and easier for the human eye and mind to relate to than either the earlier text-based command line interfaces or the intermediate two-dimensional "point-and-click" interfaces. Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Answers to Exercises 187 Computer Science 200 Study Guide (Print Version) Unit 6 - Section 4 : The Java Programming Language Back to Unit 6 Commentary This section introduces the Java programming language. We will examine not only its development and applications, but also look at its structure, and the processes and tools that are associated with its use. We will conclude the unit with the final course project, which will provide an opportunity to gain experience in the editing, compiling, and running of Java applets. Learning Objectives Learning Objective 1 • Describe the development and features of Java. • Describe the relationship between Java applets and HTML documents, and list the types of tasks for which Java may be used in Web pages. • Edit, compile, and run basic Java applets from HTML documents. Objective Readings In this section, we will take a closer look at this very powerful and widely used programming language, which has emerged as a key component of Internet-oriented development. It is beyond the scope of this reading, or indeed this course, to teach you how to program in Java, but we can provide sufficient background and understanding to enable you to use Java applets in your HTML documents, and also to prepare you for any detailed study of programming in Java you may undertake in the future. In previous sections of the course, we have seen how the changing needs and expectations of users and developers have resulted in new requirements for the programming languages used to develop applications. One such requirement was for compact, highly portable languages that could be used to program microprocessors embedded in consumer electronics such as VCRs, televisions, and microwave ovens. A language developer named James Gosling, leading a development team for Sun Microsystems, came up with a new language for this purpose. He originally intended to name the new language "Oak," but after discovering there was already another language with that name, he settled on "Java," after a favorite local coffee shop. Before long, it became apparent that Java had potential beyond the programming of simple control functions in appliances, and it quickly began to gain popularity as a tool for creating embedded applications in Web documents. Functions such as the animation of graphics and text, creation of e-commerce interfaces, and embedding of dynamic charts can be added to HTML documents using Java, which makes Java was a very attractive tool for Web developers. If you have looked at any of the Java applet demos embedded in other sections of this study guide, such as the number conversion demo, the hard disk demo, or the object-oriented programming demo, then you have seen first-hand some examples of how Java applets can enhance Web pages. Conferencing 188 Computer Science 200 Study Guide (Print Version) It should be made clear that Java is not the same thing as JavaScript, although both are used to enhance and expand the capabilities of HTML. JavaScript acts as an extension of HTML, and its code is placed directly within the HTML document. Java programs, however, can either be freestanding applications or applets that are "called" from within an HTML document. JavaScript is also much more limited in its scope and power than Java. When we examine the specific qualities of Java, it is easy to see why it has become so popular in a relatively short time. Java is an object-oriented language. Java is based upon the concepts of object identity, classes, and inheritance, and includes packages of classes, all of which combine to make the language very flexible and powerful. Classes are composed of methods and variables. The programmer can "instantiate" a class to create an object with all the methods and variables of the class, without having to program these capabilities from scratch. Java is platform-independent. The Java "system" includes its own runtime environment and "virtual machine," creating its own platform in whatever hardware or operating system it is placed in, and allowing Java applications to be run on almost any kind of computer. This is a simple Java applet. What is remarkable about Java applets is that they can be independent of the browser and the operating system. As long at the browser supports the most recent Java virtual machine, the applet will run the same in browser A on Windows as it will run in browser B on Linux. Java applications show the same level of portability. However, with a language such as C++, the graphical user interface (GUI) and mouse control are very platform-dependent. Many programming changes would have to be made to "port" a program from Windows to Linux. Java is robust and secure. The small size of the actual language, along with broad compatibility and excellent error checking, make Java reliable and stable. Programmers use the term "robust" to refer to these qualities in a language. Java programs are secure because they run inside their own environment, protected from viruses that may infect the "host" computer. The Java environment also contains the effects of any errors. In other words, when a Java application or applet crashes, the damage and/or dysfunction caused will be confined and limited. Java is compact and powerful. Java is relatively easy to learn, compared to some other languages, and yet it is very flexible and powerful. Java is a true "general purpose" language, although its most common application has been for online systems. Java has become ubiquitous on the WWW because it is, by virtue of its cross-compatibility, highly "Internet-friendly." Objective Readings 189 Computer Science 200 Study Guide (Print Version) One of the most important features and elements of Java are the packages or libraries. Because Java is a small language with relatively few commands, and because it is designed to be object-oriented, many things are done in Java by "importing" a class from one of the many specialized packages available. The packages contain program components that may be used to perform a variety of complex tasks including, but not limited to: • Input/output functions • Graphical functions • Networking functions • Functions for managing and interfacing with shared databases • Security features such as digital signatures and encryption • Media functions, including graphics, sound/video operation, and telephone As we have already learned, the Java environment must be installed on a particular computer before that machine can be used to compile and run Java programs. Most new computers may be able to run Java applets without requiring any additional software, but may not be able to compile applets. The following tools are required to begin working with Java. • A text editor (WordPad or Notepad, for example) to input the actual Java code, and create *.java files. • A Java compiler to convert the code file (*.java) into an executable form (*.class). • A Java-enabled browser, such as Netscape (4.5 or higher) or Explorer (4.0 or higher), which allows viewing of the applet from a Web page which links to it. A Java Integrated Development Environment is available from Sun Microsystems, which incorporates all of these functions into a Java development "suite." It is also important to understand the general cycle and processes involved in the creation of Java applets before we undertake the creation of any actual programs. A Java applet is created and used according to a sequence of events, and a relationship of components that can be summarized as follows. (We will assume that the necessary software is in place, and that the editor and browser to be used are WordPad and Netscape.) 1. The code for the Java program is written in WordPad, and saved as a file with a ".java" extension. We will illustrate this example with a file called "MyApplet.java." 2. An HTML document is created, or a section of code is added to an existing HTML document, which will call or launch the Java applet. In this example, let us assume we are creating an HTML document for the sole purpose of launching the Java applet "MyApplet.java." Assume for this illustration that the HTML file is saved as "MyApplet.htm." 3. The Java code is compiled using the Java compiler, which is usually called "javac.exe." This creates a new file called "MyApplet.class." If there are errors in the code, they will be identified and located by the compiler, and the ".class" file will not be created until all errors are corrected. 4. Once compiled, the applet is run by simply launching the HTML file "MyApplet.htm" from the browser. When the development cycle as described above is complete, we would have the following three files: • the original code in a *.java file; Objective Readings 190 Computer Science 200 Study Guide (Print Version) • the *.htm file containing the HTML code that launches the applet; • the compiled *.class file, which is the executable version of the applet. To make additions or changes to the applet at that point, we would have to edit the *.java file, and recompile it to create an updated *.class file. In addition to simply launching the applet, the HTML code can provide parameters that change the way the Java applet performs. For example, if one of the tasks the applet performs involves displaying a line of text, the specific contents of that text string can be stated in the HTML code, rather than the Java program, as a parameter to be used in the execution of the applet. This allows for certain types of changes to be made without recompiling. The specific HTML code to launch an applet might look like this: < applet code="MyApplet.class" width=300 height=300 > < /applet > In this example, there are no parameters specified for use within the applet, although we have indicated the size of the applet window, measured in pixels. To conclude our look at Java, we will examine a very simple Java applet in detail. This applet is designed to display the phrase "Hot Java!" The line numbers, it should be noted, are not part of the program. (Unlike many other programming languages, Java does not number program lines.) They are included here for reference in discussing the functions of each line. 1. import java.awt.*; 2. import java.applet.Applet; 3. public class Hotjava extends Applet { 4. public void paint(Graphics g) { 5. g.drawString ("Hot Java !" , 50,50); 6. } 7. } This may seem to be an odd looking collection of names, symbols, and commands, especially to the eye of someone with little or no previous exposure to programming. It may also appear to be a lot of trouble to go to in order to display a simple two-word phrase. We should be aware, however, that complete and complex processes of many types can be added to a simple program like this in as little as a line or two, using the power of the Java class packages and libraries. Let's examine the program code above, line by line: 2. import java.awt.*; 1. 3. import java.applet.Applet; The first two lines in the sample program indicate which basic packages are being used in the applet. Basic Java statements like this always end in a semi-colon. It should also be noted that Java is case-sensitive, so we need to be careful when naming files that we use the correct case at all times. In this example, we have named in line 1 the Advanced Window Toolkit (java.awt.*), a collection of classes for basic functions, such as shape drawing and text placement, as well as more advanced "event driven" Objective Readings 191 Computer Science 200 Study Guide (Print Version) classes, like scrollbars and control buttons. Line 2 invokes the basic Applet class called java.applet.Applet. 3. public class Hotjava extends Applet { Once the required packages are named, our sample applet names itself, so to speak, by stating in line 3 that the following commands (enclosed in curly brackets) constitute an applet named "Hotjava." Since Hotjava extends "Applet," it "inherits" all the methods and classes of "Applet." 4. public void paint (Graphics g) { Line 4 calls a method, another component from the Applet class. The use of the term "public" in Java indicates that the class or method named can be invoked (called) from other programs. A class or method may also be deemed "private," meaning that it can only be called within the current program. In this example, the keyword void is also used. This indicates that the method does not return any value, a concept that becomes significant when one begins to call methods that perform calculations and report results, rather than simply performing a basic task. The method called in this example is named paint, and it uses an object instantiating the Graphics class from java.lang.awt. Line 4 is indented, because it is the first line of the applet definition, which began with the first curly bracket. The second curly bracket, at the end of line 4, marks the beginning of the body of the paint method 5. g.drawString ("Hot Java !", 50,50); Line 5 indicates that paint uses the method drawString from the Graphics object and the parameters of the method. The actual contents of the string are defined in the quotation marks, and the remaining parameters are the coordinates that will position the text. The coordinates are measured in pixels from the top left corner of the Java window as defined in the HTML code. If the Java window is 300 by 300 pixels, this would place the starting point exactly one-sixth down from, and one-sixth to the right of, the top left corner. 6. } } 7. } Lines 6 and 7 contain the curly brackets to mark the end of the paint method and Hotjava class, respectively. In conclusion, it should be noted that Java is quickly replacing other languages as the preferred language for new programming students, and can be expected to be a significant tool in future development, especially of Web-based applications. Objective Readings 192 Computer Science 200 Study Guide (Print Version) Activities Conferencing Post any questions or comments to the CMC system for your fellow students. Course Project Part 3 Complete Course Project Part 3. Unit 6 Section 4 Links Java Portability Applet Activities 193