Course Meeting Times

Lectures: 2 sessions / week, 1.5 hours / session

Course Description

This course covers concepts of computation used in analysis of engineering systems. It includes the following topics: data structures, relational database representations of engineering data, algorithms for the solution and optimization of engineering system designs (greedy, dynamic programming, branch and bound, graph algorithms, nonlinear optimization), and introduction to complexity analysis. Object-oriented, efficient implementations of algorithms are emphasized.


1.001 Introduction to Computers and Engineering Problem Solving is the prerequisite, which has 18.01 Calculus as a prerequisite. 6.005 Elements of Software Construction is also accepted. If you haven’t taken 1.001 and don’t know Java or C++ or C#, you may take 1.204 if you attend at least the first month of 1.001 as a listener. You should have some prior programming experience if you do this.

Course Requirements

7 problem sets, each worth 10 points (70% of grade).

2 quizzes (open book, open notes), each worth 15 points (30%). The second quiz may be replaced by a problem set if the class does well on quiz 1 and opts for the extra homework.

Academic Honesty

The MIT Department of Civil Engineering adheres to the strictest standards of academic honesty. An important aspect of achieving these standards is to be sure that students are aware of expectations of faculty regarding academic honesty. This statement makes clear the faculty’s expectations.


Assignments performed by students for submission have a dual purpose. They are intended as educational devices. They are also evaluation tools for the faculty in judging the quality of performance of individual students. Our policies are intended to balance these two purposes and apply to all assignments.

Students currently taking this class can work together to conceptualize general approaches to assignments. However, the work you submit should be done completely on your own. This includes text, numerical calculations, mathematical derivations, computer programs and output, references and any written source you use in your submission. It is inappropriate to use assignments submitted in previous years as a source.


All work on quizzes must be done only by you.

Course Info

Learning Resource Types

notes Lecture Notes
grading Exams
assignment Programming Assignments