Indiana University of Pennsylvania

1999-2000 Undergraduate Catalog
Indiana, Pennsylvania 15705

Computer Science

Department of Computer Science
College of Natural Sciences and Mathematics

Credit designation below title is expressed in (c) class hours per week, (l) lab or (d) discussion section hours per week, and (sh) semester hours of credit per semester.

CO101 CO105 CO110 CO201 CO205 CO220 CO250 CO281 CO300 CO310 CO315 CO319 CO320 CO345 CO355 CO360 CO362 CO380 CO405 CO410 CO419 CO420 CO424 CO430 CO432 CO441 CO444 CO450 CO451 CO460 CO480 CO481 CO482 CO485 CO493

CO 101 Microbased Computer Literacy
3c-0l-3sh
An introductory course designed to provide students with a fundamental understanding of computers. The course familiarizes students with the interaction of computer hardware and software. Emphasis is placed on the application of microcomputers, the use of productivity software (word processing, spreadsheet management, file and data base management), and the social and ethical aspects of the impact of computers on society. (Does not count toward Computer Science major.)
Note: This course is cross-listed as
BE101 and IM101. Any of these courses may be substituted for each other and may be used interchangeably for D or F repeats but may not be counted for duplicate credit.

CO 105 Fundamentals of Computer Science
3c-0l-3sh
This is the first course for Computer Science majors. It is required of all Computer Science students and is appropriate for other Natural Sciences and Mathematics students. Topics include the fundamental concepts of computer architecture, algorithm development and analysis, programming languages, software engineering, data organization and representation, and systems software. Hands-on introduction to computer usage with an emphasis on terminology and the underlying connections within the discipline.

CO 110 Problem Solving and Structured Programming
3c-0l-3sh
(For Science, Mathematics, and Computer Science majors, and for others who have a sufficiently quantitative orientation)
Basic structure of modern digital computers; problem analysis and computer solution using flowcharting and the C++ language. Exemption or credit by examination possible.

Back to Top

CO 201 Internet and Multimedia
3c-0l-3sh
Prerequisite:
BE101/CM101/CO101/IM101 or prior exposure to word processing and electronic mail.
The major focus will be on the evaluation of information and multimedia resources available on electronic networks when doing research in an area of one's choice. This information literacy course is designed for students to gain a more in-depth understanding of the information resources available electronically and of how to utilize them more effectively in communicating. Students will learn how to access and utilize these resources for two-way communications and support for decision making while incorporating selected elements in multimedia presentations of their own design. (BE201/CM201/CO201/IM201/LB201 may be used interchangeably for D or F repeats and may not be counted for duplicate credit.)

CO 205 Programming Languages for Secondary Education
3c-0l-3sh
Prerequisite: Education major
Provides an introduction to the three high-level programming languages most commonly used in secondary education: Pascal, LOGO, and BASIC, with particular emphasis on Pascal. Also includes a comparative study of the control structures and data structures present in these three languages. This course is intended to establish a solid foundation to prepare prospective teachers of computing courses K-12. (Note: Previous experience with microcomputers is strongly recommended. Does not count toward a Computer Science major. Credit toward graduation will not be given if this course is taken after completing six or more credits of computer science courses.)

CO 220 Applied Computer Programming
3c-0l-3sh
Prerequisite:
CO110 or equivalent
Structured programming principles and techniques, as implemented through the ANS COBOL language; program design using top-down techniques; program and project documentation; introduction to sequential file algorithms.

Back to Top

CO 250 Introduction to Numerical Methods
3c-0l-3sh
Prerequisites:
CO110, MA122 or 123 or 127
Algorithmic methods for function evaluation, roots of equations, solutions to systems of linear equations, interpolation, curve fitting, numerical differentiation and integration; errors in computation. Introduction to FORTRAN90 programming and introduction to the use of a mathematical software package to graph functions.

CO 281 Special Topics
var-1-3sh
Prerequisite: As appropriate to course content
Special topics are offered on an experimental or temporary basis to explore topics that are not included in the established curriculum. A given topic may be offered under any special topic identity no more than three times. Special topics numbered 281 are offered primarily for lower-level undergraduate students.

CO 300 Assembly Language Programming
3c-0l-3sh
Prerequisite:
CO110 or equivalent
Examination of structure and languages of machines; representation of data, addressing techniques, symbolic coding, assemblers, macros, etc.; problem solution using assembly language.

Back to Top

CO 310 Data Structures
3c-0l-3sh
Prerequisite:
CO110
Basic concepts of data; storage systems and structures; lists, arrays, strings, hashing techniques; searching and sorting techniques; data structures in programming languages; string processing. Programming in a object-oriented language.

CO 315 Large File Organization and Access
3c-0l-3sh
Prerequisite:
CO220
The organization of large computer files for business systems, information systems, and other applications. Use of advanced COBOL for efficient file access. Evaluation of file access methods and directory organization. Introduction to random file algorithms and integrated file systems.

CO 319 Software Engineering Concepts
3c-0l-3sh
Prerequisite:
CO315 or permission of instructor
Includes the collection of tools, procedures, methodologies, and accumulated knowledge about the development of the software life cycle; current methodologies, tools, and techniques being applied to each phase will be discussed in depth with localized exercises given to reinforce learning of concepts.

Back to Top

CO 320 Software Engineering Practice
1c-2d-3sh
Prerequisite:
CO319 or permission of instructor
Planning, design, and implementation of large software systems using software engineering techniques. Students work in project teams on real or realistic software development projects. Credit for either CO320 or CO493 may count toward computer science major requirements for graduation but not both; the other course credits are free electives.

CO 345 Data Communications
3c-0l-3sh
Prerequisites:
CO110 or 220; MA121 or 123; MA214 or 216 or 217; or equivalents
Communication of digital data between computers and to and from terminals and other peripherals; computer networks; small design projects or term paper.

CO 355 Computer Graphics
2c-1l-3sh
Prerequisites:
CO310 and junior status
The use of computer graphics hardware and software. An overview of current applications and experience with representative software will introduce current practice. Foundations in primitives, geometry, and algorithms of passive computer graphics are the principal focus of the course. A brief introduction to interactive computer graphics will be included.

CO 360 IBM Job Control Language
1c-0l-1sh
Prerequisite:
CO220 or permission of instructor
Detailed study of the job control language (JCL) of the IBM OS operating system; comparison of OS with the locally available DEC operating system, VAX VMS.

Back to Top

CO 362 UNIX and C
3c-0l-3sh
Prerequisite:
CO310 or permission of instructor
An introduction to the history, features, syntax, and applications of UNIX and C. Lectures, reading, and hands-on projects. Coverage includes two or more command interfaces, variations in C, and portability issues. UNIX is a trademark of Bell Laboratories.

CO 380 Seminar on the Computer Profession
0c-1d-1sh
Prerequisite: Permission (See text below)
Reading, review, and discussion of the current literature of computer science and industry trade journals; effective oral presentations; employment prospects. Should be taken the semester before an internship or the first semester of the senior year. Should not be taken at the same time as CO480.

CO 405 Artificial Intelligence
3c-0l-3sh
Prerequisite:
CO310
An introduction to the field of artificial intelligence, i.e., the study of ideas that enable computers to process data in a more intelligent way than conventional practice allows. The course covers many information representation and information processing techniques. Students will explore the underlying theory including matching, goal reduction, constraint exploration, search, control, problem solving, and logic.

Back to Top

CO 410 Processor Architecture and Microprogramming
3c-0l-3sh
Prerequisites:
CO300 and 310
The logical description of computer processor structure (architecture), with emphasis on the microprogramming approach. Project assignments using minicomputer.

CO 419 Software Development with Ada
3c-0l-3sh
Prerequisite:
CO310
Introduction to the Ada programming language as a tool of the software engineer. Projects will use the advanced programming constructs resident in Ada, including packages, multi-tasking, generic units, exception handlers, and concurrent programming.

CO 420 Modern Programming Languages
3c-0l-3sh
Prerequisites:
CO220 and 310
Comparative study of the properties and applications of a range of modern higher-level programming languages, including Ada, APL, C, LISP, LOGO, Pascal, PROLOG, and SNOBOL. Comparison with older languages such as ALGOL, BASIC, COBOL, FORTRAN, and PL/I.

Back to Top

CO 424 Compiler Construction
3c-0l-3sh
Prerequisites:
CO300 and 310
Relates the formal concepts of automata and language theory to the practicality of constructing a high-level language translator. The structures and techniques used in lexical analysis, parsing, syntax directed translation, intermediate and object code generation, and optimization are emphasized.

CO 430 Introduction to Systems Programming
3c-0l-3sh
Prerequisites:
CO300 and 310
Concepts and techniques of systems programming with an emphasis on assembly, linking, loading, and macro processing for user programs. Overview of higher-level language translation and system control. Programming and research projects.

CO 432 Introduction to Operating Systems
3c-0l-3sh
Prerequisites:
CO300, CO310 or equivalents
Introduction to the principles of operating system design and implementation. Topics include interrupt service, process states and transitions, spooling, management of memory and disk space, virtual storage, scheduling processes and devices, and file systems.

Back to Top

CO 441 Data Base Management
3c-0l-3sh
Prerequisite:
CO315
Review of data base concepts. Detailed study of data base management approaches. Comparative study of commercially available data base management systems. Project on the locally available data base systems.

CO 444 Productivity Tools and Fourth Generation Language
3c-0l-3sh
Prerequisite:
CO 441 or IM 450
Develop an understanding of productivity issues and how Fourth Generation Languages (4GL) improve productivity as contrasted with 3GLs. Advances in the programming paradigm such as event driven programming, objects, reusability, graphical user interface (GUI) design and development, information systems based on relational data bases, and client/server technology are addressed. Students will gain a practical experience with these concepts through an in-depth study of Visual Basic and the development of a GUI interface to a relational database using Visual Basic.

CO 450 Applied Numerical Methods
3c-0l-3sh
Prerequisites:
CO250, MA171, and MA241, or equivalents
Polynomial approximations using finite differences, with applications in numerical integration and differentiation. Numerical solution of initial value ordinary differential equations. The APL language will be introduced and used, along with FORTRAN, in programming selected algorithms.

CO 451 Numerical Methods for Supercomputers
3c-0l-3sh
Prerequisites:
MA121 and 122, or MA123 or 127, MA171, CO250
Supercomputers make use of special computer architectures—vector and parallel processors—in order to achieve the fastest processing speed currently available. Students will be introduced to these features and will learn how numerical algorithms can be constructed to exploit supercomputers' capabilities. Students will gain practical experience in programming for the Cray, YMP, in incorporating existing scientific software packages into user-written programs, in submitting remote jobs to the Pittsburgh Supercomputer Center, and in producing animated graphical output to summarize the typically large volume of output data generated by large scientific programs. (Also offered as MA451; may not be taken for duplicate credit)

Back to Top

CO 460 Theory of Computation
3c-0l-3sh
Prerequisites:
CO310 or consent of instructor
Formal methods for describing and analyzing programming languages and algorithms. Backus-Naur forms; productions; regular expressions; introduction to automata theory; Turing machines; recent concepts in algorithm theory computability.

CO 480 Seminar on Technical Topics
0c-1l-1sh
Prerequisites: See text below
Reading, review, and discussion of the current literature of computer science and industry professional and technical journals; oral presentations. Should be taken the last semester of the senior year. Should not be taken at the same time as CO380.

CO 481 Special Topics
var-1-3sh
Prerequisite: As appropriate to course content
Seminar in advanced topics of computer science; content will vary depending on interests of instructor and students. May be repeated for additional credit. Special Topics numbered 481 are primarily for upper-level undergraduate students.

Back to Top

CO 482 Independent Study
var-1-4sh
Prerequisite: Prior approval through advisor, faculty member, department chairperson, dean, and provost's office
Students with interest in independent study of a topic not offered in the curriculum may propose a plan of study in conjunction with a faculty member. Approval based on academic appropriateness and availability of resources.

CO 485 Independent Study
var-12sh
Prerequisites: Permission of a computer science faculty member who agrees to supervise the student's project. Arrangements for selection of a specific topic must be made.

CO 493 Internship in Computer Science
var-12sh
Prerequisites:
CO300, 310, 315, 319, 380, other courses depending on type of internship position desired, completion of application, and selection by committee
Positions with participating companies provide students with paid experience in computer science under the supervision of the companies and faculty. Requirements include three on-site consultations, two university consultations, completion of progress reports, oral presentation, and a final cumulative paper. Offered only to students during the second semester and summer of the junior year or the summer and the first semester of the senior year. No more than four semester hours of CO493 may be applied toward the 30-semester-hour requirement for a major in Computer Science.


IUP Info | Table of Contents | Index of Courses

This information is maintained by the Office of the Registrar, with approval from the University Senate. Last modified at 8:11 PM on 7/11/99.