CS 1400 - Fundamentals of Programming
Credit Hours: 3
Prerequisite(s): MAT 1010 or MAT 1015 with a B or better, or MAT above 1015 or ACT score 23 or higher or ALEKS score 38
or higher. CS 1030 recommended
Introduces techniques and tools to formulate and solve problems where computer algorithms
and programs are a core part of an effective, repeatable solution. Demonstrates algorithmic
thinking using procedural programs composed of sequences of commands, functions, loops,
conditionals, and basic data structures. May be delivered online.
Lab access fee of $45 for computers applies.
Section Syllabi:
cs-1400-001-202520
cs-1400-002-202520
cs-1400-003-202520
cs-1400-004-202520
cs-1400-005-202520
cs-1400-006-202520
cs-1400-603-202520
cs-1400-x01-202520
cs-1400-x02-202520
cs-1400-x03-202520
CS 1410 - Object Oriented Programming
Credit Hours: 3
Prerequisite(s): CS 1400 and (MATH 1050 or MATH 1055 with a C+ or better, or MATH above 1050)
Teaches proper program structure using the core concepts of object-oriented programming:
classes, objects, encapsulation, inheritance and polymorphism. Presents problems of
increasing size and complexity requiring OOP techniques, standard libraries and other
appropriate language constructs.
Lab access fee of $45 for computers applies.
Section Syllabi:
cs-1410-001-202520
cs-1410-002-202520
cs-1410-003-202520
cs-1410-602-202520
cs-1410-x01-202520
cs-1410-x02-202520
cs-1410-x03-202520
CS 1420 - Accelerated Introduction to Programming
Credit Hours: 3
Prerequisite(s): MAT 1010 or MAT 1015 with a B or better, or ACT score 23 or higher or ALEKS score 38 or higher. Pass CS 1420 Entrance Exam.
Teaches techniques, tools and skills necessary to effectively program computers. Demonstrates
algorithmic thinking using procedural and object-oriented concepts. Presents problems
of increasing size and complexity requiring standard libraries and other appropriate
language constructs. May be delivered online.
Section Syllabi:
cs-1420-001-202520
CS 2300 - Discrete Mathematical Structures I
Credit Hours: 3
Prerequisite(s): (CS 1410 or INFO 2200) and MATH 1050 or higher
Covers algebraic structures applied to computer programming. Includes logic, sets,
elementary number theory, mathematical induction, recursion, algorithm complexity,
combinatorics, relations, graphs, and trees.
Lab access fee of $45 for computers applies.
Section Syllabi:
cs-2300-001-202520
cs-2300-x01-202520
cs-2300-x02-202520
CS 2370 - C Plus Plus Programming WE
Credit Hours: 3
Prerequisite(s): CS 1410
Introduces C++ programming for students with prior programming experience. Covers
language fundamentals, core standard library components, error handling, value semantics,
pointers and memory management, object-oriented programming, and templates.
Lab access fee of $45 for computers applies.
Section Syllabi:
cs-2370-001-202520
cs-2370-002-202520
cs-2370-601-202520
CS 2420 - Introduction to Algorithms and Data Structures
Credit Hours: 3
Prerequisite(s): CS 1410
Uses data abstraction to design and implement modular programs of medium size and
complexity. Structures solutions to problems using common data structures and algorithms
such as advanced arrays, lists, stacks, records, dynamic data structures, searching
and sorting, vectors, trees, linked lists, and graphs. Evaluates alternative solutions
to problems. Analyzes algorithmic complexity metrics in Big-O notation.
Lab access fee of $45 for computers applies.
Section Syllabi:
cs-2420-001-202520
cs-2420-002-202520
cs-2420-004-202520
cs-2420-x01-202520
CS 2450 - Software Engineering
Credit Hours: 3
Prerequisite(s): CS 2300, CS 2420
Presents concepts, methodology and best-practices necessary to develop large scale
software projects. Includes step-wise software requirements analysis, design, implementation,
testing and release. Discusses software generation, reuse, scheduling, verification,
and maintenance. Emphasizes current "real world" industry best-practices and tools.
Lab access fee of $45 for computers applies.
Section Syllabi:
cs-2450-002-202520
cs-2450-601-202520
cs-2450-x01-202520
cs-2450-x02-202520
CS 2550 - Web Programming I
Credit Hours: 3
Prerequisite(s): CS 1410 or DWDD 2720 or INFO 1200
Covers design and development of browser-based programs with an emphasis on single-page
applications. Teaches generation and modification of HTML via JavaScript, debugging
techniques, communicating with web servers, and use of XML and JSON.
Lab access fee of $45 for computers applies.
Section Syllabi:
cs-2550-001-202520
cs-2550-601-202520
cs-2550-x02-202520
CS 2600 - Computer Networks I
Credit Hours: 3
Prerequisite(s): CS 2810 or (INFO 1200 and IT 1600)
A rigorous introduction to computer networking theory and technologies for Computer
Science and Information Technology majors. Includes theory of data communications
protocols; theory and design of transmission systems; transmission media; and communication
software. Emphasizes the lower layers of the Open Systems Interconnection model. Requires
lab exercises to be completed outside of lecture.
Lab access fee of $45 for computers applies.
Section Syllabi:
cs-2600-001-202520
cs-2600-601-202520
cs-2600-602-202520
CS 2700 - Causal Inference
Credit Hours: 3
Prerequisite(s): CS 1400
Explores a variety of data generating processes of importance for causal inference
with computer simulations. Includes stratified sampling, inverse probability weighting,
matching, blocking, propensity, sensitivity, causal graphs, d-separation, identifiability,
the causal Markov condition, and the back-door criterion for selecting an admissible
set of covariates. Examines causal mechanisms, the Rubin causal model, and both deterministic
and stochastic counterfactuals. Develops ethical A/B testing procedures.
Section Syllabi:
cs-2700-001-202520
CS 2810 - Computer Organization and Architecture
Credit Hours: 3
Prerequisite(s): CS 1400
Uses assembly language to introduce basic concepts of computer organization. Includes
number systems, CPU organization, instruction sets, programming in assembly, memory
organization, debugging, program design, and documentation. Covers interrupts, vector
tables, and disk I/O.
Lab access fee of $45 for computers applies.
Section Syllabi:
cs-2810-001-202520
cs-2810-002-202520
cs-2810-003-202520
cs-2810-x03-202520
CS 3060 - Operating Systems Theory
Credit Hours: 3
Prerequisite(s): CS 2370, CS 2420, and University Advanced Standing. If a computer science or software engineering
major, also CS 2810 and matriculation to computer science or software engineering. If a computer engineering
major, also ECE 2700 and ECE 3730
Introduces the Unix operating system. Presents the underlying theory and concepts
of an operating system, and covers the following topics in depth: device management,
processes, threads, synchronization, scheduling, deadlocks, memory management, virtual
memory, and file systems. Provides practical experience in writing programs that use
standard Unix system calls to interface directly with the operating system.
Lab access fee of $45 for computers applies.
Section Syllabi:
cs-3060-002-202520
cs-3060-601-202520
cs-3060-x01-202520
cs-3060-x02-202520
CS 3100 - Data Privacy and Security
Credit Hours: 3
Prerequisite(s): CS 2420 and University Advanced Standing
Covers the fundamental theory, concepts and practical applications of computer security.
Includes networking fundamentals, cryptography, authentication and authorization,
access control, malware, physical security, computing systems hardening, threat detection
and response, secure code, and secure applications development. Emphasizes developing,
deploying, and maintaining a secure computing infrastructure with a hands-on approach.
Section Syllabi:
cs-3100-001-202520
cs-3100-x01-202520
cs-3100-x02-202520
CS 3270 - Python Software Development
Credit Hours: 3
Prerequisite(s): CS 2420 or INFO 2200, matriculation to computer science or software engineering if computer science or
software engineering major, and University Advanced Standing
Covers the features of the Python programming language. Includes scripting, dynamic
typing, data types (sequences, sets, mappings, files, etc.), loops, iterators, generators,
functions, coroutines, classes and objects, modules, packages and scope, runtime services,
data wrangling, concurrent programming, etc.
Lab access fee of $45 for computers applies.
Section Syllabi:
cs-3270-x01-202520
cs-3270-x02-202520
CS 3310 - Analysis of Algorithms
Credit Hours: 3
Prerequisite(s): Matriculation into Computer Science or Software Engineering, and
University Advanced Standing
Develops and reinforces ability to write and mathematically analyze foundational computer
algorithms. Includes formalizing NP-completeness, divide and conquer strategies, greedy
algorithms, dynamic programming, backtracking, branch and bound, approximation algorithms
and multicore parallelization.
Lab access fee of $45 for computers applies.
Section Syllabi:
cs-3310-001-202520
cs-3310-002-202520
CS 3450 - Principles and Patterns of Software Design
Credit Hours: 3
Prerequisite(s): (CS 3250 or CS 3260 or CS 3270 or CS 3370 or CS 3380) and University Advanced Standing
Gives students familiarity with modern principles and practices of software design.
Emphasizes design patterns, including their motivation and the design principles on
which they are based.
Lab access fee of $45 for computers applies.
Section Syllabi:
cs-3450-001-202520
cs-3450-002-202520
CS 3520 - Database Theory
Credit Hours: 3
Prerequisite(s): Matriculation to computer science or software engineering and University
Advanced Standing
Introduces the underlying theories of Relational Database Management Systems (RDBMS)
as well as their practical use retrieving data using both embedded SQL and relational
algebra. Implements queries that start from simply joining, selecting, and projecting
data, then progresses to more complex data retrieval techniques that require the use
of set operations, sub-queries, and group by having clauses. Discusses entity-relationship
(ER) modeling, creating a RDBMS from an ER model, B+ Trees, ACID transactions, normalization,
locking, concurrency issues, and alternatives to an RDBMS.
Lab access fee of $45 for computers applies.
Section Syllabi:
cs-3520-002-202520
cs-3520-x01-202520
cs-3520-x02-202520
CS 3530 - Data Management For Data Sciences
Credit Hours: 3
Prerequisite(s): CS 3520 and University Advanced Standing
Covers advanced relational databases and issues related to managing non-relational
data sets. Has two major components: (1) advances knowledge in relational database
and skills in using SQL and database indexing; and (2) introduces NoSQL databases
such as a document-oriented database, key-value database, column-oriented database,
graph database, and Hadoop system and data warehousing. Justifies the need for NoSQL
databases, and shows how they are implemented in database systems. Presents criteria
that decision makers should consider when choosing between relational and non-relational
databases and techniques for selecting the NoSQL database that best addresses specific
use cases.
Section Syllabi:
cs-3530-601-202520
CS 3820 - Visualization Analytics for Data Science
Credit Hours: 3
Prerequisite(s): CS 3530 and University Advanced Standing
Introduces visual analytics methods and techniques to support human reasoning and
decision-making with data. Presents visualization as the primary tool for recognizing
and communicating the significance, meaning and decision-making from massive, dynamic,
often conflicting, data. Includes both theoretical foundations and application methods,
which presents a comprehensive view of this emerging, multidisciplinary field beyond
simply learning to use visualization tools. Includes choosing the right visualization
for the questions being asked, the data and the target audience; translating numbers
to images; showing data or statistics; showing uncertainty, time trends; presenting
results of machine learning techniques; many variables; big data; and maps and networks.
Covers pie charts, bar charts, histograms, simple metrics, scatterplots, maps.
Section Syllabi:
cs-3820-001-202520
CS 4710 - Machine Learning II
Credit Hours: 3
Prerequisite(s): CS 4700 and University Advanced Standing
Applies Deep Learning models to problems in a variety of application domains that
use massive data sets, such as recommender systems, novel text, image and music generation,
sentiment analysis. Implements working models using algorithms such as recurrent neural
nets, convolutional neural nets, deep belief nets, and deep reinforcement learning.
Uses modern toolkits such as Tensorflow.
Section Syllabi:
cs-4710-601-202520
CS 4800 - Data Science Capstone WE
Credit Hours: 3
Prerequisite(s): CS 3530 and University Advanced Standing
Solves a real-world data science problem or dilemma for an industry partner. Provides
an opportunity to work in teams on a project from an industrial firm. Includes realistic
industry evaluations such as teamwork, communication, individual initiative, and final
product.
Section Syllabi:
cs-4800-001-202520
CS 6460 - Artificial Intelligence
Credit Hours: 3
Prerequisite(s): Acceptance into the Master of Computer Science program or Graduate
Certificate in Artificial Intelligence program
Presents foundational AI algorithms. Explores state space search, local search, adversarial
search, constraint satisfaction problems, logic and reasoning, expert systems, Markov
Models, Bayesian networks, particle filters, planning, reinforcement learning, and
multilayer perceptrons. Studies practical implementations of AI algorithms.
Section Syllabi:
cs-6460-i01-202520
CS 6480 - Deep Learning
Credit Hours: 3
Prerequisite(s): Acceptance into the Master of Computer Science program or Graduate
Certificate in Artificial Intelligence program
Presents advanced models, algorithms, approaches and applications in neural networks
and machine learning. Broadens and deepens the horizons of study of the philosophy
and utility of machine learning models beyond what is covered in Machine Learning.
Includes advanced gradient descent models, bayesian methods, boltzmann machines, recurrent
neural nets, hidden markov models, randomized optimization, hopfield nets, computer
vision, modern toolkits, learning from gigantic data.
Section Syllabi:
cs-6480-001-202520
CS 6500 - Software Architecture
Credit Hours: 3
Prerequisite(s): Acceptance into the Master of Computer Science program or Graduate
Certificate in Artificial Intelligence program
Evaluates software architecture and the high level design of large scale software
systems. Explores common architectural styles and patterns. Teaches techniques of
documenting and assessing software architectures. Teaches characteristics of software
architecture evolution. Evaluates several large-scale software architectures.
Section Syllabi:
cs-6500-001-202520
CS 6510 - Design and Simulation of Operating Systems
Credit Hours: 3
Prerequisite(s): Acceptance into the Master of Computer Science program or Graduate
Certificate in Artificial Intelligence program
Analyzes current topics in operating systems design and simulation. Covers modern
computer architecture; several types of memory management; current scheduling algorithms
for multiple processes; disk management; virtual memory and interprocess communication.
Section Syllabi:
cs-6510-601-202520
CS 6600 - Graduate Project I
Credit Hours: 3
Prerequisite(s): CS 6300, CS 6510
Teaches the design and development of a walking skeleton with students participating
in all aspects of software development, including: requirements elicitation, architecture,
design, implementation, testing, and deployment. First semester of a two-semester
capstone course.
Section Syllabi:
cs-6600-i03-202520
CS 6610 - Graduate Project II
Credit Hours: 3
Prerequisite(s): CS 6600
Guides through completion and delivery of the large-scale system started in CS 6600. Delivers appropriate system documentation. Teaches the writing and execution of
system tests that ensure a high quality system. Must be taken immediately after CS 6600.
Section Syllabi:
cs-6610-i01-202520
cs-6610-i02-202520
cs-6610-i03-202520
cs-6610-i04-202520
CS 6700 - Advanced Mathematics for Computer Science
Credit Hours: 3
Prerequisite(s): Acceptance into the Master of Computer Science program or Graduate
Certificate in Artificial Intelligence program
Solves computer science problems using advanced mathematical models. Applies calculus
functions of multiple variables, linear equations, matrix algebra, determinants, Gaussian
elimination, eigenvalues, linear programming, and finite-state Markov chains.
Section Syllabi:
cs-6700-601-202520