COSC
101 Microbased Computer Literacy
3c-0l-3cr
An introductory course designed
to provide students with a 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), 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 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-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.)
<Back
to Top>
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.
<Back
to Top>
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 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
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.
<Back
to Top>
COSC
316 Cybersecurity Basics
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 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.
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 310 or instructor permission
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)
<Back
to Top>
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)
COSC
345 Data Communications
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.
<Back
to Top>
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.
COSC
356 Network Security
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
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.
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.
<Back
to Top>
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.
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 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 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.
<Back
to Top>
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.
COSC
427 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.
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,
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.
<Back
to Top>
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.
<Back
to Top>
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-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 Computer Science. |