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) | |
| ||
| ||
|
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
Lecture materials prepared by the instructor
Tutorials, book chapters, and survey papers
Classic research papers
More recent research papers and documentation for modern tools.
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—
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.).