Skip to Content - Skip to Navigation

COSC 101 Computer Literacy

3c-0l-3cr

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

Syllabus of Record, Computer Literacy

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.

Syllabus of Record, Fundamentals of Computer Science

COSC 108 Introduction to Programming via Alice

3c-0l-3cr

This course provides an introduction to the development of algorithmic solutions to a variety of problems and the development of computer programs to implement the solutions.  The Alice programming language and interactive development environment is incorporated to introduce fundamental algorithmic/programming concepts including variables, assignments, conditionals, loops, functions, and arrays through an interactive movie animation paradigm.   These concepts are then applied to a standard programming language.  Course includes an introduction to the Java programming language. (Does not count toward Computer Science major.)

Syllabus of Record, Introduction to Programming via Alice


COSC 110 Problem Solving and Structured Programming

3c-0l-3cr

This course provides an introduction to the development of algorithmic solutions to a variety of problems and the development of computer programs to implement the solutions. It explores standard programming structures used to introduce fundamental algorithmic/programming concepts including variables, assignments, conditionals, loops, functions, and arrays and their role in problem solving. Course emphasizes structured programming in the development of algorithm solutions to common problems. Objected oriented paradigm is introduced at a basic level.

Syllabus of Record, Problem Solving and Structured Programming

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

Syllabus of Record, Internet and Multimedia

COSC 210 Object-Oriented and GUI Programming

3c-0l-3cr

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

Syllabus of Record, Object-Oriented and GUI 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.

Syllabus of Record, Applied Computer Programming

COSC 250 Introduction to Numerical Methods

3c-0l-3cr

Prerequisites: COSC 110, MATH 121, or MATH 125

Algorithmic methods for function evaluation, roots of equations, solutions to systems of linear equations, function interpolation, numerical differentiation and integration, and use spline functions for curve fitting.  Focus on managing and measuring errors in computation.   Also offered as MATH 250; either COSC 250 or MATH may be substituted for the other and may be used interchangeably for D or F repeats but may not be counted for duplicate credit.

Syllabus of Record, Introduction to Numerical Methods

COSC 281 Special Topics

var-1-3cr

Prerequisite: As appropriate to course content

Special topics are 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 Computer Organization and Assembly Language

3c-0l-3cr

Prerequisite: COSC 110 or equivalent

Discussion of the basic computer architecture elements: gates, combinational and sequential logic, hardware arithmetic, CPU and memory structure. Examination of the languages of machines: representation of data, addressing techniques, symbolic coding, assembly, and linking. Problem solving using assembly language.

Syllabus of Record, Assembly Language Programming

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

Syllabus of Record, Data Structures and Algorithms

COSC 316 Host Computer Security

3c-0l-3cr

Prerequisites: COSC 110 or equivalent course, as approved by instructor

Provides an introduction to the theory and concepts of host computer security. Topics include security and policy guidelines, attack strategies and attacker profiles, users and groups security, file systems and security, integrity management, cryptography basics, back-up utilities, auditing and logging, and strategies for defending user accounts. Designed as a practical hands-on course.

Syllabus of Record, Host Computer Security

COSC 319 Software Engineering Concepts

3c-0l-3cr

Prerequisites: COSC 310 or permission of the 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 is discussed in depth with localized exercises given to reinforce learning of concepts.

Syllabus of Record, Software Engineering Concepts

COSC 341 Introduction to Database Management Systems

3c-0l-3cr

Prerequisites: COSC 110 and COSC 210

Provides fundamental knowledge of, and practical experience with, database concepts.  Includes 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.

Syllabus of Record, Introduction to Database Management Systems

COSC 345 Computer Networks

3c-0l-3cr

Prerequisites: COSC 110, and MATH 121 or 125, and MATH 214, 216, or 217, or equivalents

Data communications, computer network architectures, functions of various network layers, communication protocols, internetworking, emerging high-speed networks.

Syllabus of Record, Computer Networks

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.

Syllabus of Record, LAN Design and Installation

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.

Syllabus of Record, Testing and Controlling LANs

COSC 355 Computer Graphics

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.

Syllabus of Record, Computer Graphics

COSC 356 Network Security

3c-0l-3cr

Prerequisite: COSC 316 and either COSC 345 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 studies methods for enforcing and enhancing those standards.

Syllabus of Record, Network Security

COSC 362 Unix Systems

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.

Syllabus of Record, Unix Systems

COSC 365 Web Architecture and Application Development

3c-0l-3cr

Prerequisites: COSC 310 and 341 or instructor permission

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 gain a 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. (Offered as COSC 415 Internet Architecture and Programming prior to 2008-09)

Syllabus of Record, Web Architecture and Application Development

COSC 380 Seminar on the Computer Profession and Ethics

2c-1d-2cr

Prerequisite: Permission

Reading, review, and discussion of the current literature in computer science and industry trade journals; effective oral presentations: employment prospects.  Topics on computer ethics and review of case studies on computer ethics from professional journals with discussion of the issues involved.  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. 

Syllabus of Record, Seminar on the Computer Profession and Ethics

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

Syllabus of Record, Artificial Intelligence

COSC 410 Computer Architecture

3c-0l-3cr

Prerequisites: COSC 300 and 310

Introduces the underlying working principles of electronic computers. The organization and architecture of computer components are discussed. The course expounds on details of memory hierarchy, I/O organization, computer arithmetic, processor and control unit design, instruction set architecture, instruction-level parallelism, and the ways functional components interact together.

Syllabus of Record, Computer Architecture

COSC 420 Modern Programming Languages

3c-0l-3cr

Prerequisites: COSC 310

A comparative survey of programming language paradigms. Includes an examination of the properties, applications,  syntax, and semantics of selected object-oriented, functional, and declarative programming languages.

Syllabus of Record, Modern Programming Languages

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.

Syllabus of Record, Compiler Construction

COSC 427 Introduction to Cryptography

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.

Syllabus of Record, Introduction to Cryptography

COSC 429 Digital Forensics

3c-0l-3cr

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

Takes a detailed, hands-on approach to the use of computer technology in investigating computer crime. From network security breaches to child pornography, the common bridge is the demonstration that particular electronic media contains incriminating evidence. Using modern forensics tools and techniques, students learn how to conduct a structured investigation process to determine exactly what happened and who was responsible, and to perform this investigation in such a way that the results are useful in criminal proceedings. Real world case studies will be used to provide a better understanding of security issues. Unique forensics issues associated with various operating systems including Linux/Windows operating systems and associated applications are covered.

Syllabus of Record, Digital Forensics

COSC 430 Introduction to Systems Programming

3c-0l-3cr

Prerequisites: Grade of C or better in COSC 300 and 310, or permission of instructor

An in-depth introduction to a systems programming, system programming language(s) and application of those language(s) to systems level problems. The focus will be on programming constructs that are closely aligned with the architecture of a digital computer including those providing portability between platforms, dynamic allocation and management of virtual memory, complex in-memory data structures, reading/writing binary data using sequential and random access, pointer arithmetic/manipulation, and interaction between threads/processes.

Syllabus of Record, Introduction to Systems Programming (under approval)

COSC 432 Introduction to Operating Systems

3c-0l-3cr

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.

Syllabus of Record, Introduction to Operating Systems

COSC 444 Productivity Tools and Fourth Generation Language

3c-0l-3cr

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

Syllabus of Record, Productivity Tools and Fourth Generation Language

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.

Syllabus of Record, Applied Numerical Methods

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 454 Information Assurance Administration

3c-0l-3cr

Prerequisites: COSC 316 or permission of instructor

This course explores the various issues pertinent to maintaining acceptable levels of Information Security within organizations. It addresses issues involved in administering and managing information security systems.  The course is intended to raise awareness of information security issues across organizations.

Syllabus of Record, Information Assurance Administration

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.

Syllabus of Record, Theory of Computation

COSC 465 Distributed Processing and Web Services

3c-0l-3cr

This course provides advanced study into architecture of Internet systems and the process of developing distributed computer applications running on the Internet and/or other networks.  This course is presents an in-depth understanding of distributed processing technologies including socket programming, RPC, RMI, EJB’s, DCOM, .NET, SOAP, and Web Services.   Emphasis is placed on the use of XML to support multi-party heterogeneous distributed applications and includes XML fundamentals (e.g., DTD’s, XML schemas, XPath, XSLT, SAX, and DOM) and web services (e.g., SOAP, WSDL, UDDI, and ebXML).  Students will a complete number of hand-on projects utilizing a number of the mentioned technologies.

Syllabus of Record, Distributed Processing and Web Services


COSC 473 Software Engineering Practice

3c-0l-3cr

Prerequisite: COSC 341 or instructor permission.

Planning, design, and implementation of large software systems using software engineering techniques.  Students work on project teams on real or realistic software development projects.  Credit for either COSC 473 or 493, but not both, may count toward computer science major requirements for graduation; the other course credits are free electives.

Syllabus of Record, Software Engineering Practice

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.

Syllabus of Record, Seminar on Technical Topics

COSC 481 Special Topics

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.

COSC 482 Independent Study

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.

COSC 485 Independent Study

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-6-12 cr

Prerequisites: COSC 105, COSC 110, COSC 210, COSC 220 (except L&S track), COSC 300, COSC 310, COSC 319, COSC 341, COSC 380, other courses depending on type of internship position desired, completion of application, and selection by a faculty committee. COSC 319, COSC 341, and COSC 380 prerequisite may be waived when registering for first six credit hours.

Positions with participating companies provide students with paid experience in computer science under supervision of the companies and faculty. Requirements include three on-site consultations (one during first six credit hours and two in final six credit hours), two university consultations (one during first six credit hours and one in final six credit hours), completion of progress reports, oral presentation (final six credit hours only), and a final cumulative paper (final six credit hours only). An internship is offered only to students who have completed their sophomore year. No more than two credit hours of the first six credit hours of COSC 493 and two credit hours of the last six credit hours of COSC 493 may be applied toward the credit hour requirement for a major in Computer Science.

Internship can be completed as one 12-credit hour unit over a minimum of twenty-three weeks, or in two six-credit-hour units each over a minimum of twelve weeks.

COSC 493 is designated writing intensive. As such, an internship requires completion of designated writing intensive components.

Syllabus of Record, Internship in Computer Science

  • Computer Science Department
  • Stright Hall, Room 319
    210 South Tenth Street
    Indiana, PA 15705
  • Phone: 724-357-2524
  • Fax: 724-357-2724
  • Office Hours
  • Monday through Friday
  • 7:30 a.m. – 12:00 p.m.
  • 1:00 p.m. – 4:00 p.m.