CS

Undergraduate // Minors // Computational Sciences Concentrations

Computer Science and Artificial Intelligence

Learn the theory and practice of computer science, from the foundations of computation to the engineering of large scale software projects.

Core courses

Computer Science and Artificial Intelligence (Computational Sciences Minor)

CS110 / Problem Solving with Data Structures and Algorithms

Apply core concepts in design and analysis of algorithms, data structures, and computational problem-solving techniques to address complex problems. Hashing, searching, sorting, tree algorithms, dynamic programming, greedy algorithms, divide and conquer, backtracking, random number generation, and randomized algorithms are examples of algorithms you will learn to exploit to solve problems ranging from logistics to route optimization to DNA sequencing.

Prerequisite: CS51 / Formal AnalysesCS51B / Programming

Corequisite:

CS113 / Theory and Applications of Linear Algebra

This course develops the tools necessary for the analysis of linear systems. The emphases are both on abstract notions such as vectors spaces, linear maps between them and their matrix representations, and concrete applications such as Markov chains and graphical network analysis. Students apply their knowledge to explore a wide variety of problems such as Page Rank, least squares fitting, and traffic modeling. Note: This course was previously CS111B. In addition to the listed prerequisites, the following courses are recommended prior to taking this course: CS111

Prerequisite: CS51 / Formal Analyses

Corequisite:

Concentrations Courses

Computer Science and Artificial Intelligence (Computational Sciences Minor)

CS142 / Theory of Computation

Students learn about models of computation that provide the theoretical basis for modern computer science. Topics include deterministic and nondeterministic finite state machines, Turing machines, formal language theory, computational complexity and the classification of algorithms. Students practice building a variety of automata and Turing machines using Python. What are the language grammars? and what role does a grammar plays in the way we analyze problems, solve problems, communicate with the computer, and even analyze natural languages? What makes a problem difficult to solve? Are some problems intrinsically harder than others, or is it that just because we have not yet discovered more efficient solutions? What, if any, are the limits of what can be solved with a computer? The techniques presented in this course shed light on why some computational problems are hard or even tractable. Students also gain experience communicating mathematical ideas in a rigorous fashion.

Prerequisite: CS110 / Problem Solving with Data Structures and Algorithms

Co-rerequisite:

CS152 / Theory and Applications of Artificial Intelligence

Apply methods and algorithms from Artificial Intelligence (AI) — such as propositional logic, logic programming, predicate calculus, and computational reasoning — to a diverse range of applications from robot navigation to restaurant selection with expert systems. Discover AI in action through an exploration of robotics, and gain an appreciation of its convergence towards modern machine learning methods. NOTE: In addition to the listed prerequisites, the following courses are recommended prior to taking this course: CS113

Prerequisite: CS110 / Problem Solving with Data Structures and Algorithms

Co-rerequisite:

CS162 / Software Engineering: Building Powerful Applications

This course is organized around the principle that the only way to learn software development is to develop software. Work together as a team to develop a significant web application. Examples include a social media application or a distributed chat system. You will have the opportunity to apply and experience all aspects of software development, including requirements analysis, design, planning, implementation, testing, and deployment.

Prerequisite: CS110 / Problem Solving with Data Structures and Algorithms

Co-rerequisite: