CS 5100/6100 – Foundations of Computer Science – Spring 2012
– 2475 MEB
Frequently Asked Questions (FAQ) and their answers
General Course Info is in Section 7
1 Online Material
-
Lec1, 1/9/12:
-
- Lec2, 1/11/12:
-
- Lec3, 1/18/12:
-
- Lec4, 1/23/12:
-
- Lec5, 1/25/12:
-
- Lec6 and Lec7, (1/30 and 1/2, 2012:
-
- Lec8 and Lec9 (2/6 2/8, 2012):
-
- Lec10 and Lec11 (2/13-15, 2012):
-
- Lec12, (2/22, 2012):
-
- Checklist for 2/24/12:
-
-
Assignment 5: 2/24 and 3/2 (two submissions), and Notes 12:
I suggest that
you bring a copy of notes12.pdf (see under Lec12, 2/22) to class
- Project group info, project topic (if known): send by 2/24/12
- Project topic selection to be finalized—project proposal (1 page)
due 3/9/12
- Readings for 2/27 and 2/29 (see above)
- Lec13 (2/27)
-
- Lec14 (2/29)
-
-
Reading for 2/29:
- Path to z3 (you may download, but a Linux binary is kept at): /home/cs6100/bin/z3
- Reading for 2/29: Z3 Tutorial[.pdf]
- Reading for 2/29: Z3 Sampler[.pdf]
- Tyler’s lecture on this topic on 2/29
[in PPT], and
[in PDF]
- Lec15 (3/5)
- Invariant generation, Z3, First-Order Logic (FOL).
- Assignment 6 given on 3/5. DUE 3/19/12.
Assignment
in [.pdf]
and
in [.tex], with
Sample Solutions
- Slides for 3/5 are here:
in [.pptx]
and
in [.pdf]
- Lec16 (3/7)
- Lecture by Sriram on using
invariants for enhancing system resilience
- Lec17 (3/19)
- Lecture by Ganesh – SLIDES are in
in [.pptx]
and
in [.pdf]
- Lec18 (3/21)
- Lecture + problem-set + Prenexing in Ocaml: Notes
in [.pdf]
- Lec19 (3/26)
- Lecture on the Undecidability of the Validity of First-Order Logic
in [.pdf]
- Lec20 (3/28)
-
Midterm exam
[.pdf]
and its solution
Midterm exam
[.pdf]
- Lec21 (4/2)
-
Presburger Overview + Ch-3 of B/M
Papers on Presburger Reasoning and Applications
and there are notes kept at:
notes21.pdf
- Lec22 (4/4)
-
Assignment 7
in [.pdf]
- Lec23 (4/9)
-
- Course notes from a course offered at Intel in year 2000. Pay attention to the following
intel-verification-course
-
The subgoal induction method presented in notes.pdf in this directory
- A subgoal induction prover written by a student (Sid Bytheway) in this directory
- We will study how to verify a pattern matcher and a topological
sorting program - listed in this directory - using subgoal
- Lec24 (4/11)
-
Even though I have argued topsort correct in
intel-verification-course,
I clean up a bit and
present it again.
Contents
2 About the Course
This course 1is meant for graduate and advanced undergraduate students (unless
otherwise allowed by the instructor).
The topics selected for the Spring 2012 offering are the following:
-
Mathematical logic, emphasizing the use of decision procedures (satisfiability modulo theories)
- Concurrency, emphasizing basic model checking and shared memory consistency models
- Specifying systems, emphasizing Operational Semantics.
These topics are intimately related, and all pertain to one’s ability to understand and
design correctly functioning systems, and describe the workings of these systems
clearly.
The onus is on you (the student) to develop a clear understanding of what the course is about, and
how you can best tailor the course (influence what will be lectured, and negotiate degrees of
freedom that you are comfortable with) to maximize your learning.
Please bear in mind that
-
This is a required class, and hence I have to make sure that certain basic topics have
been learned, and best practices have been created; yet
- You all have widely different backgrounds, and so I also have to make sure that I stay
out of your way whenever possible, letting you pursue topics with the required degree of commitment; also
- Working all by yourself, and showing something fantastic in code-form during the last week is
not going to serve the interests of this course. You should maximize your opportunities to teach
the rest of the class and the instructor about things you discover, so that we all learn more
about topics that cannot be discussed in class. This will be achieved if you participate in
class discussions, discussions with the instructor during office hours or during class, talking
to classmates, and participating in classroom presentations of your project.
3 Class Requirements
This is a project-based class.
Attendance to the lectures is required, unless you excuse yourself through an explicit email before
the lecture begins.
A formal roll-call will not be taken; however, prolonged absences without a reason will be grounds for failure.
4 Course Plans
Interactions during lectures or through email will earn you participation points (10% of the course grade).
There will be one midterm (20% of the course grade).
The rest of the course grade is based on assignments (20%) and a project (50% of the course grade).
The final grading will be based on a curve, typically with each percentile of 10 binned into a grade category
(e.g., 90-100: A, 80-19: B, etc.)
The projects are meant to be done either individually or in groups of size 2 (if there
is a very well motivated reason for a group-size of 3, that may be permitted).
There will be a required project presentation during the last week of classes.
Points toward your project will be assigned based on the quality/novelty
of the work itself, your presentation, and your report.
Projects are required to be selected during the first two weeks of classes, from the list
of topics given in Section 5 (to be refined soon; these are
general topics for now).
There will be 1-1 project meetings held during the third week of classes.
Changes in project focus/topic can be negotiated during these meetings.
Generally, these meetings will be scheduled to occur during office hours; however, lecture-time
may also be set apart.
Proper citations are expected whenever external public-source material is referred to.
Help from your classmates or friends is allowed to the extent that it teaches you the
basic methods/approach – and it must be acknowledged in your presentations, assignments, etc.
All the worked turned in must be original.
In particular, for specific problems assigned, and unless otherwise specified,
you must be solely responsible for the creation of the actual solution, code module, etc.
5 Project Topics
-
Using SMT solvers for
-
Test generation
- Code generation
- Writing shared memory consistency specifications for
- Applications of course topics to program/model/protocol
analysis, including in computer security and emerging domains
6 Reference Materials
The course will be based on lecture notes, and the references below:
7 General Course Info
-
Class Website: http://www.eng.utah.edu/~cs6100
- Class Room: MEB 2475
- Lecture Hours: MW 11:50 to 13:10
- Instructor: Ganesh Gopalakrishnan
- Instructor Email: My CS Email
with a subject beginning with “cs6100”.
- Instructor Office Hours: Mon : 14:00 to 15:20
and Tue : 15:00 to 16:30
- Instructor Office Location: 3428 MEB
8 Holidays etc.
My known commitments are below.
Some of these days, classes may actually
be held (so don’t assume an automatic
“no class” unless it is a holiday).
-
January 16 : Martin Luther King Day holiday
- February 20 : President’s Day holiday
- February 25 - 29 : PPoPP (New Orleans)
- March 5-7 : At NSF (panel)
- March 12-17 : Spring break
- Apr 17, Tue, 10:15am - earthquake drill (FEMA)
9 HANDOUTS AND WEEKLY SCHEDULE
- Week1
-
1/9/12 L1: Introduction to the course
10 Policy Statement of Academic Misconduct
A link to the SoC Policy Statement of Academic Misconduct
appears at:
http://www.cs.utah.edu/internal/cheating_policy.pdf.
If you have not done so, please read the above policy, print
the following acknowledgement form, sign it, and hand it over
to the SoC office or me:
http://www.cs.utah.edu/internal/SoC_ack_form.pdf
11 Students with Disabilities
Reasonable accommodation will gladly be provided to the known disabilities of students in the class.
Please let the instructor know the situation as soon as possible.
If you wish to qualify for exemptions under the Americans with Disabilities Act (ADA), you should also
notify the Center for Disabled Students Services, 160 Union Building.
This document was translated from LATEX by
HEVEA.