Foundations of Information Processing in Library and Information Science
LIS 452
Graduate School of Library and Information Science
Fall 2008

Section LE
Meets: Wednesday, 6:45 PM-8:45 PM
Online

Instructor: David Dubin
Office: LIS 330
Office Hours Thursday, 9:00 AM-12:00, and by appointment
Phone: 217-244-3275 (217-BIG-EARL)
Email: ddubin
WWW: http://people.lis.uiuc.edu/~dubin/

This document is Copyright (c) 2008 by David Dubin and the Trustees of the University of Illinois. In addition to this syllabus, this course is governed by the rules and guidelines set forth in the Code of Policies and Regulations Applying to All Students and A Handbook for Graduate Students and Advisers which graduate students receive upon admission to the program. Students should also consult, and take to heart, the Professional Guidelines and Codes of Ethics for Library and Information Science Professionals available from the GSLIS main office.

This syllabus is provided to UIUC students as part of the materials for a particular class. However, it may be copied, redistributed, and modified under the terms of the Creative Commons Attribution-ShareAlike license (Version 2.0). The text of that license is available on the Worldwide Web at creativecommons.org. Resources that are linked to or referenced from within this syllabus (e.g., readings, outlines, discussions) are not covered by the license, unless specifically labeled as such.

Required Texts:
David Harel Computers Ltd.: What They Really Can't Do Oxford University Press 2003 Bradley N. Miller and David Ranum Problem Solving with Algorithms and Data Structures using Python Franklin, Beedle and Associates 2006 John Zelle Python Programming: An Introduction to Computer Science Franklin, Beedle and Associates 2004

Scope and Objectives

This course covers the common data processing constructs and computing concepts used in library and information science. The history, strengths and weaknesses of the techniques are evaluated in the context of our discipline. These constructs and techniques form the basis of applications in areas such as bibliographic records management, full text management and multimedia. No prior programming background is assumed.

Objectives

This Syllabus

The official syllabus for this course is the SGML version that is linked off the class web page. Expressions of the syllabus in other formats are derived from the SGML version. The current SGML version should be consulted to resolve any inconsistencies among other renditions.

Accessibility

To insure that disability-related concerns are properly addressed from the beginning of class, students with disabilities who require reasonable accommodations to participate are asked to contact the instructor as early as possible.

Registration for fewer than four credit hours

Graduate students are permitted to enroll in this class for two credit hours, rather than the usual four. Those students are expected to complete all assignments with the exception of the term project.

Basis for Grading and Evaluation

The most important standards for success in a class like this one are the educational goals that students bring to the class. Your instructors hope that the activities, assignments, and presentations planned for this semester will be instrumental in your achieving the goals you set for yourself. Each exercise and assignment has been selected to provide an experience that will foster your own learning. Do not think that grading and evaluative feedback are meant as assesments of your success or failure in the class: they are provided as an incentive to engage with the material to the best of your ability, and as a diagnostic, to make sure we find out if you're not getting the benefits that the assignments should provide.

Final grades for graduate students enrolled for four credit hours will be calculated as follows:

Final grades for graduate students enrolled for two credit hours will be calculated as follows:

Evaluative and constructive feedback

Students are entitled to both evaluative and constructive feedback on the assignments. Evaluative feedback reports how well a completed assignment satisfied the requirements for a grade. Constructive feedback provides more detailed criticism of the work, and suggestions for improvement.

It is the policy in this class to provide evaluative feedback privately to students when an assignment is returned after grading. However, constructive feedback will be provided in a public forum (usually the class message boards) prior to the time that the assignment is due. The implication of this policy is that students must contribute work for public review far enough in advance of an assignment's due date for the work to be evaluated and commented upon.

On Adapting the Work of Others

Criteria for grading homework assignments include (but are not limited to) creativity and the amount of original work demonstrated in the assignment. However, students are permitted to use and adapt the work of others, provided that the following guidelines are followed:

Submitting Assignments to the Instructor

All assignments, including code, sample input and output, and documentation must be submitted in machine readable form. The instructors will discuss detailed requirements for file naming, packaging, and submission for each assignment.

Assignment 1: Variables Branching and Looping

This assignment is due no later than October 2.

Write a Python program and document it with appropriate comments. The program should demonstrate the use of loops, branching logic, and named variables. The exact functionality of the program is up to you. Assignments completed by students in earlier semesters include the following:

Assignment 2: Subroutines and File I/O

This program is due no later than October 15.

Write a program and document it with appropriate comments. The program should have a main routine and at least two functions or subroutines. The program should read input from a disk file and write output to a disk file. What else the program does, exactly, is up to you. Assignments completed by students in earlier semesters include the following:

Assignment 3: Object Class Design

This program is due no later than November 5.

Design an original object class, like those we've discussed. Write an application program that implements and employs the class. Follow these guidelines:

Assignments completed by students in earlier semesters include the following:

Assignment 4: Data structure application

This program is due no later than December 3.

Write a program and document it with appropriate comments. The program should use a stack, queue, tree, or heap to perform some interesting computation. Assignments completed by students in earlier semesters include the following:

Midterm Evaluation and Final Exam

All students enrolled in the class are required to complete the midterm evaluation and final exam. The tests will cover the material presented in class and in the reading assignments. The format for the tests will be questions that can be answered in one to three paragraphs.

Term Project

All graduate students enrolled for four credit hours must complete a final project that has been approved by the instructor. The final project represents in-depth investigation of a topic related to data processing, in the form of a computer program and supporting documentation. Proposals for term projects are due no later than October 29. Completed projects are due on December 12 at 5:00 PM, central standard time.

The program must be submitted to the instructor as machine-readable source code, but may be programmed in any language approved by the instructor. Like the program, the documentation must be prepared and submitted in machine-readable form. It should either conform to a standard online format (such as texinfo or man), or take the form of a report prepared using a declarative markup language (e.g., DocBook or LaTeX format).

Class Participation

The class participation grade is based on consistent attendance, contribution to in-class and/or online discussions, and providing assistance to classmates outside of class. Please alert the instructor if a classmate has been of help to you outside of class.

Milestones

To keep on track with the course material and assignments, it is recommended that students master technical competencies according to the following schedule. No grades are assigned for these.

General Technical Milestones

Python Milestones

The following milestones are specific to Python programming:

Semester Outline

Librarianship, information processing and information literacy . August 27
Topics: What does it mean for anyone to be "computer literate?" What learning goals do you have for the semester?

Readings: Syllabus, MS Computer Literacy Requirements

Computers, programs, and algorithms . September 3
Readings: Harel 1; Zelle 1-2

Binary representation and file structures . September 10
Topics: Scalars and collections, typed variables, number systems

Readings: Zelle 3-4

Control structures . September 17
Topics: Branching and iteration, flow of control

Readings: Zelle 7-8

Functional decomposition . September 24
Topics: Functions and procedures

Readings: Zelle 6; Miller and Ranum 3

On Campus Session . October 2
Topics: Automata, regular expressions, Linux and X-Windows,

Readings: Finite state machine reading, Regular expression reading

Assignment 1: variables, branching, and loops : Due at 5 PM.

Object orientation I . October 8
Topics: Methods, object identity

Readings: Zelle 5

Object Orientation II . October 15
Topics: Inheritance, polymorphism, operator overloading

Assignment 2: subroutines and file I/O : Due at 5 PM.

Midterm evaluation distributed : Due October 22, 5 PM.

Readings: Zelle 10, 12

Algorithms and data structures I . October 22
Topics: Addresses, pointers, references; dynamic and anonymous data structures: linked lists, stacks, trees

Readings: Zelle 11, Miller and Ranum 2

Computational complexity I . October 29
Topics: logarithmic, linear, polynomial order

Final project proposal : Due at 5:00 PM.

Readings: Harel 3; Zelle 13; Miller and Ranum 4

Algorithms and data structures II . November 5
Topics: Heaps, sorting, hashing

Assignment 3: object class design : Due at 5 PM.

Readings: Miller and Ranum 5, 6

Computational complexity II . November 12
Topics: N-P Completeness, satisfiability

Readings: Harel 4

Theory of computation I . November 19
Topics: Turing machines, nondeterminism, generative grammars

Readings: Turing Machine reading

Thanksgiving break . November 26

Theory of computation II . December 3
Topics: The halting problem, Church's Thesis, Goedel's theorem

Assignment 4: data structure application : Due at 5 PM.

Readings: Harel 2

Wrapup and Evaluation . December 10
Term project : Due December 12 at 5:00 PM, central standard time

Final Exam . Week of December 19