TIES341 Functional Problemming (3–5 cr)
Study level:
Advanced studies
Grading scale:
0-5
Language:
Finnish
Responsible organisation:
Faculty of Information Technology
Curriculum periods:
2024-2025, 2025-2026, 2026-2027, 2027-2028
Tweet text
More detailed and current information can be found in the information of the realisation.
Description
This course covers the connections between functional programming
and proof theory, including proof structures: definitions, examples,
lemmas, facts, remarks, corollaries, propositions and properties;
proofs: by simplification, by rewriting, by case analysis and by
induction; proof styles: informal and formal; data structures: pairs,
lists and finite maps; tactics: programs that search programs and
proofs; logic: classical and constructive; and extraction: proofs as
mathematical objects and compiling proofs into programs.
Learning outcomes
On this course, we will study what typed (that is, statically typed)
functional programming looks like and what it is good for. The goal of
this course is not to make you into a top notch application developer,
but rather to give you deeper insights into the basic elements of
programming and to build you a sufficient foundation for later exploring
formal proving without tears. On the side, this course also offers you
an excellent excuse to try out new tools and ways of working.
Description of prerequisites
This course does not have absolute prerequisites in the form of
other courses. However, participants are expected to have basic computer
skills, familiarity with functional programming, a reasonable level of
mathematical maturity and a healthy attitude towards work. Mathematical
maturity does not only make the course possible to complete, but also
helps make connections with topics that are covered in greater depth on
other courses.
Recommended prerequisites
- Prerequisite group 1
- TIEA341 Functional Programming (1–5 cr)
- TIEP114 Computer Organization and Architecture (1–5 cr)
- ITKA201 Algorithms 1 (5 cr)
- TIEA211 Algorithms 2 (4 cr)Not published for this curriculum period
- TIEP111 Programming 2 (8 cr)
- Prerequisite group 2
OR
Completion methods
Method 1
Select all marked parts
Parts of the completion methods
x
Participation in teaching (3–5 cr)
Type:
Participation in teaching
Grading scale:
0-5
Language:
Finnish