Course Syllabus
CS 5110/6110: Software Verification
WEB L112, TR 14:00 - 15:20
Class is available via Zoom as a backup option. Details below.
Instructors
| Instructor: |
Ben Greenman <blg@cs.utah.edu> MEB 3252 |
| TA: |
Dibri Nsofor <u1472563@utah.edu> TBD |
Course Description
Overview
| Course | CS 5110 / 6110 |
| Department | Kahlert School of Computing |
| Pre-Reqs (5110) | CS 3100, 3505, 4150 |
| Credit Hours | 3 |
| Semester | Spring 2026 |
Outcomes
- Learn how to express software specifications in formal logic,
- Use real-world verification tools,
- Design invariants, preconditions, and postconditions,
- Learn how to read verification papers efficiently,
- Apply verification to your own research area via a course project
Goals and Objectives
This course provides hands-on experience with verification tools and introduces the mathematical foundations that make these tools work. Coding exercises will introduce tools ranging from property-based testing frameworks to proof assistants. Readings of classic and cutting-edge research papers will explore verification in depth.
Students will propose, complete, and present a course project. Projects must meet at least one of the following conditions:
- Apply verification to another research area (e.g., robotics, machine learning, human-centered computing)
- Advance the state-of-the-art in software verification research (e.g., improve an SMT solver on a class of problems)
- Replicate prior work in software verification (e.g., re-implement a known algorithm)
Students may work individually or in pairs on all aspects of the course. Groups of three or more are not permitted.
Materials
There is no required textbook.
There are no required materials / textbooks.
Recommended materials:
A paper notebook --- to set project milestones and track progress. See Canvas page: Guidelines: Lab Notebook.
We intend to provide Gitpod images so that you can complete homeworks online without installing any software. If you wish to install the software yourself, here are the required tools and languages:
| Tool | Version |
| Python | v3.8 or newer |
| Racket | v8.10 or newer |
| Java | v11 or newer |
| Lean | 4 |
| Dafny | latest |
Slides and lecture notes will appear in the Pages tab on Canvas: https://utah.instructure.com/courses/1213725/pages
Communication
Discord:
Email:
- blg@cs.utah.edu
- benjaminlgreenman@gmail.com (unofficial, just in case delivery to the utah address fails)
Help Hours / Office Hours
- Prof. Ben: TBD
- TA Dibri: TBD
or by appointment.
TA Queue: TBD
Course Staff CANNOT provide language-specific help on projects. If you chose a language, then part of your task is to navigate its documentation and developer community --- no matter how small they might be!
Evaluation
Final grades will be based on:
- 15% for Coding Assignments, split across 5 assignments during the beginning of the course.
- 20% for written summaries of course Readings, split across TODO papers.
- 60% for your Term Project, split across 2 checkpoints and 4 final deliverable items:
- Checkpoints: Project Proposal & Mid-Term Presentation
- Deliverables: Written Report & Final Presentation & Codebase & Lab Notebook
- 5% for Quizzes and Surveys
Project proposals will be due in mid-February.
Letter grade policy for grad students (CS 6110):
| Final Grade on Canvas | Official Letter Grade |
| 94-100 | A |
| 90-93 | A- |
| 87-89 | B+ |
| 84-86 | B |
| 80-83 | B- |
| 77-89 | C+ |
| 74-76 | C |
| 70-73 | C- |
| 67-69 | D+ |
| 64-66 | D |
| 60-63 | D- |
| 0-59 | E |
Letter grade policy for undergrads (CS 5110):
| Final Grade on Canvas | Official Letter Grade |
| 91-100 | A |
| 87-90 | A- |
| 84-86 | B+ |
| 81-83 | B |
| 78-80 | B- |
| 74-77 | C+ |
| 71-73 | C |
| 68-70 | C- |
| 65-67 | D+ |
| 62-64 | D |
| 58-61 | D- |
| 0-57 | E |
The instructor reserves the right to adjust letter grades upward or downward on a case-by-case basis to reflect students' actual performance in the class.
Course Policies
Attendance: Class attendance is optional. If present, you will be expected to speak and to participate in class activities.
Zoom: Lectures will be streamed on zoom and recordings will be available on Canvas for several weeks. Zoom attendance is allowed but not encouraged. We will not monitor the zoom chat. We will not allow audio from participants. The positioning of the recording camera and microphone may be poor. Our goal with the recordings is to allow anyone to catch up with class for any reason it might be necessary, no questions asked, but without distractions for in-person participants.
Academic Misconduct: We follow the Kahlert School of Computing policy. See below. Academic dishonesty results in a failing grade for the course. Two instances of academic dishonestly lead to expulsion from the major.
Collaboration: Working in pairs is allowed on coding assignments and the term project. Email the professor to create a pair. Pairs should submit one deliverable on Canvas (if you submit two, we will choose one submission to grade). Email the instructor to break up a pair.
AI + LLM: You may use LLMs such as ChatGPT for any part of the course, but you must cite the LLM's contribution to your submission and you must take ownership of the work. For example, it would be bad to use an LLM to produce your entire final project if you are unable to relate the output to research on software verification. When in doubt, ask the instructor. Be advised that AI tools such as ChatGPT, DeepSeek, etc. may produce wrong and misleading outputs, and that their cost to the environment may not be factored into their usage price.
- U. Utah Center for Teaching Excellence AI guidelines: https://cte.utah.edu/instructor-education/ai-for-teaching.php
Schedule
Bold dates = Ben is absent, Dibri will lead class.
| Week | Tuesday | Thursday |
| 1 | Jan 6: Course Overview, Some Logic | Jan 8: Limits of SW Verification |
| 2 | Jan 13: PBT 1 | Jan 15: PBT 2 |
| 3 | Jan 20: Guest Lecture: Gergely Buday on Isar | Jan 22: Isar 2 |
| 4 | Jan 27: TODO | Jan 29: TODO |
| 5 | Feb 3: TODO | Feb 5: Guest Lecture: Rob Durst on site reliability via Gleam |
| 6 | Feb 10: TODO | Feb 12: TODO |
| 7 | Feb 17: TODO | Feb 19: TODO |
| 8 | Feb 24: TODO | Feb 26: |
| 9 | March 3: TODO | March 5: TODO |
| 10 | March 10: No class, Spring Break | March 12: No class, Spring Break |
| 11 | March 17: Project Demos (1/2) | March 19: Project Demos (2/2) |
| 12 | March 24: TODO | March 26: TODO |
| 13 | March 31: TODO | April 2: TODO |
| 14 | April 7: TODO | April 9: TODO |
| 15 | April 14: Final Presentations (1/3) | April 16: Final Presentations (2/3) |
| 16 | April 21: Final Presentations (3/3) | April 23: No class |
Support
Accommodations will be considered on an individual basis and may require documentation.
Please contact the instructor as soon as possible (preferably shortly before the semester begins) to request accommodations of any kind.
Contact your instructor as soon as possible if an extreme personal circumstance
(hospitalization, death of a close relative, natural disaster, etc.) is interfering with your ability to
complete your work.
To request an accommodation for religious practices, contact your instructor at the beginning of the semester.
If you are student on active duty with the military and experience issues that prevent you from participating in the course because of deployment or service responsibilities, contact your instructor as soon as possible to discuss appropriate accommodations.
Disability Access
All written information in this course can be made available in an alternative format with prior notification to the Center for Disability Services (CDS). CDS will work with you and the instructor to make arrangements for accommodations. Prior notice is appreciated. To read the full accommodations policy for the University of Utah, please see Section Q of the Instruction & Evaluation regulations.
If you will need accommodations in this class, contact:
Center for Disability Services
801-581-5020
disability.utah.edu
162 Union Building
200 S. Central Campus Dr.
Salt Lake City, UT 84112
Office of Equal Opportunity
The Office of Equal Opportunity And Affirmative Action (OEO/AA) is dedicated to providing a fair and equitable environment for all to pursue their academic and professional endeavors and to equally access University programs.
OEA/AA
801-581-8365
oeo.utah.edu
383 South University Street
Level 1, OEO Suite
Salt Lake City, UT 84112
Price College Counseling Service
Goal: provide a confidential, safe, and non-judgmental space to address any stressor or concern in your life. Empower you to take actions to meet your needs, values, and goals.
Call to schedule an Initial Consultation (IC) appointment. Be sure to ask for “embedded counseling for College of Engineering”.
Counseling Center
801-581-6826
www.price.utah.edu/students/current/counseling
WEB 1707