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.
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
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.
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) FNote 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.