CSE courses

CSE Core Courses

Applied Math 205 - Advanced Scientific Computing: Numerical Methods. David Knezevic, lecturer. Fall Term, Tues/Thurs 10-11:30AM.

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 in Matlab a range of numerical methods through individual and group-based project work to get hands-on experience with modern scientific computing. 

Computer Science 205 - Computing Foundations for Computational Science. Cris Cecka, Lecturer. Fall Term, Schedule TBA.

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.”

Applied Math 207 - Advanced Scientific Computing: Stochastic Optimization Methods. Pavlos Protopapas, Lecturer. Spring Term, Tues/Thurs 11:30 AM- 1:30 PM.

Develops skills for computational research with a 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, ranging from simulating the immune system to strategies for investing in financial markets.

Computer Science 207 - Systems Development for Computational Science. Cris Cecka, Lecturer. Spring Term. Mon/Weds/Fri 11 AM - Noon.

This is a project-based course emphasizing designing, building, testing, maintaining and modifying software for scientific computing. Students will work in groups on four 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, designated APCOMP in the Harvard catalog, are a new category of courses developed by IACS, beginning with the 2012–13 academic year. These elective courses apply the methods of computational science and engineering to a domain or class of problems.

Applied Computation 209 - Data Science. Hanspeter Pfister, Professor, and Joseph Blitzstein, Professor of the Practice. New Course Fall 2013 Tues/Thurs 2:30-4:00 PM.

Learning from data in order to gain useful predictions and insights. This course introduces methods for five key facets of an investigation: data wrangling, cleaning, and sampling to get a suitable data set; data management to be able to access big data quickly and reliably; exploratory data analysis to generate hypotheses and intuition; prediction based on statistical methods such as regression and classification; and communication of results through visualization, stories, and interpretable summaries. Built around three modules: prediction and elections, recommendation and business analytics, and sampling and social network analysis. Prerequisite: Programming knowledge at the level of CS 50 or above, and statistics knowledge at the level of Statistics 100 or above (Stat 110 recommended). Note: Taught concurrently with CS 109 and Stat 121. Only one can be taken for credit. Only admitted graduate students can take AC 209, in which case we expect significant differences in readings, assignments, and projects.

Applied Computation 274 - Computational Fluid Dynamics. David Knezevic, Lecturer. Spring Term, Tues/Thurs 10-11:30 AM.

A theoretical and practical introduction to the key tools in computational fluid dynamics. The course will examine a range of numerical algorithms relevant to fluids modeling, analyzing the stability, convergence and accuracy of each. Students will implement an extensive range of CFD algorithms. Topics include the hyperbolic partial differential equations and conservation laws, with a focus on numerical discretization via finite volume methods, followed by simulation of viscous incompressible fluids via the finite element method.

Applied Computation 275 - Computational Design of Materials. Sadasivan Shankar and Brad Malone. Fall term, Mon/Weds 2:30-4 pm.

This course will provide the background and an extensive set of examples showing how computational methods are applied to modern design of materials with desired functionality. The methods will span multiple length and time scales, including molecular dynamics simulations, first-principles approaches, stochastic methods for optimization and sampling, and continuum elasticity theory. Examples will include problems in electronic and photonic devices, materials for energy conversion, storage, and environmental protection, and those related to mechanical strength of materials.

Applied Computation 298r - Interdisciplinary Seminar in Computational Science and Engineering. Efthimios Kaxiras, Professor, and Daniel Weinstock, Lecturer. Spring term, Fri 12–3 PM.

This course, centered on the IACS seminar series, will provide broad exposure to cutting-edge topics, applications and unifying concepts in Computational Science and Engineering. Students will read, present and discuss journal articles related to IACS talks, attend the seminars and meet with visiting speakers. Topics to be explored will range from data science to computational approaches to cancer.

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.

Approved CSE Applied Math electives
AM 201 Physical Mathematics Ifall
AM 202 Physical Mathematics IIspring
AM 221 Advanced Optimizationfall
AC 274  Computational Modeling of Fluids and Soft Matter fall
AC 275  Computational Design of Materialsspring
STATS 210 Probability Theory and Statistical Inference Ifall
STATS 220 Bayesian Data Analysisfall
STATS 221 Statistical Computing and Learningfall
STATS 225 Spatial Statisticsspring
STATS 285r Statistical Machine Learningspring

Approved CSE Computer Science electives
AC 209 Data Science*fall
CS 221 Computational Complexityspring
CS 222 Algorithms at the Ends of the Wirefall
CS 226r Efficient Algorithmsfall
CS 228 Computational Learning Theoryspring
CS 246 Advanced Computer Architecturefall
CS 262 Distributed Computingspring
CS 281 Advanced Machine Learningfall

*graduate-level course also taught concurrently as CS 109 and STATS 121.