Courses in Computer Science
The Fall (Fa), Spring (Sp), or Summer (Su) semesters indicated are expected but are not guaranteed. Expansive Core Curriculum courses are denoted by EXP. Service Learning courses are denoted by SL.
View All the Courses by Level
1000-Level 2000-Level 3000-Level 4000-Level
1000 Level
CPSC 1005. Introduction to PC's and Software Applications.
Introductory computer course offered to all students especially those new to using
computers. Topics include basic hardware/software terminology, hands-on instruction on
business application software covering database management systems, presentation
software, spreadsheets, and word processing using contemporary office software such as
Microsoft Office. Prerequisite(s): None. (3, FaSpSu)
CPSC 1010. Computing Challenges.
Offers a broad overview of computer science designed to provide students with an appreciation for and an
understanding of the many different aspects of computer science. Topics include discrete
mathematics, an introduction to programming languages, and algorithmic problem
solving when applied to mathematics, physics, engineering, business, the social sciences,
as well as other non-computing disciplines. This course is intended for students who are
curious about computing and its importance to other disciplines. Prerequisite(s): None.
(3, EXP)
CPSC 1210 (ART 1210, MSCM 1210).
Engaging Digital Media. Introduction to digital media concepts, design, production and interpretation. Students will apply the
latest innovations from art, communications, and computer science perspectives. This is
an experiential course with students becoming effective at creating, analyzing, and
evaluating digital content in a collaborative teamwork environment. Students will learn to
use software (including photo, video, audio, and online media productions) to create
media content, and to explore how media affects politics, culture, and society.Prerequisite(s): None. (3, Sp, EXP)
CPSC 1710. Computer Science I.
Introduction to the fundamental concepts of programming. Topics include data types, control structures, functions, arrays,
files, and the mechanics of the edit-compile-execute-debug cycle. This course also offers
an introduction to the historical, social, and ethical context of computing and an overview
of computer science as a discipline. No prior programming or computer science
experience is required. Prerequisite(s): None. (3, Fa)
CPSC 1720. Introduction to Computer Science II.
Introduction to the
design of solutions to computer solvable problems with an emphasis on algorithm design
and solution implementation using a high-level programming language. Topics include
search and sort algorithms and introductory object-oriented design. Prerequisite(s):
Completion of all developmental math courses and CPSC 1710. (3, Sp)
CPSC 1800. Fundamentals of Information Systems.
Introduction to
systems theory, quality, decision making and the organizational role of information
systems. Topics include information technology, computing and telecommunications
systems, organization and information system growth, and re-engineering.
Prerequisite(s): None. (3, Fa)
2000 Level
CPSC 2005. Advanced PC's and Software Applications.
Hands-on
instruction of advanced features of an integrated office suite such as Microsoft Office
with projects and presentations related to using the software across many different
domains.
Prerequisite(s): CPSC 1005 and either CPSC 1800 or permission of the
Computer Science chair. (3, Sp)
CPSC 2120. Computer Organization and Architecture.
Introduction
to the organization and architecture of computer systems, beginning with the standard
von Neumann model. Topics include digital logic, data representation, assembly language
programming, memory systems, interfacing and communication, functional organization,
and alternate architectures. Prerequisite(s): CPSC 1710 and MATH 1030. (3, Sp)
CPSC 2730. Data Structures.
Builds on the foundation provided by the
CPSC 1710-CPSC 1720 programming sequence. An introduction to the fundamental
concepts of linear lists, strings, arrays, and orthogonal lists; graphs, trees, binary trees,
multilinked structures, sort and search algorithms; applications; and the basics of
algorithmic analysis. Prerequisite(s): CPSC 1720 and MATH 1030. (3, Fa)
CPSC 2740. Software Development.
Provides an intensive,
implementation-oriented introduction to the software-development techniques used to
create medium-scale interactive applications, focusing on the use of large object-oriented
libraries to create well-designed graphical user interfaces. Topics include event-driven
programming, application programming interfaces, human-computer interaction, as
applied to the software development life cycle. Prerequisite(s): CPSC 2730. (3, Sp)
CPSC 2800. Multimedia.
Introduction to the world of computer science
through the World-Wide Web focusing on the techniques of web-page creation. Topics
include using software to create web pages and to manipulate graphics, video and sound. Prerequisite(s): None. (3)
CPSC 2900. Introduction to Bioinformatics Programming.
This course is designed to introduce the most important and fundamental concepts, methods,
and tools in bioinformatics programming using the scripting language, Perl. Students will
be introduced to computational biology concepts and techniques including: the art of
programming; rudimentary language syntax, control flow structures, and data structures
(scalars, strings, arrays, hashes, etc); file handling; regular expressions; web CGI
programming; Genbank, Protein Data Bank & Blast; and BioPERL. The objectives are
for students to gain practical programming experience in this ever evolving
interdisciplinary field and that they are able to use and develop the bioinformatics tools to
exploit modern massive and aggregated biological data.
Prerequisites: Completion of all
developmental math requirements, a grade of "C" or better in CPSC 1710, or permission
of the CPSC chair. (3, Sp, EXP)
3000 Level
CPSC 3060. Design and Analysis of Algorithms.
Introduction to
formal techniques to support the design and analysis of algorithms, focusing on both the
underlying mathematical theory and the practical considerations of efficiency. Topics
include asymptotic complexity bounds, techniques of analysis, algorithmic strategies, and
an introduction to automata theory and its application to language translation.
Prerequisite(s): CPSC 2730, MATH 1020, and MATH 2550. (3, Sp)
CPSC 3111, 3113. Independent Study in Computer Science.
Supervised
individual computer science studies, research, and readings. No more than one
registration permitted.
Prerequisite(s): CPSC 2740 and Computer Science chair's
permission. (1 or 3)
CPSC 3140. Operating Systems.
Introduction to the fundamentals of
operating systems design and implementation. Topics include an overview of the
components of an operating system, mutual exclusion and synchronization,
implementation of processes, scheduling algorithms, memory management, and file
systems. Prerequisite(s): CPSC 2120 and CPSC 2730. (3, Fa)
CPSC 3240. Computer Networks.
Introduction to digital transmission
fundamentals, local area networks, network protocols, and common Internet applications.
Prerequisite(s): CPSC 2740 and CPSC 3140. (3)
CPSC 3603. Topics in Computer Science.
Selected topics in computer
science. May be repeated for credit.
Prerequisite(s): CPSC 2740 and Computer Science
chair's permission. (3)
CPSC 3710. Databases, Introduction to information models and
systems.
Topics include data modeling, relational databases, database query languages,
relational database design, transaction processing, distributed databases, and physical
database design. Prerequisite(s): CPSC 2730. (3, Fa)
CPSC 3900. Computer Science Summer Internship.
Prerequisite(s):
Computer Science chair's permission. (3, Su)
CPSC 3999. Junior-Level Qualifying Examination.
Assessment of
student learning at the junior-level of their curriculum.
Prerequisite(s): Completion of all
required CPSC 3000-level courses. (0)
4000 Level
CPSC 4301. Computer Graphics.
Investigates the principles,
techniques, and tools that enable computer simulations and animations. Topics include
graphics systems, fundamental techniques in graphics, graphical algorithms, principles of
human-computer interaction, graphical user-interface design, graphical user-interface
programming, computer animation, and multimedia (sound, video, and graphics)
techniques. Prerequisite(s): CPSC 3060 and MATH 2030. (3)
CPSC 4304. Artificial Intelligence.
Introduction to the concepts and
algorithms underlying the understanding and construction of intelligent systems. Topics
include search and constraint satisfaction, knowledge representation and reasoning,
advanced search, agents, machine learning, and planning systems.
Prerequisite(s): CPSC
3060 and MATH 2030. (3)
CPSC 4370. Data Mining.
This course provides both theoretical and
practical coverage of the widely used data mining methods. A focus will be placed on
specific analytic and modeling techniques such as data preparation and pre-processing,
association rule analysis, clustering, regression, classification, sequential pattern mining
and model evaluation and selection. Theories underlying these techniques will be
discussed and their application to practical scenarios will be illustrated. Contextualized
projects are designed to help students gain hands-on experience in real-world knowledge
discovery process. Prerequisite(s): CPSC3060, CPSC 3710, and STAT 2020. (3)
CPSC 4410. Programming Languages.
Introduction to the theory and
practice of programming language paradigms. Topics include an overview of
programming languages, language design, virtual machines, language translation, lexical
and syntactic analysis, models of execution, type systems, code generation, and
optimization. Prerequisite(s): CPSC 2730. (3)
CPSC 4470. Robotics and Intelligent Systems.
Presents the theory and
application of robotic and intelligent systems. Topics include solving problems that are
difficult or impractical to solve with other methods, heuristic search and planning
algorithms, sensing and machine learning techniques to control mobile robots.
Prerequisites: CPSC 3060 and MATH 2030. (3)
CPSC 4800. Capstone Project I.
This design-specific course is the
crowning point of an undergraduate curriculum. This course requires the design of a
significant team project that integrates the many concepts and skills learned through the
many Computer Science courses.
Prerequisite(s): CPSC 2740 and all required 3000-
level Computer Science courses. (1, Fa)
CPSC 4805. Capstone Project II.
This implementation-specific course
is the crowning point of an undergraduate curriculum. This course requires the
implementation of a significant team project that integrates the many concepts and skills
learned in your computing courses.
Prerequisite(s): CPSC 4800. Corequisite(s): CPSC
4999 and CPSC 4999P. (2, Sp)
CPSC 4999. Senior Comprehensives.
Assessment of student learning
pertaining to either their computer science curriculum or their computer information
systems curriculum. Corequisite(s): CPSC 4805. (0, Sp)
CPSC 4999P. Senior Comprehensives Programming.
Assessment of
student learning pertaining to computer programming.
Corequisite(s): CPSC 4805. (0,Sp)