The Computer Science Minor offers students in all majors the opportunity to develop skills in writing algorithms to solve problems and to understand the fundamental concepts of computer science. This minor contains both theoretical and practical elements of the computer science field, with algorithm implementation and computability being prime examples. Further, the departmental goals of expressing and interpreting mathematical relationships from numeric, symbolic, and graphical points of view; reading and constructing mathematical proofs; analyzing various discrete and continuous probability models; and applying mathematics to other disciplines are directly addressed by this minor.
A student must complete a minimum of 21 credit hours.
The following courses are required (15 credit hours)
- MA208 - Discrete Mathematics
- CS135 - Introduction to Computer Science
- CS235 - Introduction to Data Science
- CS308 - Theory of Computation
- CS337 - Algorithms and Data Structures
To complete the remaining 6 credit hour requirements, the student may choose two courses, one of which must bear a CS or IS prefix, from the following:
- CS300 - Advanced Discrete Mathematics
- CS342 - Artificial Intelligence
- IS221 - Programming Fundamentals
- IS321 - Systems Analysis and Design
- IS470 - Business Intelligence and Big Data
- MA420 - Mathematical Logic
Mathematics majors with a Data Science emphasis may not earn a Computer Science Minor. Note that some of these courses have prerequisites that need to be met. See course descriptions for details.
Computer Science Minor Required Courses
CS135 - Introduction to Computer Science
A first computer science course taken by students in mathematics and science, as well as those seeking the dual-degree program in computer science. Topics include fundamentals of computation and algorithmic problem-solving, data types, control structures, basic graphics, the object-oriented programming paradigm and applications. Introduces a high-level programming language such as Python. Prerequisite: MA110 or equivalent
CS235 - Introduction to Data Science
A continuation of CS 135. Emphasizes analysis of algorithms, computational mathematics, and advanced object-oriented programming (interfaces, multiple inheritance). Topics include abstract data types (stacks, queues, lists, strings, trees), computational complexity, recursion, optimization, stochastic programming, and Monte Carlo simulation. Programs are implemented in a high-level programming language such as Python. Prerequisite: CS135
CS300 - Advanced Discrete Mathematics
An examination of discrete mathematics topics of particular relevance to computer scientists. Includes computational complexity, cryptography, discrete probability, graphs, trees, networks, petri nets, Boolean algebra and combinatorial circuits, data representation, and instruction set architectures. Prerequisite: MA208
CS308 - Theory of Computation
An introduction to the theory of computation emphasizing formal languages, automata, and computability. Includes computational complexity and NP-completeness. Prerequisite: MA208.
CS337 - Algorithms and Data Structures
Study of algorithms and data structures. Prerequisite: CS235 or consent of instructor
CS342 - Artificial Intelligence
Introduction to the theory and practice of artificial intelligence. Topic areas selected from heuristic search techniques, knowledge representation, symbolic reasoning, fuzzy logic, planning, learning, natural language processing, expert systems, genetic programming, intelligent agents, swarm intelligence, and neural networks. Prerequisite: MA208 and CS337, or consent of instructor
IS221 - Programming Fundamentals
This course introduces students to the process of creating and implementing typical solutions to business problems requiring computer programming skills and understanding. The main focus in this course will be to help the student understand the basic concepts of computer programming, emphasizing design over syntax in an Object Oriented approach using the Java programming language.
IS321 - Systems Analysis and Design
Advanced study of systems development and modification processes. Emphasis on strategies and techniques of analysis and design for modeling complex system requirements. Use of data modeling tools and object-oriented approaches to analysis and design. Emphasis on factors for effective communication and integration with users and user systems. Prerequisite: IS221 or consent of instructor
IS470 - Business Intelligence and Big Data
An in-depth study of various aspects of data collection, data extraction, and knowledge discovery on the Web for e-business intelligence and other massive databases. Data mining is the process of automatic discovery of patterns, changes, associations and anomalies in massive databases. This course will provide an introduction to the main topics in data mining and knowledge discovery. Emphasis will be placed on the algorithmic and systems issues, as well as application of mining in real-world problems. Prerequisite: IS270 or consent of instructor
MA208 - Discrete Mathematics
Introduces basic techniques of proof and combinatorial problem solving. Topics include graphs, trees, logic, applied combinatorics, and number theory. Prerequisite: completion of or concurrent enrollment in MA140
MA420 - Mathematical Logic
An introduction to mathematical logic and metamathematics. Includes predicate calculus, proof theory, formal axiomatic theories, consistency, completeness, and decidability. Prerequisite: MA208