On this page:
1.1 Prerequisites
1.2 Course Materials
1.3 Evaluation and Grading
1.4 Academic Integrity
6.1.1

1 Course Information

Lecture:

  

Tuesdays and Thursdays, 10:30-11:50 am, MGH 254

Instructor:

  

Emina Torlak, emina at cs.washington.edu

Instructor Office Hours:

  

Wednesdays, 1-2pm, CSE 596

TA:

  

Mert Saglam, saglam at uw.edu

TA Office Hours:

  

Thursdays, 1-2pm, CSE 618

Resources:

  

Course Mailing List (mandatory)

  

Piazza (optional)

  

Homework Dropbox

  

Gradebook

  

Anonymous Feedback

1.1 Prerequisites

The course assumes that you know how to program, that you have taken a course in discrete mathematics, and that you have some familiarity with programming language semantics. You can use any language you want for work that requires programming. However, you need to be comfortable compiling, installing, and running code written in C, C++, and/or Java. The tools covered in the course are written in these languages, and most are released as source code.

1.2 Course Materials

The course will not use a textbook, relying instead on

All materials will be available from the course schedule and references, as needed.

1.3 Evaluation and Grading

Homework (50%): There will be three homework assignments, weighted roughly equally. The assignments may ask you to solve conceptual problems, use existing computer-aided tools, or program in a language of your choosing.

Project (50%): In the second half of the course, you will work in a team of 2-3 students on a mini research project that applies computer-aided reasoning to software—think of it as a small workshop paper. The goal is to apply an existing computer-aided tool to a new domain, or to create a tool that can automatically reason about programs in a new or existing language. The project will take 5 weeks, with proposals due before the midpoint of the course. A final report and demo of the project are due at the end of the course. The proposal and the demo will account for 10% of your grade, and the final report will make up the remaining 30%.

This grading scheme is tentative. Any changes will be shown here and announced on the course mailing list.

1.4 Academic Integrity

You may discuss homework problems with fellow students, the TA, and the instructor, but the write-up must be your own. Indicate on every assignment who assisted you and how. You should also cite any reference materials used to complete an assignment, including books, papers, and web resources (Wikipedia, StackOverflow, etc.).

You may (and should) make use of existing tools, libraries, and frameworks in your course project. But the final product must also include substantial new work (ideas, code, experiments, etc.).