| CS 11-C1 |
Intro Computer ScienceThe study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language — namely C++ — and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. Students who have completed CS 15 with a C- or better cannot subsequently earn credit for CS11. |
T 7:30p-9:00p TBA |
| CS 11-M1 |
Intro Computer ScienceThe study of computer science centers on two complementary aspects of the discipline. First, computer science is fundamentally concerned with the problem-solving methodologies it derives from its foundational fields: the design principles of engineering, mathematical theory, and scientific empirical study. Second, these methodologies are applied in the complex context of a modern day computing system. In this course we will address both of these important aspects. As a means for developing your design skills, we will discuss the fundamental features of a high level, general purpose programming language — namely C++ — and learn how to use it as a tool for problem solving. We will also consider the performance of solutions, and how to apply both analytical and empirical assessment techniques. Finally, we will explore the Unix operating system as a context for problem solving. Students who have completed CS 15 with a C- or better cannot subsequently earn credit for CS11. |
T 7:30p-9:00p Online |
| CS 15-C1 |
Data StructuresA second course in computer science. Data structures and algorithms are studied through major programming projects. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion. Enrollment priority given to freshmen or sophomores; computer science majors or minors; or majors or minors that list CS15 as a requirement or elective. |
M 7:30p-9:00p TBA |
| CS 15-C2 |
Data StructuresA second course in computer science. Data structures and algorithms are studied through major programming projects. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion. Enrollment priority given to freshmen or sophomores; computer science majors or minors; or majors or minors that list CS15 as a requirement or elective. |
M 1:30-3:00 Joyce Cummings Center 402 W 1:30-3:00 Joyce Cummings Center 240 |
| CS 15-M1 |
Data StructuresA second course in computer science. Data structures and algorithms are studied through major programming projects. Topics include linked lists, trees, graphs, dynamic storage allocation, and recursion. Enrollment priority given to freshmen or sophomores; computer science majors or minors; or majors or minors that list CS15 as a requirement or elective. |
M 7:30p-9:00p Online |
| CS 30-C1 |
Programming for Data ScienceFundamentals of programming for data-intensive science. Data structures and algorithms for data manipulation, cleaning, and preparation. Design of data manipulation programs. Coding standards and practices. Use and creation of software libraries. Techniques for improving program performance. Examples drawn from data preparation and transformation, statistical data analysis, machine learning, deep learning, and deep data science including recommendation systems and trend analysis. |
W 7:30p-9:00p TBA |
| CS 30-M1 |
Programming for Data ScienceFundamentals of programming for data-intensive science. Data structures and algorithms for data manipulation, cleaning, and preparation. Design of data manipulation programs. Coding standards and practices. Use and creation of software libraries. Techniques for improving program performance. Examples drawn from data preparation and transformation, statistical data analysis, machine learning, deep learning, and deep data science including recommendation systems and trend analysis. |
W 7:30p-9:00p Online |
| CS 61-C1 |
Discrete Mathematics(Cross-listed as MATH 61). Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs. Recommendations: MATH 32 or COMP 11 or permission of instructor. |
R 7:30p-9:00p TBA |
| CS 61-M1 |
Discrete Mathematics(Cross-listed as MATH 61). Sets, relations and functions, logic and methods of proof, combinatorics, graphs and digraphs. Recommendations: MATH 32 or COMP 11 or permission of instructor. |
R 7:30p-9:00p Online |
| CS 115-C1 |
Database SystemsFundamental concepts of database systems, including conceptual design, relational and object-oriented data models, query languages (SQL, QBE), and implementation issues (indexing, transaction processing, concurrent control). The concepts and algorithms covered encompass many of those used in commercial and experimental database systems. Other topics include distributed databases and distributed query processing. Recommendations: CS 40 |
T 7:30p-9:00p TBA |
| CS 115-M1 |
Database SystemsFundamental concepts of database systems, including conceptual design, relational and object-oriented data models, query languages (SQL, QBE), and implementation issues (indexing, transaction processing, concurrent control). The concepts and algorithms covered encompass many of those used in commercial and experimental database systems. Other topics include distributed databases and distributed query processing. Recommendations: CS 40 |
T 7:30p-9:00p Online |
| CS 116-C1 |
Introduction to SecurityA holistic and broad perspective on cyber security. Attacking and defending networks, cryptography, vulnerabilities, reverse engineering, web security, static and dynamic analysis, malware, forensics. Principles illustrated through hands-on labs and projects, including Capture The Flag (CTF) games. |
W 5:30p-7:00p Joyce Cummings Center 302 |
| CS 116-M1 |
Introduction to SecurityA holistic and broad perspective on cyber security. Attacking and defending networks, cryptography, vulnerabilities, reverse engineering, web security, static and dynamic analysis, malware, forensics. Principles illustrated through hands-on labs and projects, including Capture The Flag (CTF) games. |
W 5:30p-7:00p Online |
| CS 120-C1 |
Web Programming & EngineeringWeb applications as complex systems that deliver functionality to a large number of users, and exhibit unique behaviors and demands in terms of performance, scalability, usability, and security. How the web works, limitations of client-side and server-side technologies including frameworks and APIs, content optimization, and data persistence and storage. Projects will involve search, using the cloud infrastructure, location-based services, mobile web development, and using tools to assess the security and privacy of web applications. Students may receive credit for either CS20 or CS120, but not both. |
M 5:30p-7:00p TBA |
| CS 120-M1 |
Web Programming & EngineeringWeb applications as complex systems that deliver functionality to a large number of users, and exhibit unique behaviors and demands in terms of performance, scalability, usability, and security. How the web works, limitations of client-side and server-side technologies including frameworks and APIs, content optimization, and data persistence and storage. Projects will involve search, using the cloud infrastructure, location-based services, mobile web development, and using tools to assess the security and privacy of web applications. Students may receive credit for either CS20 or CS120, but not both. |
M 5:30p-7:00p Online |
| CS 121-C1 |
Software EngineeringCore principles and ideas that enable development of large-scale software systems, with a focus on programming. Abstraction, modularity, design patterns, specification, testing, verification, and debugging. |
M 7:00p-8:30p TBA |
| CS 121-M1 |
Software EngineeringCore principles and ideas that enable development of large-scale software systems, with a focus on programming. Abstraction, modularity, design patterns, specification, testing, verification, and debugging. |
M 7:00p-8:30p Online |
| CS 131-C1 |
Artificial IntelligenceHistory, theory, and computational methods of artificial intelligence. Basic concepts include representation of knowledge and computational methods for reasoning. One or two application areas will be studied, to be selected from expert systems, robotics, computer vision, natural language understanding, and planning. |
M 7:30p-9:00p TBA |
| CS 131-M1 |
Artificial IntelligenceHistory, theory, and computational methods of artificial intelligence. Basic concepts include representation of knowledge and computational methods for reasoning. One or two application areas will be studied, to be selected from expert systems, robotics, computer vision, natural language understanding, and planning. |
M 7:30p-9:00p Online |
| CS 135-C1 |
Intro Machine LearningAn overview of methods whereby computers can learn from data or experience and make decisions accordingly. Topics include supervised learning, unsupervised learning, reinforcement learning, and knowledge extraction from large databases with applications to science, engineering, and medicine. Recommendations: CS 160 is highly recommended. |
T 5:30p-7:00p TBA |
| CS 135-M1 |
Intro Machine LearningAn overview of methods whereby computers can learn from data or experience and make decisions accordingly. Topics include supervised learning, unsupervised learning, reinforcement learning, and knowledge extraction from large databases with applications to science, engineering, and medicine. Recommendations: CS 160 is highly recommended. |
T 5:30p-7:00p Online |
| CS 160-C1 |
AlgorithmsIntroduction to the study of algorithms. Strategies such as divide-and-conquer, greedy methods, and dynamic programming. Graph algorithms, sorting, searching, integer arithmetic, hashing, and NP-complete problems. High demand (see "course notes" for signup procedure). |
W 6:30p-8:30p TBA |
| CS 160-M1 |
AlgorithmsIntroduction to the study of algorithms. Strategies such as divide-and-conquer, greedy methods, and dynamic programming. Graph algorithms, sorting, searching, integer arithmetic, hashing, and NP-complete problems. High demand (see "course notes" for signup procedure). |
W 6:30p-8:30p Online |
| CS 170-C1 |
Computation Theory(Cross-listed as MATH 191). Models of computation: Turing machines, pushdown automata, and finite automata. Grammars and formal languages, including context-free languages and regular sets. Important problems, including the halting problem and language equivalence theorems. |
R 6:30p-8:00p TBA |
| CS 170-M1 |
Computation Theory(Cross-listed as MATH 191). Models of computation: Turing machines, pushdown automata, and finite automata. Grammars and formal languages, including context-free languages and regular sets. Important problems, including the halting problem and language equivalence theorems. |
R 6:30p-8:00p Online |
spring 2026