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