2004-05 Undergraduate Catalog
Indiana, Pennsylvania 15705
Computer Science (COSC)
Department of Computer Science
College of Natural Sciences and Mathematics
Credit designation below each title is expressed in (c) class hours per week, (l) lab or (d) discussion section hours per week, and (cr) credits per semester.
COSC 101 Microbased Computer Literacy
3c-0l-3cr
An introductory course designed to provide fundamental understanding of
computers. Familiarizes students with the interaction of computer hardware and
software. Emphasizes the application of microcomputers, the use of productivity
software (word processing, spreadsheet management, file and database management,
presentation graphics, web browsers, search strategies, and e-mail), and the
social and ethical aspects of the impact of computers on society. (Does not
count toward Computer Science major.) Note: cross-listed as
BTED and
IFMG 101. 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.
COSC 105 Fundamentals of Computer Science
3c-0l-3cr
The first course for Computer Science majors. Required of all Computer Science
students and 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.
COSC 110 Problem Solving and Structured Programming
3c-0l-3cr
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.
COSC 201 Internet and Multimedia
3c-0l-3cr
Prerequisite:
BTED/COSC/IFMG
101 or prior exposure to word processing and electronic mail
Focuses on the evaluation of information and multimedia resources available on
electronic networks when doing research in an area of one’s choice. 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 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.
(BTED/COMM/COSC/IFMG/LIBR
201 may be used interchangeably for D or F repeats and may not be
counted for duplicate credit.)
COSC 205 Programming Languages for Secondary Education
3c-0l-3cr
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. 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 is not given if
this course is taken after completing 6cr or more of COSC courses.)
COSC 210 Object-Oriented and GUI Programming
3c-0l-3cr
Prerequisite:
COSC 110
An in-depth introduction to the Object-Oriented Programming (OOP) paradigm.
Focuses on designing, implementing, and using objects. Covers function and
operator overloading, templates, inheritance, and polymorphism. Also includes an
introduction to Graphical User Interface (GUI) design and programming.
COSC 220 Applied Computer Programming
4c-0l-4cr
Prerequisite:
COSC 110 or equivalent.
Structured programming principles and techniques, as implemented through the
ANSI COBOL language; program design using top-down techniques; program and
project documentation; introduction to sequential and random file algorithms and
integrated file systems.
COSC 250 Introduction to Numerical Methods
3c-0l-3cr
Prerequisites:
COSC 110,
MATH 122 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.
var-1-3cr
Prerequisite: As appropriate to course content
Offered on an experimental or temporary basis to explore topics 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.
COSC 300 Assembly Language Programming
3c-0l-3cr
Prerequisite:
COSC 110 or equivalent
An examination of structure and languages of machines; representation of data,
addressing techniques, symbolic coding, assemblers, macros, etc.; problem
solution using assembly language.
COSC 304 Interactive Internet Programming with Java
3c-0l-3cr
Prerequisite:
COSC 110 or equivalent
An introduction to interactive Internet programming using Java. Focuses on
writing platform-independent multimedia applications that are useable across the
Internet. Uses a write-once, run-anywhere approach while providing adequate
security. Covers event-based processing, multithreading, MIME file handling,
exception handling, sandbox security, networking, and component architectures.
COSC 310 Data Structures and Algorithms
3c-0l-3cr
Prerequisite:
COSC 210
Fundamental concepts of data design and implementation, data abstraction, data
structures, arrays, linked-lists, stacks, queues, recursion, trees, graphs, and
hashing. Also covers sorting algorithms, divide and conquer techniques, greedy
methods, and analysis of algorithms. The object-oriented paradigm is employed
using an object-oriented language.
COSC 315 Large File Organization and Access
3c-0l-3cr
Prerequisite:
COSC 220
The organization of large computer files for business systems, information
systems, and other applications. The use of advanced COBOL for efficient file
access. An evaluation of file access methods and directory organization. An
introduction to random file algorithms and integrated file systems.
3c-0l-3cr
Prerequisites:
COSC 110 or equivalent
programming course, junior standing or instructor permission
Provides an introduction to the theory and concepts of computer security in
networked systems. Looks at security issues and policies with regard to
hardware, software development, databases, operating systems, and networks as
well as the use of encryption. The more common attacks on systems are covered.
Vulnerability assessment tools and techniques for defending systems are explored
in various projects.
COSC 319 Software Engineering Concepts
3c-0l-3cr
Prerequisites:
COSC 220 and
310
or instructor permission
Software engineering concepts include the collection of tools, procedures,
methodologies, and accumulated knowledge about the development and maintenance
of software-based systems. Strongly suggested for any student planning to take
an internship in COSC. After an overview of the phases of the software
lifecycle, current methodologies, tools, and techniques being applied to each
phase is discussed in depth with localized exercises given to reinforce learning
of concepts.
COSC 320 Software Engineering Practice
1c-2d-3cr
Prerequisite:
COSC 319 or instructor permission
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 COSC 320 or 493 may count
toward computer science major requirements for graduation but not both; the
other course credits are free electives.
COSC 341 Introduction to Database Management Systems
3c-0l-3cr
Prerequisites:
COSC 220 (or equivalent) and
310or
instructor permission
A study of database concepts. A detailed study of information concepts and the
realization of those concepts using the relational data model. Practical
experience gained designing and constructing data models and using SQL to
interface to both multi-user DBMS packages and to desktop DBMS packages.
(Offered as COSC 441 prior to 2002-03)
COSC 344 Productivity Tools and Fourth Generation Language
3c-0l-3cr
Prerequisite:
COSC 341 or
IFMG 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 databases, and client/server technology are addressed. Students
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. (Offered as COSC 444 prior to 2002-03)
3c-0l-3cr
Prerequisites:
COSC 110 or
220;
MATH 121 or
123;
MATH 214 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.
COSC 352 LAN Design and Installation
3c-0l-3cr
Prerequisite:
IFMG 250 or
BTST 273 or any COSC course
numbered 300 or higher
A study of fundamental local area networking concepts. A detailed study of the
basics of local area network (LAN) technology. Comparative study of commercially
available LAN systems and products. Features a hands-on laboratory
implementation of a LAN. Cross-listed as
IFMG 352. Either course may be
substituted for the other for D/F repeats but may not be taken for duplicate
credit.
COSC 354 Testing and Controlling LANs
3c-0l-3cr
Prerequisite:
COSC 352 or
IFMG 352 or equivalent
Explores local area network (LAN) topologies and their associated protocols.
Introduces ways of interconnecting, securing, and maintaining LANs. Provides
students with hands-on experience in the interconnection of multiple LANs. Also
presents a hands-on approach to design, testing, and administration of
interconnected LANs. Cross-listed as
IFMG 354. Either course may be
substituted for the other for D/F repeats but may not be taken for duplicate
credit.
2c-1l-3cr
Prerequisites:
COSC 310 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. A brief introduction to interactive
computer graphics is included.
3c-0l-3cr
Prerequisite:
COSC 316 or
COSC/IFMG
352
Explores mechanisms for protecting networks against attacks. Emphasizes network
security applications that are used on the Internet and for corporate networks.
Investigates various networking security standards and explores methods for
enforcing and enhancing those standards.
COSC 360 IBM Job Control Language
1c-0l-1cr
Prerequisite:
COSC 220 or instructor permission
A detailed study of the job control language (JCRLG ) of the IBM OS operating
system; comparison of OS with the locally available DEC operating system, VAX
VMS.
3c-0l-3cr
Prerequisite:
COSC 310 or instructor permission
An introduction to the features, syntax, applications, and history of Unix.
Coverage includes utilities, system administration, development environments,
and networking concerns including distributed systems, client-server computing,
and providing Web services.
COSC 380 Seminar on the Computer Profession
0c-1d-1cr
Prerequisite: Permission
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
COSC 480.
COSC 405 Artificial Intelligence
3c-0l-3cr
Prerequisite:
COSC 310
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. Covers many information representation and
information processing techniques. Explores the underlying theory including
matching, goal reduction, constraint exploration, search, control, problem
solving, and logic.
COSC 410 Processor Architecture and Microprogramming
3c-0l-3cr
Prerequisites:
COSC 300 and
310
The logical description of computer processor structure (architecture), with an
emphasis on the microprogramming approach. Project assignments using
minicomputer.
COSC 415 Internet Architecture and Programming
3c-0l-3cr
Prerequisites:
COSC 304 and
310or
instructor’s approval
Corequisite:
COSC 341
Covers the fundamental architecture of Internet systems and the process of
developing computer applications running on the Internet in general and on the
World Wide Web in particular. Students first gain basic understanding of the
TCP/IP protocols and the client/server technology. Methods, languages, and tools
for developing distributed applications on the Internet are evaluated.
Programming projects developing distributed applications, using a representative
suite of development tools and languages, are an integral part of this course.
COSC 419 Software Development with Ada
3c-0l-3cr
Prerequisite:
COSC 310
An introduction to the Ada programming language as a tool of the software
engineer. Projects use the advanced programming constructs resident in Ada,
including packages, multi-tasking, generic units, exception handlers, and
concurrent programming.
COSC 420 Modern Programming Languages
3c-0l-3cr
Prerequisites:
COSC 220 and
310
A 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.
COSC 424 Compiler Construction
3c-0l-3cr
Prerequisites:
COSC 300 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.
3c-0l-3cr
Prerequisites:
COSC 310,
MATH 122 or
123
Fundamental concepts of encoding and/or encrypting information, cryptographic
protocols and techniques, various cryptographic algorithms, and security of
information are covered in depth.
COSC 430 Introduction to Systems Programming
3c-0l-3cr
Prerequisites:
COSC 300 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.
COSC 432 Introduction to Operating Systems
3c-0l-3cr
Prerequisites:
COSC 300,
310
or equivalents
An 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.
COSC 450 Applied Numerical Methods
3c-0l-3cr
Prerequisites:
COSC 250,
MATH 171, and
241, 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 is introduced and used, along
with FORTRAN, in programming selected algorithms.
COSC 451 Numerical Methods for Supercomputers
3c-0l-3cr
Prerequisites:
MATH 121 and
122, or
MATH 123 or 127,
MATH 171,
COSC 250
Supercomputers make use of special computer architectures–vector and parallel
processors–in order to achieve the fastest processing speed currently available.
Students are introduced to these features and learn how numerical algorithms can
be constructed to exploit supercomputers’ capabilities. Students 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 MATH 451; may not be taken for duplicate
credit)
COSC 460 Theory of Computation
3c-0l-3cr
Prerequisite:
COSC 310 or instructor permission
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.
COSC 480 Seminar on Technical Topics
0c-1l-1cr
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 COSC 380.
var-l-3cr
Prerequisite: As appropriate to course content
A seminar in advanced topics of computer science; content varies depending on
interests of instructor and students. May be repeated for additional credit.
Special Topics numbered 481 are primarily for upper-level undergraduate
students.
var-1-4cr
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.
var-12cr
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.
COSC 493 Internship in Computer Science
var-12cr
Prerequisites:
COSC 300,
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 4cr
of COSC 493 may be applied toward the credit requirements for the major in COSC.