CSE courses

CSE Core Courses

Applied Math 205 - Advanced Scientific Computing: Numerical Methods
Christopher Rycroft, Assistant Professor. Fall Term, Tues/Thurs 10:30 - 11:45 AM.

An examination of the mathematical foundations of a range of well-established numerical algorithms, exploring their use through practical examples drawn from a range of scientific and engineering disciplines. Emphasizes theory and numerical analysis to elucidate the concepts that underpin each algorithm. There will be a significant programming component. Students will be expected to implement a range of numerical methods through individual and group-based project work to get hands-on experience with modern scientific computing.

Applied Math 207 - Advanced Scientific Computing: Stochastic Methods for Data Analysis, Inference and Optimization
Rahul Dave, Lecturer. Fall Term, Mon/Wed 12:00 PM - 1:30 PM.

Develops skills for computational research with focus on stochastic approaches, emphasizing implementation and examples. Stochastic methods make it feasible to tackle very diverse problems when the solution space is too large to explore systematically, or when microscopic rules are known, but not the macroscopic behavior of a complex system. Methods will be illustrated with examples from a wide variety of fields, like biology, finance, and physics.

Computer Science 205 - Computing Foundations for Computational Science
Ignacio Llorente, Visiting Professor in Computational Science and David Sondak, Lecturer. 
Spring Term, Tues/Thurs 1:30 PM - 2:45 PM.

Computational science has become a third partner, together with theory and experimentation, in advancing scientific knowledge and practice, and an essential tool for product and process development and manufacturing in industry. Big data science adds the `fourth pillar? to scientific advancements, providing the methods and algorithms to extract knowledge or insights from data. The course is a journey into the foundations of Parallel Computing at the intersection of large-scale computational science and big data analytics. Many science communities are combining high performance computing and high-end data analysis platforms and methods in workflows that orchestrate large-scale simulations or incorporate them into the stages of large-scale analysis pipelines for data generated by simulations, experiments, or observations. This is an applications course highlighting the use of modern computing platforms in solving computational and data science problems, enabling simulation, modeling and real-time analysis of complex natural and social phenomena at unprecedented scales. The class emphasizes on making effective use of the diverse landscape of programming models, platforms, open-source tools, computing architectures and cloud services for high performance computing and high-end data analytics.

Computer Science 207 - Systems Development for Computational Science 
David Sondak, Lecturer. Fall Term, Tues/Thurs 12:00 PM - 1:15 PM.

This is a project-based course emphasizing designing, building, testing, maintaining and modifying software for scientific computing. Students will work in groups on a number of projects, ranging from small data-transformation utilities to large-scale systems. Students will learn to use a variety of tools and languages, as well as various techniques for organizing teams. Most important, students will learn to fit tools and approaches to the problem being solved.

Applied Computation 297r - Computational Science and Engineering Capstone Project 
Pavlos Protopapas, Lecturer. Spring Term, Tues 3:00 - 5:45 PM.

The CSE capstone project is intended to integrate and apply the skills and ideas CSE students acquire in their core courses and electives. By requiring students to complete a substantial and challenging collaborative project, the capstone course will prepare students for the professional world and ensure that they are trained to conduct research. There will be no homework or lectures. Students will be dealing with real-world problems, messy data sets, and the chance to work on an end-to-end solution to a problem using computational methods.


CSE Applied Math & Computer Science Electives List

The CSE Program Committee has approved the following courses for inclusion as AM and CS electives in SM, ME, and Secondary Field plans of study. This list is not meant to limit students' elective choices. In particular, students who have taken a course listed here (or its equivalent) and wish deeper exploration are encouraged to propose more advanced courses.  Note: Many, but not all, courses are offered every year.


Approved CSE Applied Math electives
AM 201 Physical Mathematics I Fall 
AM 202 Physical Mathematics II Spring
AM 221 Advanced Optimization Spring
AM 225 Advanced Scientific Computing: Numerical Methods for Partial Differential Equations Spring
AM 231 Decision Theory Spring
AC 227  Computational Methods in the Physical Sciences Fall
AC 275  Computational Design of Materials Spring


Approved CSE Computer Science electives  
CS 109a*/AC 209a Introduction to Data Science Fall
CS 109b*/AC 209b Advanced Topics in Data Science Spring
CS 124 Data Structures and Algorithms* Spring
CS 165 Data Systems* Fall
CS 171 Visualization* Fall
CS 181 Machine Learning* Fall
CS 182 Artifical Intelligence*  
CS 262 Introduction to Distributed Computing  
CS 265 Big Data Systems Spring
CS 281 Advanced Machine Learning  
CS 282r Topics in Machine Learning  
CS 287 Machine Learning for Natural Language Spring


*Master's students can include up to three 100-level courses in their Plans of Study. Secondary Field students generally need to have only 200 level courses in the Plans of Study but may petition to have include one 100-level course.