Computer Science (CS)
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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
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.
A specific topic not offered as a formal course during the given academic semester. Offered on application.
Prerequisite(s): approval of instructor.
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.
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.
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.
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.
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.
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.
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.
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.
Basis concepts of operating systems, process management, concurrence, communications, memory management and protection, file systems.
Prerequisite(s): CS225.
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.
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
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.
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.
