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 |