Stanford Root

Schedule

Stanford Root

Schedule

CS 357S

Formal Methods for Computer Systems

UNITS:3
GRADING:Letter or Credit/No Credit
LEVEL:Graduate
GER:—

The complexity of modern computer systems requires rigorous and systematic verification/validation techniques to evaluate their ability to correctly and securely support application programs. To this end, a growing body of work in both industry and academia leverages formal methods techniques to solve computer systems challenges. This course is a research seminar that will cover foundational work and current topics in the application of formal methods-style techniques (some possible examples include SAT/SMT, model checking, symbolic execution, theorem proving, program synthesis, fuzzing) to reliable and secure computer systems design. The course can be thought of as an applied formal methods course where the application is reliable and secure architecture, microarchitecture, and distributed systems design. Prior formal methods experience is not necessary. Students will read and discuss published research papers and complete an original research project. Open to PhD and masters students as well as advanced undergraduate students. Prerequisites: EE 180 Digital Systems Architecture or comparable course, or consent of instructor.

Syllabus not available for this section

Sections

0 Terms
No sections available.

CS 357S: Formal Methods for Computer Systems

3 units · Letter or Credit/No Credit

The complexity of modern computer systems requires rigorous and systematic verification/validation techniques to evaluate their ability to correctly and securely support application programs. To this end, a growing body of work in both industry and academia leverages formal methods techniques to solve computer systems challenges. This course is a research seminar that will cover foundational work and current topics in the application of formal methods-style techniques (some possible examples include SAT/SMT, model checking, symbolic execution, theorem proving, program synthesis, fuzzing) to reliable and secure computer systems design. The course can be thought of as an applied formal methods course where the application is reliable and secure architecture, microarchitecture, and distributed systems design. Prior formal methods experience is not necessary. Students will read and discuss published research papers and complete an original research project. Open to PhD and masters students as well as advanced undergraduate students. Prerequisites: EE180 Digital Systems Architecture or comparable course, or consent of instructor.

More CS courses

  • CS 349M: Machine Learning for Software Engineering
  • CS 350S: Privacy-Preserving Systems
  • CS 353: Seminar on Logic & Formal Philosophy (PHIL 391)
  • CS 354: Topics in Intractability: Unfulfilled Algorithmic Fantasies
  • CS 355: Advanced Topics in Cryptography
  • CS 356: Topics in Computer and Network Security
  • CS 359D: Quantum Complexity Theory
  • CS 359E: Quantum Complexity Theory
  • CS 360: Simplicity and Complexity in Economic Theory (ECON 284)
  • CS 361: Engineering Design Optimization (AA 222, CME 222)
  • CS 372: Artificial General Intelligence for Reasoning, Planning, and Decision Making
  • CS 375: Large-Scale Neural Network Modeling for Neuroscience (PSYCH 249)

All CS courses · All departments