NWI-IBC026
Semantics and Correctness
Course infoSchedule
Course moduleNWI-IBC026
Credits (ECTS)3
CategoryBA (Bachelor)
Language of instructionEnglish
Offered byRadboud University; Faculty of Science; Informatica en Informatiekunde;
Lecturer(s)
Lecturer
prof. dr. J.H. Geuvers
Other course modules lecturer
Examiner
dr. E.G.M. Hubbers
Other course modules lecturer
Lecturer
dr. E.G.M. Hubbers
Other course modules lecturer
Coordinator
dr. E.G.M. Hubbers
Other course modules lecturer
Contactperson for the course
dr. E.G.M. Hubbers
Other course modules lecturer
Academic year2023
Period
KW3  (29/01/2024 to 07/04/2024)
Starting block
KW3
Course mode
full-time
Remarks-
Registration using OSIRISYes
Course open to students from other facultiesYes
Pre-registrationNo
Waiting listNo
Placement procedureIn order of Study programme
ExplanationIn order of Study programme
Aims
After this course, participants are able to:
  • Define the semantics of imperative language constructs using inductive methods, including extensions like abrupt termination.
  • Explain the consequences of design choices.
  • Analyze computations in imperative languages like termination behavior and semantic equivalence.
  • Prove properties of programs using inference systems for correctness.
  • Determine whether inference systems are sound and/or complete.
Content
In this course, you will learn formalisms to define the operational semantics and axiomatic semantics of imperative programming languages. These methods are important for designing new languages and extending existing languages. In addition, these formalisms are used for analyzing the behavior of programs. In the field of computing science, you will not only have to apply these formalisms, but you will also have to evaluate, expand or design these formalisms as well.

Instructional Modes
Typically, each week the course has three sessions:
  • Plenary lectures. You are supposed to prepare for these lectures by doing a so-called preparation assignment. The first 20-25 minutes of the lectures are used for answering your questions about these topics. The rest of the time is used for introducing the more complex topics. After the plenary lecture, the weekly learning task will be published.
  • Parallel tutorial sessions. Within these sessions, you can work on the new learning task or ask questions about the previous task under the supervision of TAs.
  • Q&A lectures. Within these sessions, solutions for selected exercises of the learning task are discussed.
Because most of the solutions to the exercises are not published, but only discussed in the Q&A lectures, this course is not very well suited for self-study in the last few weeks. In fact, the experience from previous years shows that students who actively do the learning tasks every week, usually pass the course at the first opportunity.
Level

Presumed foreknowledge
You have programming experience with imperative programming languages. In addition, you are able to:
  • use the language of predicate logic to formulate statements;
  • distinguish the elementary steps within argumentation and present proofs in a suitable inference system;
  • specify (programming) languages and extensions using regular expressions and context-free grammars;
  • formulate clearly, both in motivating solutions as well as in structured proofs in natural language.
You can obtain these prerequisites by doing the courses in the programming line, and by doing one of the courses IPC002 Languages and Automata or IPK001 Introduction to Formal Reasoning,  and by doing the course IPI004 Logic and Applications. In addition, it helps if you have done the course IBC003 Computability, but that is not a formal requirement.
Test information
The final grade of this course depends of the digital Cirrus exam grade E and the average grade of the homework H.

If E is at least 5.0 then the final grade F is computed by the formula F = min(10, 0.9*E + 0.2*H). If E is less than 5.0 then the final grade F is computed by the formula F = min(5, 0.9*E + 0.2*H) as the rules and regulations require that in order to pass the grade for the exam itself is at least 5.0.

So for passing the course, doing the homework is not required, but it is if you want to score a 10 for the course.

Note that it is not possible to redo the homework.

 
Specifics

Required materials
Book
Hanne Riis Nielson and Flemming Nielson: Semantics with applications, 1999. The book is available for free as PDF via Brightspace.
Title:Semantics with applications
Author:Hanne Riis Nielson and Flemming Nielson
Reader
Engelbert Hubbers: Annotated Programs, an alternative notation for correctness proofs. These notes are available as PDF via Brightspace.
Title:Annotated Programs
Author:Engelbert Hubbers

Instructional modes
Course
Attendance MandatoryYes

Remark
84 hours.

Tests
Digital Exam
Test weight1
Test typeDigital exam with CIRRUS
OpportunitiesBlock KW3, Block KW4