Upon completion of this piece of coursework, a student will be able to:
Reason with relations and functions as data abstractions.
Understand a given Z specification.
Identify and formally describe the invariants of a system.
Produce formal procedural abstractions.
Reason about bags and sequences and perform operations on them.
Use recursion in function definitions.
Discover and describe preconditions of system operations.
Use schema calculus.