SEMANTICS (Q1,'05)

[ semantics | relevance | roles | structure | schedule | exercises | project | exam | re-exam | materials | classes | webboard ]

Structure

COURSE STRUCTURE

Lectures are [ Thursdays 11:15 - 14:00 in Aud. F (1-534-125 ) ] and will progress according to the following overall (logical) structure:

  • introduction; prerequisitional math; semantic descriptions; using semantic descriptions; applications of semantics; course evaluation; exam.

INTRODUCTION

  • All about the course [see entire Semantics homepage];
  • My pedagogical choices (for which you may hold me responsible in the course evaluation at the end of the course).

    • Keywords: { aims, goals, assessment, contents, relevance, philosophy, motivation, roles, teaching/learning, course evaluation, structure, schedule, material, classes }

PREREQUISITIONAL (DISCRETE) MATH

  • Background knowledge needed for the rest of the course (some of you may already know some of this).

    • Keywords: { relations, inference systems, transition systems, fixed points, automata, structural induction }

PART 1. SEMANTIC DESCRIPTIONS

  • Based on your knowledge of programming languages (imperative and functional), you will be introduced to the "world of semantic models" (and how it relates to programs) in that...;
  • You will learn how to describe, explain, and analyze (the semantics of) programs and programming languages.
  • In this course we will focus mainly on structural operational semantics (as our semantic models).

    • Keywords: { expressions, commands, definitions, declarations, big-step vs. small-step semantics, side-effects, laziness, termination, types, static semantics, dynamic semantics }

PART 2. USING SEMANTIC DESCRIPTIONS

  • Now that you understand semantic descriptions, you will learn how to use them to understand whole new programming languages and paradigms.
  • In this course, we will use a concurrency and communication modelling language, CCS, which may (and will) be used to model and understand concurrency and communication in Java.
  • You will learn how to compare and reason about semantic descriptions.

    • Keywords: { concurrency, communication, processes, channels, interleaving, synchronization, deadlock, modelling }

PART 3. APPLICATIONS OF SEMANTICS

  • Now that you can describe, explain, analyze, compare, and reason about semantic models, we will go one step further in that...;
  • You will learn how to use semantic descriptions to prove consequences of (properties, correctness) semantic desciptions; and how to apply semantic descriptions to understand programs and programming languages.
  • You will also see how to describe imperative features and applications of semantics in the software industry.

    • Keywords: { equivalence, equivalence relations, bisimulation, games, environment-store-model, declarations }

COURSE EVALUATION

  • Your chance to give me constructive feedback (for me to improve the course).

EXAM

  • Your chance to show what you have learned (cf. Aims and Goals).

  • Note: Don't forget to sign up for the exam using the Student "Self-Service".
evalutaion

Claus Brabrand (August 26, 2005)