Computer Science Courses
152 LISP, 1 hour
An introduction to the LISP programming language. Prerequisites: CPSC 171 and
CPSC 172 or permission.
153 C, 1 hour
An introduction to the C programming language. Prerequisites: CPSC 171 and CPSC
172 or permission.
154 FORTRAN, 1 hour
An introduction to the FORTRAN programming language. Prerequisites: CPSC 171
and CPSC 172 or permission.
165 The Information Age and Computers, 3 hours
In today's world, being able to find, organize, and display information
in a myriad of ways is becoming increasingly important. This course introduces
students to the use of computers and the Internet for browsing, locating,
obtaining, creating, and managing computerbased documents that include,
in addition to text, pictures, sound, and animation. Students taking this
course early in their college career will find it will enrich their learning
experiences in many courses.
171 Introduction to Computer Science, 4 hours
The introduction to the computer science discipline which establishes
a scientific foundation for a variety of topics, including computer programming,
computer design, information processing, the algorithmic solution of problems,
and the study of the algorithmic process itself. The course will have
a formal laboratory each week that satisfies the laboratory requirement
in science.
172 Introduction to Programming Java, 4 hours
An introduction to the process of program creation. Students will learn
to use the principal facilities of a highlevel programming language and
to transform algorithms into correct programs. Abstract data types will
be stressed. Prerequisite: CPSC 171 or permission.
201 Data Structures, 4 hours
A study of a broad spectrum of algorithms and the use of advanced language
facilities and programming techniques for implementing them. Prerequisites:
CPSC 171 and CPSC 172 or permission.
202 ProblemSolving and Programming Practicum, 3 hours
Successful computer problemsolving relies not only on the development
of appropriate algorithms, but also on the recognition of instances of
welldefined problem classes for which algorithms already exist. In addition,
excellence in computer programming cannot be developed without significant
practice in implementing and debugging solutions. This course will provide
students with a guided programming practicum, in which they will program
solutions to carefully chosen problems that exemplify common problem classes.
Many problems will be chosen from recent programming contests. Prerequisites:
CPSC 171 and CPSC 172 or permission.
205 Systems Programming, 3 hours
Systems programming concentrates on an indepth study of one operating system,
such as UNIX, and how to write system programs in that operating system. The
course will concentrate on the operating system's history, file system structure,
commands, utilities, multitasking capabilities, communication, security, and
shelltype programming. Theory is presented in the context of how the operating
system implements the ideas. By the end of the course, students should be able to
determine how most of the commands are implemented and how to use operating system
properties to create tools and applications. Prerequisites: CPSC 171 or permission.
222 Interface Design, 3 hours
User interface design is complicated by the wide variety of choices and
approaches that are possible today. Students will study and apply human
factor research to the design of various types of interfaces. Designs
will be implemented using software toolkits, and formal usability testing
will be performed. Prerequisites: CPSC 171 and CPSC 172 or permission.
224 Internet Administration, 3 hours
A study of the structuring of Internet services and of the client/server
model for providing resources and information in a distributed environment.
Students will learn how to design, configure, program, and maintain the
major types of services. A special emphasis will be placed on security
issues and ethical questions concerning those issues. Prerequisites: CPSC
171 and CPSC 172 or permission. CPSC 165 or comparable background
would be desirable but not required.
227 Software Evaluation, 3 hours
An introduction to the design and evaluation of software, particularly
business software. Students will learn to choose, test, and evaluate commercial
software packages designed for specific business applications and support
the use of the packages. Prerequisites: CPSC 171 and CPSC 172 or permission.
Computer Science 160 or comparable background would be desirable but not
required.
240 Computer Ethics, 3 hours
A consideration of some of the major controversies, key value conflicts,
ethical dilemmas, and social choices that drive and shape the computerization
of our society. Representative areas of concern will include personal
information and privacy, the effect of introducing the computer into the
work place, computer crime and fraud, relationships in electronic communities,
security and reliability issues, and the use of the information highway.
May not be used to satisfy a distribution requirement in the sciences.
252 Computer Organization, 4 hours
An introduction to the design, functioning, and control of the subsystems
of a computer system: processors, memory, storage, and input/output. Topics
include digital logic, combinatorial, sequential, and registertransfer
circuits, control unit, interrupt processing, microprogramming, and assembly
language. Prerequisites: CPSC 171 and CPSC 172 or permission.
280 Seminar, 1  4 hours
281 Independent Study, 1  4 hours
320 Computer Vision, 4 hours
An introduction to the theory and algorithms needed for automatic interpretation
of images. Topics include: image formation, segmentation, stereo, motion
and other geometric reasoning techniques, object recognition, and applications.
Sources of uncertainty and techniques for recognition in the presence
of uncertainty will also be discussed. Students will implement significant
parts of a complete object recognition system. Prerequisites: CPSC 171 and 172 or
permission.
345 Operating Systems, 4 hours
An introduction to operating systems that explores the design principles,
internal algorithms, and the abstract data types of operating systems.
Topics include concurrent programming principles, storage management techniques,
scheduling algorithms, and file management schemes. Students will write
parts of an operating system in a language that simulates direct control
of hardware. Prerequisites: CPSC 171 and CPSC 172 or permission.
351 Programming Languages, 4 hours
A study of a variety of specialized and generalpurpose programming languages.
Students will learn to describe the syntax and semantics of programming
languages in a formal manner, to analyze a programming language with respect
to its capabilities and limitations for the solution of particular classes
of problems, to approach the task of learning a new programming language
in an effective manner, and to specify desirable characteristics in a
language. Prerequisites: CPSC 171 and CPSC 172 or permission.
352 Computer Security, 4 hours
An introduction to secure computer systems and a study of their most important
responsibilities, including authenticating users, protecting user privacy, and
ensuring the privacy, integrity, and availability of the system's data. The
student will gain an understanding of techniques and procedures that are being
used as well as challenges that still remain to attain secure computer systems,
networks, and the Internet. Prerequisites: CPSC 171 and CPSC 172 or permission.
354 Systems Administration, 4 hours
An introduction to the many tasks of a system administrator. Students
will learn to design, implement, install, and maintain systems software
as well as establish and monitor system performance, security, and integrity.
Prerequisites: CPSC 171 and CPSC 172 or permission.
356 Database Design, 4 hours
A study of the principles and concepts relevant to the management of complex
data systems, especially the relational database model. Students design
and implement a complete database system, from requirements analysis through
documentation, using a generic database engine. Prerequisites: CPSC 171 and 172
or permission.
361 Computer Simulation, 4 hours
An introduction to simulation as a modeling tool to solve realworld system
problems. The emphasis will be on discrete event simulation. Topics covered
will include event graphs and other system modeling techniques, simulation
languages, techniques for running simulation models, and the analysis
of simulation output. Prerequisites: CPSC 171 and CPSC 172 or permission.
363 Computer Networks, 4 hours
A study of the fundamentals of the field of data and computer communication.
Key topics include the layered architecture, network protocols, and algorithms
for accurate and reliable message delivery in both local and widearea
networks. Current networking standards will be studied. Prerequisites:
CPSC 171 and CPSC 172 or permission.
367 Parallel Computing, 4 hours
An introduction to parallel architectures, programming languages, operating
systems, and algorithms. Students will explore parallel algorithm design
and programming by using PRAM, SIMD, and MIMD simulators. Prerequisites:
CPSC 171 and CPSC 172 or permission.
375 Software Engineering, 4 hours
Students will study both the theoretical and practical aspects of designing and
developing large, complex software systems. Readings will emphasize research
results and case studies of all phases of the software lifecycle  requirements,
specifications, design, resource allocation, implementation, integration, and
testing. Principles will be applied by the class to various projects. Prerequisites:
CPSC 171 and CPSC 172 or permission.
381 Topics in Computer Science, 1  4 hours
Various advanced topics are offered when need and sufficient interest
are demonstrated. Credit hours and prerequisites are established for each
offering. May be taken more than once with department consent.
386 Artificial Intelligence, 4 hours
A study of the goals, problems, concepts, and methods of artificial intelligence
are explored. The emphasis is on computer problem solving paradigms and
knowledge representations. Examples of techniques and systems are chosen
from the areas of image recognition, humanmachine interfacing, game playing,
natural language understanding, robotics, expert systems, and automatic
reasoning. Students will design and implement relevant algorithms Prerequisites:
CPSC 152, CPSC 171, and CPSC 172 or permission.
387 Computer Graphics, 4 hours
A study of the algorithms and techniques of computer graphics and animation.
Topics include display devices, geometric algorithms for displays, interaction
methods, hierarchical modeling, and hidden edge and surface algorithms.
Students will design and implement various threedimensional algorithms
to produce displays in an interactive environment. Prerequisites: CPSC 171 and
CPSC 172 or permission.
388 Compiler Design and Construction, 4 hours
An intense treatment of the theoretical and practical considerations involved
in implementing translators for highlevel programming languages. Students
will design and implement parts of a compiler for a high level language.
Prerequisites: CPSC 171 and CPSC 172 or permission.
400/401 Independent Research Component, 1  4hours
Prerepuisite: CPSC 201 or permission.
465 Design and Analysis of Algorithms, 4 hours
An advanced course in the theory of computation. Students will learn to
apply important results of computability and complexity theory to problems
of program design and to interpret measurements of program performance.
Topics will include a selection from the areas of tree and list traversals,
sorting and searching, matrix manipulations, linear programming, set operations,
shortestpath algorithms, pattern matching, operations of polynomials,
and fast Fourier transforms. Mathematical sophistication is expected.
Prerequisites: CPSC 171, CPSC 172, CPSC 201, and Mathematics 217, or permission.
466 Theory of Computation, 4 hours
An introduction to the classical and contemporary theory of computation.
The topics covered are the theory of automata and formal languages, computability
by Turing machines and recursive functions, unsolvability, computational
complexity, and mathematical logic. Mathematical sophistication is expected.
Prerequisites: CPSC 171, CPSC 172, CPSC 201, and Mathematics 217, or permission.
481 Independent Research, 1  4 hours
498 Internship, 1  4 hours
