An introductory course providing 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/IFMG 101. Any of these courses may be substituted for each other
and may be used interchangeably for D/F repeats but may not be counted
for duplicate credit.
Syllabus of Record, Computer Literacy
The first course for computer science majors. Required of all computer
science students; 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. A
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
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. Includes an
introduction to the Java programming language. (May not receive credit for
both COSC 108 and 110.)
Syllabus of Record, Introduction to Programming via Alice
An introduction to the development of algorithmic solutions to a variety
of problems and the development of computer programs to implement the
solutions. Explores standard programming structures used to introduce
fundamental algorithmic/programming concepts including variables,
assignments, conditionals, loops, functions, and arrays and their role in
problems solving. Emphasizes structured programming in the development
of algorithm solutions to common problems. Object-oriented paradigm is
introduced at a basic level.
Syllabus of Record, Problem Solving and Structured Programming
Investigates the different categories of cyber wellness and how they affect
emotional, physical, social, and intellectual wellness. Focuses on demonstrating
intellectual agility and creativity in order to maintain physical
wellness while using technology. Examines the effect technological changes
have had on various disciplines and their impacts on society in relation
to health and wellness. Discusses theories and principles related to the
physical, mental, social, and emotional aspects of personal computer usage
including cyberspace. Completion of COSC 143 fulfills the Liberal Studies
Dimensions of Wellness requirement. Other 143 courses will also fulfill this
requirement, and any of these courses may be substituted for each other and
may be used interchangeably for D/F repeats but may not be counted for
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.
An information literacy course 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/F repeats and may not be counted for
Syllabus of Record, Internet and Multimedia
Prerequisite: COSC 108 or COSC 110
An in-depth introduction to the Object-Oriented Programming (OOP)
paradigm, including encapsulation, inheritance, and polymorphism. Focuses
on designing, implementing, and using objects. Includes an introduction to
Graphical User Interface (GUI) design and programming.
Syllabus of Record, Object-Oriented and GUI Programming
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
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
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.
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
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
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
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
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
Prerequisites: COSC 110, and MATH 121 or 125, and MATH 214, 216, or 217, or equivalents
Covers data communications, computer network architectures, functions of various network layers, communication protocols, internetworking, emerging high-speed networks.
Syllabus of Record, Computer Networks
Prerequisite: IFMG 250 or BTST 273, or COSC 108 or COSC 110
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
Prerequisites: Grade of "C" or better in COSC 310 and junior status
Introduces computer graphics hardware and software. Explores and implements
2-D and 3-D modeling and transformations, viewing transformations,
projections, rendering techniques, lighting, and shading using a current
cross-platform 3-D graphics API. Includes creation of complex, photorealistic
images, and animation principles.
Syllabus of Record, Computer Graphics
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
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
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.
Syllabus of Record, Web Architecture and Application Development
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
Prerequisite: Grade of "C" or better in COSC 310
Introduces the field of artificial intelligence. Explores and implements
solutions using classical and modern artificial intelligence techniques.
Includes state space search, logical inference, expert systems, optimization,
knowledge representation, machine learning, handling uncertainty, and soft
Syllabus of Record, Artificial Intelligence
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
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
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
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
Prerequisites: COSC 110 or equivalent programming course, junior
standing or permission of instructor
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
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)
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
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
Syllabus of Record, Information Assurance
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
Prerequisite: COSC 365 or COSC 310 and instructor permission.
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
Prerequisite: COSC 319 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
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
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.
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.
Prerequisites: COSC 105, 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 6cr and
two in final 6cr), two university consultations (one during first 6cr and one
in final 6cr), completion of progress reports, oral presentation (final 6cr
only), and a final cumulative paper (final 6cr only). An internship is offered
only to students who have completed their sophomore year. No more than
3cr of the first 6cr of COSC 493 and 3cr of the last 6cr of COSC 493 may
be applied toward the credit-hour requirement for a major in computer science.
Internship can be completed as one 12cr unit over a minimum of 23
weeks or in 6cr units each over a minimum of 12 weeks. (Writing-intensive
course. As such, an internship requires completion of designated writing-intensive
Syllabus of Record, Internship in Computer Science
Fraud, Waste, and Abuse Hotline
© 2007–16 Indiana University of Pennsylvania
1011 South Drive, Indiana, Pa. 15705 | 724-357-2100