Computer Science (CS)

CS105  Computer Literacy  (3.0 Credits)  

An introduction to computers and computer applications intended for non-Computer Science majors. Explore computer concepts and terminology, computer hardware and software, operating systems, the Internet, the Web, computer ethics, and security and privacy. Includes hands-on experience with Microsoft Office 2007 word processing (Word), spreadsheet (Excel), database (Access), presentation graphics (PowerPoint) and communication programs.

CS111  Foundations Of Computer Science  (3.0 Credits)  

A survey of fundamental concepts in computer science. Covers a wide variety of topics including algorithms, automata, language translation, digital logic, machine organization, networking basics and introductory software engineering. This course will be ideal for anyone who wants a broad overview of what computer science is about. Many advanced topics will be introduced from an elementary perspective.

CS120  Introduction to Python  (1.0 Credits)  

An introduction to the Python language, which is widely used for analyzing numerical data and text. This 7.5-week course will cover the concept of a computer program, variables, flow control statements, arrays, strings, dictionaries, functions, and file I/O. Python will be applied to solve problems in compound interest and word counts. Open to all majors. Course may not be used for credits required toward the CIS major.

Prerequisite(s): Placement.

CS123  Computer Programming I  (4.0 Credits)  

An introductory course using the computer language C++. Includes general computer concepts, C++ statements, selection structures, looping, functions, arrays, pointers, and classes. Students will design and code programs to run on their laptops or online.

Prerequisite(s): Placement

CS126  Computer Programming II  (3.0 Credits)  

Continues the introduction to programming begun in CS123 with an emphasis on object-oriented design principles and programming language features that support object orientation. C++ or another object-oriented language will be used for projects throughout the course. Also includes coverage of tools for managing large software projects.

Prerequisite(s): A grade of C or higher in CS123.

CS211  Introduction to Cybersecurity  (3.0 Credits)  

This course covers fundamental cybersecurity principles, threat landscapes, and defense mechanisms, equipping students with the skills necessary to protect digital assets and maintain information security and privacy.

Prerequisite(s): CS123.

CS212  Data Analytics for Business  (3.0 Credits)  

This course studies methods for data visualization, and methods for finding relationships in numerical data or textual data using such techniques as regression analysis, logistic analysis, clustering, and K nearest neighbors. Excel, Python, and other freely available software packages will be used to analyze a variety of business operational and strategic problems. Open to all majors. This course is cross-listed with IS312.

Prerequisite(s): CS120 or CS220

CS220  Python Programming  (3.0 Credits)  

A first course in Python programming including variables and data types, flow control statements, arrays, strings, dictionaries, and list comprehensions. Python will be applied to solve problems in network modelling and machine learning. Students will also learn to display data and algorithmic results using library functions.

Prerequisite(s): A grade of C or higher in CS123.

CS225  Computer Architecture  (3.0 Credits)  

Digital computer systems, representation of data, CPU architecture, assembly language programming techniques, comparative machine architectures, assemblers, loaders and operating systems. Short programs to be written in assembly language will be assigned.

Prerequisite(s): CS123.

CS227  Data Structures  (3.0 Credits)  

Arrays, stacks, queues, linked lists, trees, graphs, searching and sorting algorithms, hashing and recursion principles. An object-oriented programming language such as C++ will be used in writing programs illustrating the implementation of the above concepts on the computer.

Prerequisite(s): CS123 and CS126, or approval of instructor.

CS231  Introduction to Database Systems  (3.0 Credits)  

Comparison of hierarchical, network and relational data models; the three levels of database architecture; function oriented vs. data-oriented system development; conceptual data modeling-entities, attributes, specialization, relationships, cardinality, keys; the relational model and normalization; using relational algebra to answer queries; database security and system recovery.

Prerequisite(s): CS123.

CS232  Applied Data Analysis and Modeling  (3.0 Credits)  

This course focuses on a conceptual understanding of data analysis across disciplines. Topics include linear regression, hypothesis testing, various types of analysis of variance (ANOVA), analysis of covariance (ANCOVA), effect sizes, and power analysis. Using statistical packages such as R, students learn to perform analyses and interpret results, developing skills to evaluate and understand data-driven research critically. This course is cross-listed with MA232.

Prerequisite(s): MA109

CS235  Electronics for Scientists  (4.0 Credits)  

Direct and alternating circuits, diodes and other semiconducting devices; transistors and integrated circuits. Analog functions, digital logic, number systems and codes and counters. 3 hours lecture, 3 hours laboratory.

Prerequisite(s): PH121 and PH122, or permission of instructor.

CS306  Topics in CS or CIS  (3.0 Credits)  

A specific topic not offered as a formal course during the given academic semester. Offered on application.

Prerequisite(s): approval of instructor.

CS322  Software Engineering  (3.0 Credits)  

This course covers the principles of software engineering, including the system development life cycle, requirements analysis, design, implementation, testing, and documentation. The course emphasizes structured methods and tools for developing reliable and maintainable software systems.

Prerequisite(s): CS227 and CS231.

CS324  Algorithmic Analysis  (3.0 Credits)  

Review of basic data structures. Graphs: terminology and properties. Study of algorithms: analysis of complexity for internal and external sorting, shortest path, spanning tree, cut points, connected components. Introduction to NP completeness; approximation algorithms and parallel algorithms. Programs to be assigned using C++ or equivalent.

Prerequisite(s): MA116, MA210, CS227.

CS325  Introduction to Machine Learning  (3.0 Credits)  

This course introduces a fundamental understanding of how machine learning algorithms work, along with hands-on R programming experience to utilize a toolbox of machine learning methods for analyzing real-world datasets. Topics include supervised learning, unsupervised learning, deep learning, and practical applications. This course is cross-listed with MA325.

Prerequisite(s): CS220.

CS326  Survey of Networks & Telecommunications  (3.0 Credits)  

Network architectures, topologies and protocols, operation of bridges, routers and gateways, network performance analysis, privacy, security, reliability, configuration of LAN and WAN networks, communication standards, and intranet and internet.

Prerequisite(s): CS225 or instructor permission.

CS327  Computer Network Administration  (3.0 Credits)  

Combines practical experience with technical understanding. Overview of TCP/IP, protocols, routing, setup, creating and administrating accounts, managing resources, printing environment, server architecture, installations, configurations, security. Hands-on experience with system administration of Windows and Linux. 2 hours lecture, 2 hours laboratory.

Prerequisite(s): CS326.

CS328  Big Data  (3.0 Credits)  

This course introduces the Apache MapReduce programming model and the core technologies that support distributed file systems such as Hadoop. Students will explore key distributed algorithms through practical examples, including design patterns, data mining and machine learning, and statistical optimization techniques. The course emphasizes hands-on experience with MapReduce programming and culminates in an open-ended Hadoop-based project.

Prerequisite(s): CS220 and CS231.

CS329  Artificial Intelligence  (3.0 Credits)  

This course introduces the fundamental concepts and methods of artificial intelligence such as search algorithms, knowledge representation, logical and probabilistic reasoning, reinforcement learning, and natural language processing. Advanced topics include large language models, generative pre-trained transformer (GPT) models, and agentic AI systems.

Prerequisite(s): MA209 and CS220.

CS350  Data Visualization  (3.0 Credits)  

This course introduces the principles and techniques for visualizing data to support exploration, analysis, and communication. Topics include data manipulation, statistical graphics, dashboards, interactive visualizations, and multi-dimensional data considerations in data visualization. This course is cross-listed with MA350.

Prerequisite(s): MA231, CS220.

CS410  Operating Systems  (3.0 Credits)  

Basis concepts of operating systems, process management, concurrence, communications, memory management and protection, file systems.

Prerequisite(s): CS225.

CS414  Research Problem in CS or CIS  (1.0 Credits)  

This course provides students with an opportunity to participate in an independent research project under the guidance of a faculty member. This may be a historical approach to a known problem or an original approach to a problem arising from coursework. Students may register and receive 1 to 4 credits more than once; students may not exceed a total of 6 credits toward the major.

CS415  Internship  (1.0 Credits)  

Students have the opportunity to work in an industrial, nonprofit, or advanced academic research atmosphere. Credit will be determined by the length of the experience, with a minimum of 40 hours per credit. Course will be graded as Pass/Fail. Students may register and receive 1 to 4 credits more than once; may not exceed a total of 8 credits.

Prerequisite(s): CS227

CS433  Numerical Analysis  (3.0 Credits)  

Methods of obtaining numerical solutions to various types of mathematical problems. Numerical solutions of systems of linear and nonlinear equations; interpolation; least squares approximations; numerical differentiation and integration; introduction to numerical methods of differential equations. Programs will be assigned illustrating these methods.

Prerequisite(s): MA116 and CS123, or permission of instructor.

CS450  Applications Project  (3.0 Credits)  

A faculty-directed, hands-on experience for advanced CS and CIS students. The nature of each project will be determined by current student and faculty interests. Some possible projects involve relational database design, web programming, or network design. This course provides an open-ended mechanism by which students may gain practical, team-oriented experience at an advanced level prior to graduation.

Prerequisite(s): any CS course level 200 and above.