Computer Science Department Catalog

Undergraduate & Graduate Catalog


It is the responsibility of the student to become informed and to observe all regulations and procedures required by the program the student is pursuing. Ignorance of a rule does not constitute a basis of waiving that rule. The Undergraduate Catalog & Graduate Catalog, current at the time of the student’s most recent admission gives the academic requirements the student must meet to graduate.

Computer Science Syllabi


CSCI 101 Intro to Computer Science 
This course is an introduction to the building blocks of Computer Science. Students will engage in activities that show how computing changes the world and impacts daily lives. 

CSCI 102 Intro to Computer Science Lab
This course is designed as a complementary lab-based course to accompany CSCI 101 and provide additional practice and support to students who are new to programming. 

CSCI 261 Programming Concepts 
This course introduces fundamental computer programming concepts using a high-level language and a modern development environment. 

CSCI 262 Data Structures
The topics covered in this class help round out the fundamentals of C++ and provide a strong foundation for your future in computer science. 

CSCI 303 Intro to Data Science
This course will teach students the core skills needed for gathering, cleaning, organizing, analyzing, interpreting, and visualizing data. 

CSCI 306 Software Engineering
This course is intended to make you a better software programmer by introducing the processes and considerations of Software Engineering. 

CSCI 358 Discrete Mathematics 
This course is an introductory course in discrete mathematics, covering the following topics: logic, proofs, sets, recursion, counting, probability, graphs, relations and functions. 

CSCI 403 Database Management 
This course is all about the construction, design, and use of databases. 

CSCI 406 Algorithms
This course will naturally appeal to those of you who are mathematically oriented with interests in problem solving and programming competitions. 

CSCI 441 Computer Graphics 
This course focuses on the basic 3D rendering and modeling techniques. 

CSCI 442 Operating Systems
This course introduces the essential concepts in the design and implementation of operating systems: what they can do, what they contain, and how they are implemented.

CSCI 444 Advanced Computer Graphics 
This is an advanced computer graphics course, focusing on modern rendering and geometric modeling techniques. 

CSCI 445 Web Programming 
This course is for programmers who want to develop web-based applications. It covers basic website design extended by client-side and server-side programming. 

CSCI 448 Mobile Application Development 
This course covers basic and advanced topics in mobile application development. Students will design and develop complete applications. 

CSCI 470 Introduction to Machine Learning 
This course is designed to bridge the concepts from class for several different general machine learning concepts to real world applications and create a product that connects customers to the project.  

CSCI 473/573 Human Centered Robotics 
This course focuses on the new field of Human-Centered Robotics (HCR), bridging together research and application of methodology from robotics, human-machine interaction, and cognitive psychology. 

CSCI 555/455 Game Theory & Networks 
This course gives an introduction to fundamental concepts of game theory with a focus on the applications in networks.

CSCI 561 Theory of Computation 
In this course, we will both study fundamental results of computational theory and reduce theory to practice through projects that implement and apply key algorithms of theoretical computer science. 

CSCI 565 Distributed Computing Systems 
This course is an introduction to distributed systems. We will study distributed systems principles associated with time, mutual exclusion, distributed snapshot, coordination, fault tolerance, consensus, transactions, group communication, and replication. 

CSCI 572 Computer Networks II
This course explores how networking is continuing to evolve to support new environments, and challenges in building networked systems.