This course -- Introduction to Information Science -- has been the subject of much discussion and debate over the last two decades. When I arrived in 1986, I was asked to redesign the course and did so refining it over several iterations. In 1998, when asked to offer the course again and I did another major redesign – based on what had changed over the intervening decade.
The course has been scrutinized for several reasons:
· The skill levels and expectations of our entering graduate students are diverse.
· Information science is an evolving field. Both the subject of study and the tools we use are changing rapidly.
· A simple, direct and unambiguous definition of information science still doesn’t exist.
I have tried to address these issues in this course. There will be a strong emphasis on understanding basic concepts and ideas, and these will be tempered by historical analysis of important events and developments in the field. There will also be a strong emphasis on basic skills that will be of use in other courses. Because some students will have these skills and others will be lacking, students will be grouped such that more skilled students can develop skills in presenting what they know while students lacking skills can pick up needed skills. Finally, there will be major projects that we will do as a class that will introduce analysis and design skills.
We begin on the following pages with a few preliminary comments about what information science is and is not and about the changing nature of the field. I also address some thoughts to the nature of the skill set required by information professionals.
Think about it. You know what information is. At least you know when you get some. On the other hand, few of us can provide a scientific definition of information – one that can be used to measure information and predict what will happen when information is provided or denied in a given situation. Ultimately, we as professionals in this field will need to do a better job of predicting accurately the result that will be achieved when we build an information system. For now, we are working at the problem at a number of levels of sophistication.
As the oldest department of information science in the country, it could be claimed that information science is what we say it is. This is a very uncomfortable position to be in. The broad boundaries of the field are well defined. Anthony Debons, a Professor Emeritus of the department, has devoted a book to the subject (Information Science: an Integrated View) in which he suggests the science of information is concerned with better understanding and designing information systems and:
“The information system is an environment of persons, machines, and procedures that augment human biological potential to acquire, process, and act upon data.”
James G. Williams, a former professor and brilliant practitioner, provides the following in "Information Science: Definition and Scope" from the book Information Science: Still an Emerging Discipline:
“The study of information as a phenomenon, a process, a system, a product, and a service which extends human cognitive capabilities through the systematic application of information processing functions using appropriate technologies and methodologies.”
Knowing these men and their work, I tend to agree with the broad boundaries they use to circumscribe the field. At the same time, a precise, scientific and universal definition is still lacking and various definitions are regularly debated by faculty and graduate students. This course will look at the history, the basic concepts, and the basic paradigms in the field. We will look at several of the more important technical and conceptual definitions. I also invite you to think about the definition.
Change is a funny thing. What appears at times to be rapid change and innovation is upon closer examination found to be part of a much longer chain of events. Consider three “recent” developments – Java as an object oriented design language, the graphical interface of Windows98/2000, and the web. Some would see these as developments of the last decade. In reality their heritage is much older.
· Java is the result of more than a decade of effort at SUN that was initially directed at the development of a language for internet appliances in the early 1990s. Java is actually based on concepts introduced in Smalltalk, which some consider the first “pure” object oriented programming language. Smalltalk was developed more than 25 years ago!
· The graphical user interface we take for granted today was actually developed in the 1970s. (I was using a workstation that had all the capabilities of Windows 2000 in 1981, at the same time I was buying my first PC!)
· The World Wide Web, or “the web” is seen by many as a phenomenon of the last 5 years. In reality, the web is based on client server system design developed in the late 1970s, structured documents developed in the early 1980s, and networking technology – the internet – that has been around for more than 30 years!
Over the last decade researchers having been working on neural networks, Bayesian logic systems, spatial cognition, visualization, wireless networks, geographic information systems, object oriented design methodologies, advanced hypertext systems, embedded systems, etc. All of these topics are the subject of research work by our faculty. Over the next decade, the new ideas that are incubating in the academic and industrial research communities will find their ways into the mainstream. This course will endeavor to introduce many of these concepts and ideas and talk about how they constitute a computing fabric for the future – a fabric that may at times looks more like a patchwork quilt than a seamless piece of cloth, but non-the-less, a fabric. We will focus on the deep conceptual nature of the emerging technologies.
It is difficult to design an introduction to information science that meets the diverse backgrounds of our students. There are a series of skills needed in information science. These include both knowledge of the domain in which the information system is to be designed and knowledge of information system design. This second set of skills includes:
· Basic knowledge of information technology and its roles
· Basic skills in programming and operating systems
· Core knowledge about information, cognition, technology, and systems
· Core skills in analysis and design of systems
· Management and communication skills
Some of you have solid skills in technology, programming, and operating systems. Others of you are very weak in this area. Some of you have strong communication and management skills. Others are weak in these areas. It is frequently the case that those who are strong in technology are less sophisticated in management and communication. The other courses you will take in the department will address the core competencies you need to develop. This course will exploit the tendency of uneven strengths in technology and management by inviting those of you with strong technology skills to play roles in coaching and management. Keep in mind that employers most frequently ask us if students are good communicators and managers. They assume you are all technically sound and look to distinguish those they will employee based on their auxiliary skills. Here is one opportunity for you to increase your skills in the area you are weakest.
This course provides an introduction to information science from several different perspectives. We will discuss some of the important ideas in the field, and will look at some of the research initiatives in the department. The course will blend exposition with discussion. It will also blend analysis, design, and implementation activities with the exposition and discussion processes.
There are four broad course goals:
· to examine some of the important moments and people in the development of information science and to look to the future.
· to explore some of the fundamental concepts of information science that may serve as the basis for future work in courses in the department.
· to introduce some of the basic skills that will help you to make the most of your experience in the department.
· to introduce you to some of the faculty in the department in order to assist you in better identifying the teachers and subject matter focus you will choose to pursue in the department.
There are four books required for the course. They are all paperbacks and will be the basis of the quizzes in the course. The books may be obtained from the Pitt bookstore or any other source you wish.
· Michael Hiltzik, Dealers of Lightning: Xerox Parc and the Dawn of the Computer Age. HarperBusiness, 2000, ISBN 0887309895.
· Tim Berners-Lee, Weaving the Web. Harper, 2000, ISBN 006251587X
· Michael Dertouzos, The Unfinished Revolution. HarperCollins, 2002, ISBN 0066620686.
· Gershenfeld Neil, When Things Start to Think. Owl Books, 2000, ISBN 080505880.
The following books represent additional resources. They may be of interest to you as you are pursuing one or another of the assignments in the course. The list is far from complete. You should not buy these books unless one strike you as important for your bookshelf. I simply want you to be aware of them.
I have used a number of books over the years in this course. I consider all of them good reading and something that you might want to consider for your collection. They include, in no particular order:
· Mark Buchanan, Nexus. Norton, W.W. and Company, 2003, ISBN 0393324427.
· Ray Kurzweil, The Age of Spiritual Machines, Penguin, 1999, ISBN 0140282025.
· Michael Dertouzos, What Will Be. Harper, 1997.
· Peter Denning and Robert Metcalfe, Beyond Calculation: The Next Fifty Years of Computing. Copernicus Press, 1999.
· Nicholas Negroponte, Being Digital. Knopf, 1995.
· John Seely Brown and Paul Duguid, The Social Life of Information, Harvard Business School Press, 2000.
· Robert Lucky, Silicon Dreams: Information Man and Machine. St. Martin's Press, 1989. (out of print)
· Donald Norman, The Design of Everyday Things, Doubleday, 1990.
The books listed below, may be of use if your develop an interest in the history of computing.
· Martin Campbell-Kelly and William Aspray, Computer: A History of the Information Machine. Basic Books, 1996. A first rate and engaging history of the people and events that shaped the growth of the computer industry in the United States.
· Dennis Shasha and Cathy Lazere, Out of their Minds: The Lives and Discoveries of 15 Great Computer Scientists. Copernicus, 1995. A very readable and entertaining treatment of 15 of the modern contributors to the field. Done via interviews and newspaper style reporting, it does a great job a presenting some difficult concepts in very simple form.
· Adele Goldberg, A History of Personal Workstations. ACM Press, 1988. An excellent compendium of the luminaries in the field of personal workstations. The conference proceedings, selected seminal reprints, and edited question and answer sessions are exceptionally well woven together.
I have chosen a few books below that provide an introduction to C and Java, Windows and Unix, and interfaces. A word about the choices is appropriate.
It may be the case that you will program in Visual Basic, or C, or C++, or Java, or Perl, or XML. Whatever language you work in, you should become familiar with the intricacies and capabilities of the language. A case could be made for any of several languages as a "core language". Surely FORTRAN and COBOL would have to be considered if one looked at legacy code. I like C because I feel it plays an important parental role in defining the procedural aspects of C++ and Java. I have chosen Java because it appears to me to be the object oriented language of choice both in terms of its portability and in terms of the vast scope of the library of packages being developed. While code fragments and examples of algorithms provided in this course will be done in C, you may submit any required assignments for this course in any general purpose programming language.
We will spend some time talking about Unix in the course. This is not to express a preference for Unix over the MacOS, or WindowsXX, or NT or MVS or VMS. The fact is that the future will probably be some mutation of these operating systems that better supports true distributed computing. The focus on Unix is driven by two considerations. First, while Windows dominates the desktop market and NT/2000 has made great inroads as a server operating system, Unix still occupies a leadership position for serious systems. Thus you will need to understand Unix for some advanced courses. Second, Unix is a very accessible operating system. For the user who wants to understand how an operating systems works, much of what you want to do is visible and accessible. Perhaps only the original DOS for the PC was more open and accessible. It takes only a few minutes to modify the Unix interface or to add new capabilities. For this reason, we will look at Unix when we provide examples. These same capabilities exist in all the modern operating systems, although they may be harder for a user to access and manipulate in some than in others.
Finally, we will look a little at interfaces. Without a doubt, Windows is the dominant interface on the market today. At the same time, in the Unix world, X dominates. X, Mac, Windows, and CUA interfaces all provide the same basic capabilities. In my opinion, the most powerful and best constructed set of interface libraries are those developed for the X window system. While all interface standards are quickly being eclipsed by the Microsoft Foundation Classes, I would still contend the MSFC library becomes easier to understand once you have looked at the X Window system. At the same time, Java Swing is emerging today as the next generation interface design environment and Visual Basic's approach to the MSFC provides the most easily accessible tools. Pending the skills and capabilities of the class, we will examine one or more of these approaches.
You will find a variety of different books in the Pitt bookstore. As a part of your graduate study, you should delve more deeply into issues of operating systems and languages. Pick up books that read well to you and offer the hope of expanding your knowledge base. This instructor's personal preferences for C and Java are:
· For beginners: Kelley and Pohl, A Book on C, Benjamin Cummings, 1990.
· As a reference: Kelley and Pohl, C by Dissection: The Essentials of C Programming, Benjamin Cummings, 1992.
· C to C++: Pohl, C++ for C Programmers, Benjamin Cummings, 1989.
· For beginners: Deitel and Deitel, Java: How to Program, Prentice Hall, 1999.
· As a reference: Wrox Press, Java Server Programming, Wrox, 1999.
For Unix, I find the following two books of use:
· For beginners: Holsberg, Unix Desktop Guide to Tools, SAMS, 1992.
· For beginners: Sobell, A Practical Guide to Unix System V
IS 2000 will be more or less difficult for you depending upon your skills and capabilities.
· The course requires a fair amount of reading. None of the reading is particularly difficult. If you are not a native speaker of English, you will need to budget more time for the reading. All assigned readings are to be completed before the class for which they are scheduled. Unannounced quizzes will be given during the term to assess student conversance with the assigned material -- sorry, I have found no other mechanism for motivating this requirement.
· A second variable in how difficult you will find this course has to do with your skill level. If you are a good C programmer who can find your way around a Unix operating system and have written a GUI as well as a home page, you should find none of the assignments in the course to be any problem. On the other hand, if you can't program, don't understand operating systems, have never built a GUI (that is a Graphical User Interface) and don't know how to make home pages, you have some work ahead of you.
Beyond the readings and skill development, the following are the requirements for the course:
During the course of the term, students will be invited to discuss the readings for the week. In addition, the instructor will in the process of lecturing ask the class for input, suggestions, and answers. The instructor will evaluate your participation in this process as well as the questions and effort you make outside of class. If, by the end of this class, I can't associate your name with some level of participation, it is possible you will get a 0 for this component of your grade -- making it very difficult to get more than a B in the course. It is your responsibility to get involved. This evaluation will account for 0-10 points toward your final grade.
Each student will prepare and mount a set of personal web page on the departmental Unix system. These pages will be linked to the departmental page and should take on a form suitable for presentation as a personal/professional page. That is, while they may display personal information, they should be designed to serve as a professional web page as well such that they might be presented to potential employers as indicative of your strengths and capabilities. It is anticipated that you will keep them current during your tenure in the department -- and potentially beyond. The quality of the home page will constitute 0-15 points toward your final grade. The following criteria will be used:
· Well formedness of the HTML – you should comply with xhtml
· Overall page aesthetics
· Use of tags with appropriate attributes
· Organization of the pages to speed information acquisition
· Use of images, forms, or CGI scripts to enhance the page
At some number of points during the term, the instructor will administer quizzes on the reading material assigned to that point in the course. It may focus simply on that weeks readings or it may encompass the readings from several weeks. Your scores on these quizzes will constitute 0-30 points of your final grade.
At the point of this syllabus was composed, it was anticipated that the class would engage in a usability analysis of the RAPAI system. (See http://webdev.sis.pitt.edu) This may change and you will be informed of the target of the analysis during the term. This activity will constitute 0-15 points of your final grade.
About 30 percent of your grade will be devoted to activity of your own choosing. This may take any number of forms, but in any case, will involve analysis, design, and implementation of a system. Typically, the kinds of things that can be accomplished in the scope of this course will be:
· Tutorial development
· RAPAI development
· Web Development
Tutorial Development: A fair portion of this course will be devoted to basic skill development. Some of this will be done via instructor lecture, some will be done by your doing, and some will be done by small group tutorials. Early in the term, we will administer a self-diagnostic skills assessment. If you score high in one or another of the areas in this assessment, or if you have strong skills in some particular area, you may want to offer a tutorial on the subject. You will be required to offer the tutorial at least twice and to translate it into a web form.
RAPAI Development: The RAPAI project that you will assess is an ongoing research effort. There will be opportunities for individuals who are strong programmers to become involved in designing or refining new parts of the RAPAI project.
Web Development: The instructor maintains a number of websites that contain information for use by students. Two of these sites – the Hall of Fame and Distributed Computing – would benefit from upgrades. Students may individually or in groups take on some portion of these sites and redesign them.
Grading will be based on performance on the requirements specified above. Of the possible 100 points that might be earned, grades will be as follows:
· 90-100 = A
· 80-90 = B
· 75-80 = B-
· 60-75 = C
· 0-60 = F
As indicated above, the readings set for each class are to be done in advance of the class and the student is to be prepared to take a quiz or answer in class questions related to the assigned readings. In the listing of the assignments below, the following abbreviations are used: WW = Weaving the Web; DIL = Dealers in Lightning; TUR = The Unfinished Revolution; and WTSTT = When Things Start to Think. All numbers refer to chapters to be read.
· The assessment test will be due week 2 of the course.
· The home page assignment will be due week 3 of the course.
· Your commitment to a final project will be due week 5.
· The RAPAI project Assessment will be due week 6 of the course.
We will try to follow the outline presented below. The instructor may choose to deviate from this schedule for a number of different reasons in which case you will be informed in class of specific changes. In lieu of a specific in class announcement of a change, the lecture topics and reading assignments are as follows:
Assignment: Skim all four books
· Syllabus Review
· Course requirements
· Department facilities
· Work groups
· Overview of the course
· Web Basics
· Design Considerations
· SIS setup
"Computer (n) one who computes; a calculator, reckoner; specifically a person employed to make calculations in an observatory, in surveying, etc. (OED)
Assignment: WWW: 1-7
· Early Computer Tasks
· navigation tables,
· ballistics tables,
· calculation (mathematical tables),
· record keeping,
· shortest paths,
· image processing
· Some of the Pioneers
· Turing and Von Neuman
· Bachus, Kay and Knuth
· The Cognitive Connection
· Simon and Newell
"One if by land, two if by sea" (Paul Revere)
Assignment: WWW: 8-14
· analog to digital conversion
· manipulation of digital representation
· coding issues
· correction issues
· compression issues
· using knowledge to interpret data
· the relationship between the system (human) and the data
· statistical representation of language
“The bearing of a child takes nine months, no matter how many women are assigned”, Fred Brooks, the Mythical Man-Month, 1975, p17.
Assignment: DIL: 1-8
· System Analysis and Design
· Types of Systems
· office systems
· real time systems
· database systems
· intelligent systems
· interactive systems
Assignment: Read the man pages for the shell you use and learn to use answerbook
· Operating systems basics
· system resources
· system management
· system messages
· race conditions
· system functions
· Operating System, a practical introduction
· Compilers and Debuggers
· Shells and GUIs
· Web Organization
Assignment: DIL: 9-17
"People like to locate information spatially, and that fact tells us something important about the way men and information interact” George Miller, Psychology and Information, American Documentation, July, 1968.
· cognitive frameworks for HCI
· knowledge representation and mental models
· interface metaphors
· social aspects of computing
Assignment: DIL: 18-26
· Interface Design
· principles of design from cognitive psychology
· classes of interfaces
· virtual and ubiquitous paradigms
· The psychology of visualization
· The computing of visualization
· The information science of visualization
· Applications of Visualization
· data mining
· browsing and finding
· seeing and intuiting
Assignment: TUR: 1-5
· methodology for design
· methodology for implementation
· Data Structures, Records and Objects
· stacks, queues, arrays, pointers and linked lists
· structures and members
· records and structures
· structures of pointers
· functions as structure members
· the step to objects, methods, messages, and interfaces
· inheritance, and polymorphism
· CORBA and OLE
· SOM and DCOM
· Natural Language Processing
· The difficulty of text I/O
· Early efforts at NLP
· Representation of grammar
· Speech recognition and synthesis
· Speech processing
Assignment: TUR: 5-9
· Basis of event loops
· Event handlers and callbacks
· Event structures
· Message passing
· Basic methodology in MS Windows
· Basic Methodology in X Windows
Assignment: Learn to use either Unix or PC compilers, linkers, and debuggers
· creating a makefiles
· selected system calls (fstat, readdir, flock, getenv, setenv, pipe, system and fork)
· using a debugger
· structures, arrays and pointers
· Libraries and object files
Assignment: WTSTT 1-5
"Any discipline that calls itself science is likely not yet one; similarly occupations feeling the need to modify their occupation with the adjective professional, are likely not to be among those we label professions" (MBSpring)
Assignment: WTSTT 6-9
· software metrics
· the mythical man-month
· design tools
· CASE tools
· budgeting and personnel management
· from data processing to communications management
· information warfare and security issues
· professional responsibilities
· the impact of the information revolution
· the economics of information and telecommunications
· supporting research of the artificial
In order to bring your web page up on the departmental website, you will need to do a number of things.
· Get an account on the departmental Unix system.
· This will allow you to log into any of the SUN workstations in the lab or into paradox using telnet from a PC or workstation outside of SIS.
· Keep in mind that the department has a shared file system (NFS). This means that if you are logged into any of the sun workstations or servers, all of your files are accessible (regardless of what machine you are using.)
· The department has a number of web servers. The main servers are known by the names www.sis.pitt.edu, and www2.sis.pitt.edu. Right now these names both point to the same physical machine.
· The departmental web servers have a file space that is accessed when the web server is contacted. The server also accesses the NFS file space when the address given includes a “~” as the first character of the file name. If the characters following the ~ are your login name, the server will look in a directory called “public_html” for the file named on the rest of the line.
· Files that you place in a public_html directory of your part of the NFS filespace will be visible through the departmental webserver.
· Log into a workstation or telnet to paradox.sis.pitt.edu. After the initial messages, you will get an operating system prompt. You can now access any of the software on the system or manipulate files or your part of the file system.
· Make a directory for your files. Type “mkdir public_html” and press enter. This creates the new directory where your HTML files will be stored. Any file stored in the directory subtree public_html in your home directory is accessible as a file on the website http://www.sis.pitt.edu/~loginname/filepath where loginname is your loginname and filepath is the filename or directory path and filename under public_html
· Change the protections on your home directory and on your public web directory as follows: type “chmod 711 .” and press enter to make your root directory accessible to the server; type “chmod 755 public_html” and press enter to make the web directory accessible. (Later you will need to change the protections of any files you create in this subtree as well.)
· Type cd public_html to change to the directory that you just created. The prompt should now read: “XXXX:public_html>”
· Start an editor to build your files. We have several editors available. The simplest is a simple text editor known as pico. It will work using any type of connection. If you are connected via one of the workstations or as an X display server you can also use Netscape or nedit. We will assume you are using the lowest common denominator – pico. Type “pico index.html” This will create and open the file index.html.
· Type in the information you want displayed as your homepage in a browser like Netscape. For starters, we will build the simplest of home pages so you can be sure what you are doing is working. Good HTML pages use all capital for “tags” and the following tags are the basis for all html pages:<HTML> <HEAD> <TITLE> The Title Of My Page </TITLE> </HEAD> <BODY>The text on my page. </BODY> </HTML>
· The text of the title should be descriptive of the contents of the page. This is NOT what will appear on the screen, but rather what will appear in the colored bar at the top of the browser window
· The body text is what appears in the browser window. There are literally dozens of additional tags which can be used here.
· Your document is now ready for viewing. Exit the editor and type “chmod 644 index.html”
· Open Netscape, place the cursor in the location window and delete Pitt's address from the window. Then type in the address of your home page which will be http://www2.sis.pitt.edu/~yourloginname/
At this point, you should see the text you typed into the file through a browser. Now you want to make that more exciting. Here are some ideas to get you started. All of this goes between the tags <BODY> and </BODY>
· Begin with the tag <H1> which stands for the largest size heading (heading sizes range from 1-6 with 6 being the smallest). Type the text of the title and then end the heading tag </H1>
· You may now begin typing the body of your document. Every paragraph should be surrounded by paragraph tags <P> and </P>
· To add a hyperlink to your document, that is to link your document to another document on the web, you must know the document's URL (Uniform Resource Locator) (looks like: http://www...). Here are the steps to create a link to the University of Pittsburgh's home page:
· Begin by creating an “anchor” -- <A></A>. The text to appear on the screen will be placed between the tags. Type something like “University of Pittsburgh.” This is the text that will be colored and underlined on your page
· Now tell the Browser where the anchor should take the user. This is done by providing an “href” or “Hypertext Reference” for the anchor. Modify the <A> tag by providing the location of the pitt page -- <A HREF="http://www.pitt.edu/"> When you click on this text, it will lead to Pitt's home page.
· Some additional tags you might want to use are:
· <BLOCKQUOTE> </BLOCKQUOTE> will indent the text between the tags from both sides.
· <CENTER> </CENTER> will centers the text between the tags.
· <UL></UL> will create a bulleted list of items. Each item will be surrounded by <LI></LI> tags
· <HR> (will insert a horizonatl line on the page leaving a blank space above and below; does not need an end tag);
· <BR> (inserts a line break
· If you want to add an image to your document, enter the image tag where you want the file to be placed. The image tag takes the form of <img src="name of image file"> . You should make sure that the image file is in the public_html directory of your Paradox account before you try to use it. (If the image is currently on a disk, see the instructions to "ftp" it to your Paradox account.)
The basic idea behind this exercise is to encourage students to help each other with the pragmatic aspects of using systems and getting work done. Some students waste enormous amounts of time trying to do things the hard way. Topics include the following:
· Related to using Unix systems
· using editors: xemacs, nedit
· using mailtools: messenger, pine, eudora
· using window environments: CDE, windows
· using shells: bash, csh, tcsh (history, completion, variables, functions, and scripts)
· Related to understanding coding, compilation and linking
· using makefiles
· using integrated development environments and debuggers
· using libraries (math, net, etc.) and packages (swing, util, io)
· advanced coding -- pointers, objects, and system calls (fstat, readdir, flock, getenv, setenv, pipe, system and fork)
The web project is intended to provide a design experience. The project will be involve the entire class working as a team. Depending on the skills present within the class, the broad parameters of the effort will be expanded or contracted. The web design project will develop a tutorial site on basic computing skills.
The task will be to build a coordinated web site that will incorporate pages on basic skills required by the program. The project managers and group leaders will meet to come up with a design for the web site. Once this design is firmed up, the management team will produce a style guide and delivery instructions for the rest of the class. After the pages are constructed, the project leaders will be responsible for bringing them together, cross referencing and indexing them, and presenting the final project to the class.