# CS243: Program Analysis and Optimization Winter 2017

This page is updated frequently, so check back often. All materials for the course will be posted here.### What do we teach?

This course teaches program analysis techniques used in compilers and
software development tools to improve productivity, reliability, and
security. *Emphasis on the methodology of applying mathematical
abstractions such as graphs, fixpoint computations and binary decision
diagrams to writing complex software, using compilers as an example.*

### How do you learn this?

This is a course where math and programming meet. Learning compiler techniques has much in common with learning mathematical proofs. You learn by trying, finding your own insights. This means the assignments can take a variable amount of time! We want you to formulate your own variations of problems and solve them.

### How is the course structured?

- Highly interactive lectures, textbook reading.
- Programming assignments analyze Java code.
- Problem sessions for discussion.
- Piazza for offline questions.
- Midterm and Final.

# Logistics When, where, what and how

Lectures | Tuesdays and Thursdays 3:00pm - 4:20pm in Gates B01 |

Problem Session | Friday 2:30pm - 3:20pm in Gates B01 |

Prerequisites | CS 103 or CS 103B, and CS 107; Java programming language experience |

Textbook | Compilers: Principles, Techniques, & Tools (Second Edition), Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Addison-Wesley, 2007. |

Class Q&A Website | CS243 on Piazza - for all questions related to the material |

Videos of Lectures | SCPD Webcast for Stanford Students |

Staff Mailing List | for administrative questions |

Midterm | February 14 in Gates B01 |

Final | March 21 (Tuesday) 3:30pm-6:30pm, Location: TBD |

# Staff Professor and TA details

IMPORTANT Contact us using the for administrative questions.

### Monica Lam, Instructor

Office | Gates 307 |

Office Hours | By arrangement via |

Contact Details |

### Dan Moreau, Admin

Office | Gates 405 |

Phone | (650) 723-1658 |

### Jason Koenig, TA

Office | Gates 441 |

Office Hours | Monday 1:00-2:00pm |

Contact Details |

### Andrew Lim, TA

Office | Huang Basement |

Office Hours | Thursday 11:00am-12:00pm |

Contact Details |

### Chinmayee Shah, TA

Office | Gates 281 |

Office Hours | Friday 3:30pm-4:30pm |

Contact Details | |