Hardware Verification -- CS 395t -- Syllabus

In this class, we will consider how one might formally verify that computer designs and computer software are indeed correct.

Tests and quizzes are open-book, open-notes affairs -- however, no electronic devices (laptops, cell phones, tablets, PDAs, calculators) of any kind are allowed during test and quiz events. As such, you may wish to have a physical copy of any materials that you believe will be helpful during quizzes and exams. Certainly, you should bring your class notes; they will be helpful when taking quizzes and exams. Remember, cell phones are not allowed during exams; during quizzes and exams the remaining time will be periodically announced.

The value you get from this class will be directly related to the effort you (as a student) put forward. If you have a laptop computer, you should bring it to class. In class, we will consider problems that may be better addressed with the aid of a computer. Having a laptop is not a requirement, but it will be very helpful for students to be able to individually access information during class, and when we are discussing the use of our tools, it may be helpful for you to try things immediately.

Students will be encouraged to give short (five- to ten-minutes) presentations in class on various problems. In fact, any student may be called upon to give a two- or three-minute presentation on something being discussed in class or on their solution to a homework problem. Please come to class prepared to work; we will sometimes stop for a few minutes to make sure that everyone that has a chance to consolidate their thinking and to help students overcome problems with their understanding or with questions about the in-class presentations.

Our office hours are listed on the main class web-page. In addition, if you need help, you may certainly seek out and visit with the class TA and/or the instructor(s). You may arrange to meet us at other times than those listed, but you will need to send E-mail to arrange a time. If we become too busy during the scheduled office hours, we will expand our office hours to meet the needs of the students. If you cannot come to the scheduled office hours due to conflicts with other classes, let us know quickly so we can make arrangements to meet your needs.

Class Schedule

The following gives an outline of what we will discuss. We are open to discussing other topics of general interest, and we will include some of our use of ACL2 on the x86-compatible VIA microprocessor family. The syllabus below is approximate; the exact rate at which we will cover some material will vary. Additional summary information about the class laboratories is available on the class laboratory and homework page.

  Schedule Below is Approximate, Lectures Dates May Change Slightly

  *** NOTE:  Test dates are tentative until January 22, 2018  ***
  *** NOTE:  Laboratory due dates are tentative until assigned ***

Class    Date   Short Description

 00     Jan 17  Course Introduction

 01     Jan 22  Logic, ACL2 Data Types, Terms
 02     Jan 24  Substitution, Abbreviations, Function Definition

 03     Jan 29  Axioms -- the Given Truths
 04     Jan 31  Use of Axioms, Terms as Formulas

 05     Feb  5  Simplified Definitional Principle
 06     Feb  7  Principle of Structural Induction

 07     Feb 12  Term Ordering
 08     Feb 14  Peano Arithmetic

 09     Feb 19  ACL2 Arithmetic
 10     Feb 21  Inadequacies of Structural Induction

 11     Feb 26  The Ordinals
 12  *  Feb 28  In-Class Exam

 13     Mar  5  Student Project Proposals
 14     Mar  7  Student Project Proposals

        Mar 12  Spring Break
        Mar 14  Spring Break

 15     Mar 19  The Definitional Principle
 16     Mar 21  Relations Between Recursion and Induction

 17     Mar 26  Hardware Functions
 18     Mar 28  Models with State

 19     Apr  2  Formal Hardware Description Language
 20     Apr  4  Formal Hardware Description Language

 21     Apr  9  Combination Logic, an ALU
 22     Apr 11  Sequential Logic

 23     Apr 16  Simulation and Verification
 24     Apr 18  Asynchronous Logic and Verification

 25     Apr 23  Semester Project Draft Report Due
 26     Apr 25  Catch Up

 27     Apr 30  Student Presentations
 28     May  2  Student Presentations

Homework

There will six or more homework assignments given during the semester. On most weeks, homework will be assigned on Mondays and due nine days later (on Wednesdays) by class time. No homework will be assigned during the last few weeks of class. The lowest homework grade will be dropped in the computation of the final homework grade. Homework will not be accepted late.

Quizzes and Exams

There will be one in-class (70 to 80 minute) examination. See the above schedule (marked with a * above) for the date(s). There will no final exam. There will be several unannounced "pop quizzes". The lowest quiz grade will be dropped. Examinations and quizzes must be taken at the scheduled times. The weighting of the grades for the various aspects of the course are:

     Component       Percentage of Course Grade
     Exam:             30%
     Quizzes:          10%
     Homework:         20%
     Project:          40%
The grading for the entire course will be as follows:
    Course Score     Grade
     [90 -- 100]       A
     [87 --  90)       A-
     [85 --  87)       B+
     [80 --  85)       B
     [77 --  80)       B-
     [75 --  77)       C+
     [70 --  75)       C
     [67 --  70)       C-
     [65 --  67)       D+
     [60 --  65)       D
     [ 0 --  60)       F
Note the interval marks around the course-score column. For example, a course grade of B will be assigned if your semester grade is greater than or equal to 80 and less than 85. This also means that a course grade of at least 67 needs to be achieved for this course to count toward a UTCS degree.

The students that do well in this class are survivors. This class is a lot of work, and it is important to keep current. The material in this class is cumulative; it can be quite difficult to catch up if one falls behind. It is very important to keep turning in homework; homework grades are our most reliable indicator of how well a student will do in this class. Note, it is important to show up for class, as pop quizzes are given, your absence will be noted, and we may discuss material not reproduced in any particular book or web page.

Return to CS 395t course homepage.