|University: Technical University of Košice|
|Faculty: Faculty of Electrical Engineering and Informatics|
|Department: Department of Computers and Informatics
|Course Number: 2616071||Course Name: Type theory|
|Type, scope and method of learning activities:
Course Type: Lecture, Numerical exercises
Recommended scope of the course content (in hours):
Full-time study (hours per week): 2,2
Part-time study (hours per semester): 26,26
|Number of credits: 6|
|Recommended semester of study: WT|
|Recommended semester||Study programme||Study grade||Study Method|
|1.rok WT||Cybersecurity (KB_Ing_D_sk)
Computer Modelling (PM_Ing_D_sk)
|2.rok WT||Cybersecurity (KB_Ing_D_sk)
|Level of study:|
|Course completion requirements:
Assessment and completion of the course: Credit test and examination
Continuous assessment: Student passes the continuous assessment and receives credits when he or she meets the requirement to obtain at least 16% out of 30%.
Final assessment: Student passes the final assessment and passes the examination when he or she meets the requirement to obtain at least 36% out of 70%.
Overall assessment: Overall assessment is the sum of the assessments obtained by students in the assessment period. The overall result is determined in accordance with the internal regulations of the Technical University in Košice. (Study Regulations, the internal regulation principles of doctoral studies)
Students acquire basic knowledge about principles and methods of type theory starting with basic types across Church types, Curry types, polymorphic types up to dependent types. They understand different approaches to types and how to define the relations between them. They learn the approaches for defining several special types, e.g. recursive types and existential types. Students understand the paradigm proposition-as-type based on Curry-Howard isomorphism. They practice particular approaches on examples in functional and procedural languages.
|Brief course content:
1. Basic notions in type theory.
2. Untyped language of numbers and Booleans, NBL.
3. Untyped lambda calculus.
4. Typed NBL.
5. Simply typed lambda calculus.
6. Derived terms.
7. Product and sum types.
8. Recursion and recursive types.
9. Referential types.
12. Polymorphic types.
|Recommended Reference Sources:
1. B.C.Pierce: Types and Programming Languages, MIT,2002
2. J.-Y. Girard: Proofs and types, Cambridge Univ.Press, 1989
3. J.R.Hindley: Basic simple type theory, Cambridge Univ.Press, 1997
4. R.Sethi: Programming Languages, WileyaSons, 1996
5. W.Horowitz: Higher-order Programming Languages, WileyaSons, 1982
|Recommended optional program components:
|Languages required for the course completion:|
Total number of students assessed: 950
prof. RNDr. Valerie Novitzká, PhD.
doc. Ing. William Steingartner, PhD.
Ing. Ján Perháč, PhD.
|Last modified: 01.09.2022|
|Approved by: person(s) responsible for the study program|