CSE courses

CSE Core Courses

Applied Math 205 - Advanced Scientific Computing: Numerical Methods
Christopher Rycroft, Assistant Professor. Fall Term, Tues/Thurs 10:00 - 11:30 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. Spring Term, Tues/Thurs 11:30 AM - 1:00 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
Muniyappa Manjunathaiah, Visiting Assistant Professor.
Spring Term, Tues/Thurs 2:30 - 4:00 PM.

An applications course highlighting the use of computers in solving scientific problems. Students will be exposed to fundamental computer science concepts such as computer architectures, data structures, algorithms, and parallel computing. Fundamentals of scientific computing including abstract thinking, algorithmic development, and assessment of computational approaches. Students will learn to use open source tools and libraries and apply them to data analysis, modeling, and visualization of real scientific problems. Emphasizes parallel programming and "parallel thinking."

Computer Science 207 - Systems Development for Computational Science 
Rahul Dave, Lecturer. Fall Term, Mon/Wed 2:30 - 4:00 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.


Courses in Applied Computation

Applied Computation courses can be found in the Harvard course catalog by searching for APCOMP.  Applied Computation courses are a category of courses developed by IACS which apply the methods of computational science and engineering to a domain or class of problems.

Applied Computation 209a - Data Science 1: Introduction to Data Science
Pavlos Protopapas, Lecturer, and Kevin Rader, Preceptor. Fall Term, Mon/Wed 1:00 - 2:30 PM.

Data Science 1 is the first half of a one-year introduction to data science. The course will focus on the analysis of messy, real life data to perform predictions using statistical and machine learning methods. Material covered will integrate the five key facets of an investigation using data: (1) data collection - data wrangling, cleaning, and sampling to get a suitable data set;  (2) data management - accessing data quickly and reliably; (3) exploratory data analysis – generating hypotheses and building intuition; (4) prediction or statistical learning; and (5) communication – summarizing results through visualization, stories, and interpretable summaries. Note: Only one of CS 109a, AC 209a, or Stat 121a can be taken for credit. Students who have previously taken CS 109, AC 209, or Stat 121 cannot take CS 109a, AC 209a, or Stat 121a for credit. Programming knowledge at the level of CS 50 or above, and statistics knowledge at the level of Stat 100 or above (Stat 110 recommended).

Applied Computation 209b - Data Science 2: Advanced Topics in Data Science
Hanspeter Pfister, Professor, and Mark Glickman and Verena Kaynig-Fittkau, Lecturers. Spring Term, Mon/Wed 1:00 - 2:30 PM.

Data Science 2 is the second half of a one-year introduction to data science. Building upon the material in Data Science 1, the course introduces advanced methods for data wrangling, data visualization, and statistical modeling and prediction. Topics include big data and database management, interactive visualizations, nonlinear statistical models, and deep learning. Note: Can only be taken after successful completion of CS 109a, AC 209a, Stat 121a, or equivalent. Students who have previously taken CS 109, AC 209, or Stat 121 cannot take CS 109b, AC 209b, or Stat 121b for credit. CS 109a, AC 209a, or Stat 121a required.

Applied Computation 274 - Computational Physics
Sauro Succi, Visiting Professor. Fall Term, Wed/Fri 10:00 AM - 12:00 PM.

The course will describe major computational techniques for fluid flows, as described by the Navier-Stokes equations of continuum mechanics. In addition, the course will cover a new class of mesoscale techniques for complex flows and soft matter systems, which do not fit within the continuum Navier-Stokes description. The latter encompass a broad class of flowing materials of special interest to micro-nano engineering and biology.

[Applied Computation 290 - Extreme Computing: Project-based High Performance Distributed and Parallel Systems]
Not offered 2016-17

Predictive computer simulations will play a critical role in scientific discoveries, national competitiveness, and in solving societal problems. For such predictions of real problems, the ability to scale the solution techniques, algorithms, and software to large-scale is necessary. This course will explore the techniques used for extreme computing (distributed cloud computing, scaling, performance, etc), supporting infrastructure (distributed file systems, replication, web services etc) and algorithms (MapReduce, Graph Methods, Kinetic Monte Carlo etc). Specifically, the course will identify three areas from physical, natural and social sciences that could be addressed by these techniques. The social sciences module will focus on customer reviews and influencing; the bio/health module will focus on cancer modeling; the materials module will focus on battery modeling. The faculty from Harvard, in collaboration with the visitors from National Cancer Institute and Argonne National Laboratories, will conduct the lectures and computer labs.  Computing resources will be provided for the class projects.

Applied Computation 297r - Computational Science and Engineering Capstone Project 
Pavlos Protopapas, Lecturer. Spring Term, Tues 4:00 - 6:00 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.

Applied Computation 298r - Interdisciplinary Seminar in Computational Science and Engineering 
Daniel Weinstock, Lecturer. Fall term, Fri 12:00 – 3:00 PM.

This course, centered on the Institute for Applied Computation Science (IACS) seminar series, will provide broad exposure to cutting-edge topics, applications, and unifying concepts in Computational Science & Engineering. Students will read, present and discuss journal articles related to IACS talks, attend the seminars and meet with visiting speakers. Possible topics to be covered include scientific visualization, computational approaches to disease, mathematical neuroscience, computational archeology, and computational finance.


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] not offered 2016-17
[AM 221 Advanced Optimization] not offered 2016-17
AC 274  Computational Modeling of Fluids and Soft Matter  fall
AC 275  Computational Design of Materials spring 
STAT 139 Statistical Sleuthing Through Linear Models* fall
STAT 149 Statistical Sleuthing Through Genereralized Linear Models* spring
STAT 170 Quantitative Analysis of Capital Markets* fall 
STAT 183 Learning From Big Data* spring
STAT 210 Probability I fall
STAT 220 Bayesian Data Analysis spring
STAT 221 Statistical Computing and Learning fall
STAT 225 Spatial Statistics spring
STAT 285r Statistical Machine Learning spring


Approved CSE Computer Science electives  
AC 209a Introduction to Data Science fall
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* spring
[CS 221 Computational Complexity] not offered 2016-17
CS 222 Algorithms at the Ends of the Wire fall
CS 226r Efficient Algorithms TBA
[CS 228 Computational Learning Theory] not offered 2016-17
CS 246 Advanced Computer Architecture spring
[CS 262 Distributed Computing] not offered 2016-17
[CS 281 Advanced Machine Learning] not offered 2016-17


*Master's students can include up to two 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.