Skip to content

🎓 Materials for my lectures including programming langauge design, software engineering and human-computer interaction.

Notifications You must be signed in to change notification settings

tpetricek/teaching

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tomas Petricek's teaching

This repository contains various teaching materials I created for the courses taught at Charles University and University of Kent. The materials use reveal.js and are generally generated from Markdown using F# Formatting. For my industry and research talks see my Talks repository and for older materials (before 2015), check out my old Documents repository.

Programming Language Design (2024)

The goal of this course is to show students how to design better programming languages, developer tools, development frameworks and libraries. The course covers rigorous methods for programming language and library design, ranging from formal methods based on logic and programming language theory, to human-computer interaction methods based on qualitative and quantitative user studies.

See also the official course page and NPRG075 in SIS.

Advanced C# Programming - Labs (2024)

In this course students will explore .NET platform's advanced programming techniques and internals, and specialized parts of standard .NET libraries. Successful completion of the course should give students a good knowledge of the wide range of features provided by the .NET platform, and allow them to effectively use the gained knowledge in real-life projects developed for .NET platform.

See also the official course page and NPRG077 in SIS.

Write your own tiny programming system(s)! (2023)

The goal of this course is to teach how fundamental programming language techniques, algorithms and systems work by writing their miniature versions. The course covers multiple paradigms including functional, object-oriented, imperative and logic, as well as end-user programming environments like spreadsheets. Examples will be given using the F# programming language, which will be briefly introduced.

See also the official course page and NPRG077 in SIS.

Guest lectures (2023/2024)

I did guest lectures at two courses! The Concepts in Modern Programming course (NPRG014 in SIS) shows interesting and advanced concepts of modern object-oriented programming languages and demonstrate their application together with practical exercises. The Functional Programming course (NAIL097 in SIS) covers theoretical foundations of functional programming and their uses, in particular in the environment of Haskell language.

Teaching at Charles University (2022)

Teaching at University of Kent (2018-2022)

Materials license

The presentations and documents available in the repository are available under the Creative Commons Attribution 2.5 license. This means that you can copy, distribute and remix the work, but you must attribute the work to the author (by providing a link to the original source and my name). For more information see the full license details.