When you enroll in this course, you'll also be enrolled in this Specialization.
Learn new concepts from industry experts
Gain a foundational understanding of a subject or tool
Develop job-relevant skills with hands-on projects
Earn a shareable career certificate
There are 3 modules in this course
This course introduces the basic concepts of functional verification and model checking, highlighting their importance in modern system designs. It explains different modeling formalisms for representing the behavior of hardware and software, which are either suitable for automated analysis or can represent data-dependent controls that are common in computing system designs. Additionally, it describes system compositions with respect to different communication models.
This course can also be taken for academic credit as ECEA ####, part of CU Boulder’s Master of Science in Electrical Engineering.
This module introduces basic concepts of functional verification and model checking. It demonstrates the importance of verification via some examples, outlines the challenges, and reviews pros and cons of model checking with respect to other verification methods.
What's included
7 videos8 readings3 assignments
Show info about module content
7 videos•Total 53 minutes
Motivating Examples•7 minutes
High Profile Previous Bugs and Their Impacts•10 minutes
Overview of Functional Verification•5 minutes
Techniques for Functional Verification•10 minutes
Overview of Formal Verification and Model Checking•7 minutes
Elements of Model Checking•6 minutes
Challenge to Model Checking: State Space Explosion•6 minutes
8 readings•Total 151 minutes
Course Updates and Accessibility Support•1 minute
Non-Credit Students: Welcome and Where to Find Help•10 minutes
Principles of Model Checking - Chapter 1, Introduction - Part 1•15 minutes
Hardware and Software Bugs - Wikipedia•20 minutes
Functional Verification•30 minutes
Principles of Model Checking - Chapter 1, Introduction - Part 2•15 minutes
Principles of Model Checking - Section 1.1, 1.2•30 minutes
Formal Verification and Model Checking - Wikipedia•30 minutes
3 assignments•Total 30 minutes
Motivation of Verification Quiz•10 minutes
Overview of Verification Quiz•10 minutes
Formal Verification and Model Checking Quiz•10 minutes
Modeling
Module 2•5 hours to complete
Module details
This module introduces transition systems, a basic modeling formalism for representing behavior of hardware and software that is suitable for automated analysis. The syntax and semantics of transition systems are explained, and how sequential circuits can be represented as transition systems is described. Next, program graphs as a formalism to model software are introduced. Syntax of program graphs is described, and semantic interpretation using transition systems is explained.
What's included
10 videos3 readings3 assignments
Show info about module content
10 videos•Total 110 minutes
Propositional Logic•14 minutes
Predicate Logic•9 minutes
Set Theory•11 minutes
Transition Systems: Definitions•13 minutes
Deterministic vs Non-Deterministic Systems•8 minutes
Executions•6 minutes
Modeling Sequential Circuits•12 minutes
Program Graphs: Definitions•10 minutes
Program Graphs: Examples•16 minutes
From Program Graphs to Transition Systems•12 minutes
3 readings•Total 135 minutes
Foundations of Logic and Set Theory - Key Concepts and Applications•60 minutes
Principles of Model Checking - Section 2.1, Page 19-29•45 minutes
Principles of Model Checking - Section 2.1, (Page 29-34)•30 minutes
3 assignments•Total 65 minutes
Background Quiz•30 minutes
Transition Systems Quiz•20 minutes
Program Graphs Quiz•15 minutes
Modeling System Composition
Module 3•5 hours to complete
Module details
This module introduces some modeling formalisms capturing different types of system compositions. Particularly, interleaving of concurrent transition systems, compositions of systems communicating via shared variables or handshaking are explained. Additionally, synchronous parallelism is described for composing synchronous circuit composition.
What's included
10 videos4 readings4 assignments
Show info about module content
10 videos•Total 110 minutes
Concurrency and Interleaving•10 minutes
Concurrency and Interleaving: Examples•8 minutes
Interleaving Program Graphs•12 minutes
Critical Actions and Atomicity•11 minutes
Peterson's Mutual Exclusion Algorithm•13 minutes
Synchronization and Handshaking•13 minutes
Example: Railroad Crossing•13 minutes
Synchronous Product - Part 1•11 minutes
Synchronous Product - Part 2•11 minutes
The State Space Explosion Problem•9 minutes
4 readings•Total 110 minutes
Principles of Model Checking - Section 2.2.1, (Page 35-39)•30 minutes
Principles of Model Checking - Section 2.2.2, (Page 39-47)•30 minutes
Principles of Model Checking - Section 2.2.3, (Page 48-52)•30 minutes
Principles of Model Checking - Section 2.2.6, (Page 73-75)•20 minutes
4 assignments•Total 65 minutes
Modeling Concurrency Using Transition Systems Quiz•15 minutes
Modeling Communications Via Shared Variables Quiz•20 minutes
Modeling Communications Via Handshaking Quiz•10 minutes
Synchronous Parallelism Quiz•20 minutes
Earn a career certificate
Add this credential to your LinkedIn profile, resume, or CV. Share it on social media and in your performance review.
CU Boulder is a dynamic community of scholars and learners on one of the most spectacular college campuses in the country. As one of 34 U.S. public institutions in the prestigious Association of American Universities (AAU), we have a proud tradition of academic excellence, with five Nobel laureates and more than 50 members of prestigious academic academies.
When will I have access to the lectures and assignments?
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
What will I get if I subscribe to this Specialization?
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Is financial aid available?
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.