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 CS208 - Discrete Mathematics for Computer Science Introduces essential discrete mathematics for computer science. Topics include sets, logic, functions, relations, sequences, matrices, discrete probability, graphs, applied number theory, and algorithm analysis. 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 CS360 - Topics in Computer Science Elective topics in computer science. Examples include natural language processing, human-computer interaction, mobile computing, embedded computing, neural networks, crypto-currency, game design, programming languages, and cryptography. CS491 - Independent Study in Computer Science In depth study of a particular area or topic in computer science. CS499 - Senior Seminar Students will design, implement, and test a substantial computer solution for a third-party stakeholder. Grading will include periodic progress reports, evaluations by instructor and the stakeholder(s), and a final presentation. |