Indiana University of Pennsylvania

2002-2003 Undergraduate Catalog
Indiana, Pennsylvania 15705

 

Computer Science

 

Credit designation at right of 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.

 

COSC: Computer Science

Department of Computer Science

College of Natural Sciences and Mathematics

 

 

COSC 101 Microbased Computer Literacy 

3c-0l-3sh

An introductory course designed to provide students with a fundamental understanding of computers. Familiarizes students with the interaction of computer hardware and software. An emphasis is placed on the application of microcomputers, the use of productivity software (word processing, spreadsheet management, file and database management), and the social and ethical aspects of the impact of computers on society. (Does not count toward Computer Science major.) Note: Course is cross-listed as BTED 101 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-3sh

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-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.

 

COSC 201 Internet and Multimedia    

3c-0l-3sh

Prerequisite: BTED/COSC/IFMG 101 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. (BTED/COMM/COSC/IFMG/LIBR 201 may be used interchangeably for D or F repeats and may not be counted for duplicate credit.)

 

<Back to Top>

 

COSC 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. 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 6sh or more of COSC courses.)

 

COSC 210 Object-Oriented and GUI Programming   

3c-0l-3sh

Prerequisite:COSC 110

An in-depth introduction to the Object-Oriented Programming (OOP) paradigm. The focus will be 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   

3c-0l-3sh

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-3sh

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.

 

COSC 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.

 

<Back to Top>

 

COSC 300 Assembly Language Programming  

3c-0l-3sh

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-3sh

Prerequisite: COSC 110 or equivalent

An introduction to interactive Internet programming using Java. The focus is 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

3c-0l-3sh

Prerequisite: COSC 110

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 will be employed in this course using an object-oriented language.

 

COSC 316 Cybersecurity Basics

3c-0l-3sh

Prerequisites:: COSC 110 or equivalent programming course, junior standing or permission of instructor

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 will be covered. Vulnerability assessment tools and techniques for defending systems will be explored in various projects.

 

COSC 319 Software Engineering Concepts

3c-0l-3sh

Prerequisite: COSC 315 or permission of instructor

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 Computer Science. After an overview of the phases of the software lifecycle, current methodologies, tools, and techniques being applied to each phase will be discussed in depth with localized exercises given to reinforce learning of concepts

 

COSC 320 Software Engineering Practice 

1c-2d-3sh

Prerequisite: COSC 319 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 COSC 320 or 493 may count toward computer science major requirements for graduation but not both; the other course semester hours are free electives.

 

COSC 341 Introduction to Database Management Systems   

3c-0l-3sh

Prerequisites:COSC 220 (or equivalent) and 310 or permission of instructor

Study of database concepts. 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    

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 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. (Offered as COSC 444 prior to 2002-03)

 

COSC 345 Data Communications  

3c-0l-3sh

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-01-3sh

Prerequisite: IFMG 350 or BTST 313 or any COSC course numbered 300 or higher

A study of fundamental local area networking concepts. 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-01-3sh

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.

 

COSC 355 Computer Graphics  

2c-1l-3sh

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 of the course. A brief introduction to interactive computer graphics will be included.

 

COSC 356 Network Security

3c-0l-3sh

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-1sh

Prerequisite: COSC 220 or permission of instructor

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.

 

COSC 362 Unix Systems    

 3c-0l-3sh

Prerequisite: COSC 310 or permission of instructor

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-1sh

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-3sh

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. Students will explore the underlying theory including matching, goal reduction, constraint exploration, search, control, problem solving, and logic.

 

COSC 410 Processor Architecture and Microprogramming

3c-0l-3sh

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-3sh

Prerequisites:COSC 304 and 310 or 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 will 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 will be evaluated. Programming projects developing distributed applications, using a representative suite of development tools and languages, are integral part of this course.

 

COSC 419 Software Development with Ada     

3c-0l-3sh

Prerequisite: COSC 310

An 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.

 

<Back to Top>

 

COSC 420 Modern Programming Languages     

3c-0l-3sh

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-3sh

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.

 

COSC 427 Cryptography   

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 will be covered in depth.

 

COSC 430 Introduction to Systems Programming   

3c-0l-3sh

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-3sh

Prerequisites: COSC 300, COSC 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-3sh

Prerequisites: COSC 250, MATH 171, and MATH 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 will be introduced and used, along with FORTRAN, in programming selected algorithms.

 

COSC 451 Numerical Methods for Supercomputers    

3c-0l-3sh

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 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 MATH 451; may not be taken for duplicate credit)

 

COSC 460 Theory of Computation

3c-0l-3sh

Prerequisite: COSC 310 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.

 

COSC 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 COSC 380.

 

COSC 481 Special Topics

var-l-3sh

Prerequisite: As appropriate to course content

A 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.

 

COSC 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.

 

COSC 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.

 

COSC 493 Internship in Computer Science

var-12sh

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 4sh of COSC 493 may be applied toward the semester-hour requirements for the major in Computer Science.

 

<Back to Top>



IUP Info | Table of Contents | Index of Courses

This information is maintained by the Office of the Registrar, with approval from the University Senate.