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 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 1230 Intro to Scientific Computing
A breadth-first introduction to the ways computing has and continues to contribute to the body of reliable knowledge. Topics include the early uses of computers for numerical analysis and cracking encrypted codes, the ways computing has enhanced our personal productivity, and the ways current computer algorithms have advanced the discoveries in personalized medicine, computational economics, financial modeling, computer forensics, massively multiplayer online computer gaming, and many other high performance computing areas. This course also offers on introduction to the historical, social, and ethical context of computing with an overview of computer science as a discipline. No prior programming or computer science experience is required. This one-credit course is usually offered in the same semester as the two-credit CPSC 2230 course.
Prerequisite(s): None. (1)

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)

Back to top of page

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 2230. Intro to Computational Data Analysis.
Introduction to the fundamental concepts of acquiring, cleaning, analyzing, and visualizing data using a computer. Topics include how data are collected, which software is useful for analyzing data, and effective ways to present data using a computer. During this course you'll learn to use software tools to analyze large and publicly available datasets. No prior programming or computer science experience is required. Prerequisite(s): Completion of Developmental Math. (2, Fa)

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)

Back to top of page


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)

Back to top of page


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)

Back to top of page