Programming Languages Research Seminar (MTAT.03.271), 3 EAP
- Time: Fridays, 10:15 - 11:45
- Place: Liivi 2-511
- Contact: aivar.annamaa@ut.ee
- In order to pass, students are expected to:
- in Feb-May: choose 1-2 PL-related topics and introduce each of it to others in form of a 90 minute tutorial/presentation (ie. by default two 90-minute presentations per nose. See below, how to pass with only one main presentation). NB! Presentation slides/tutorial materials have to be sent to Aivar at least 24h before the actual presentation/tutorial, otherwise the seminar for that week will be cancelled! Cancelled seminar guarantees that the respective student needs to present two topics! Two cancellations by same student results in grade "failed".
- in June: present one of the topics in a compressed (25 minutes) form
- attend at least 2/3 of the main presentations and 2/3 of the compressed presentations given by other students
In the end of first round of presentations, each student can vote for 3 best presentations. Based on the number of votes and on Aivar's subjective opinion about the quality of each presentation, most of the students will be freed from giving the presentation on second topic. Pro tip: if you want to pass with only one main presentation, make sure you put enough effort into it! ;) . Everybody still needs to give the compressed presentation in June.
The aim of the main presentation/tutorial should be to really teach the audience about the chosen topic. You need to take into account the level of your listeners. During the class you need to constantly monitor whether your audience is following you. In the end of your presentation, the listeners should have really learned something useful and/or interesting about programming languages.
The compressed presentation (in June) is meant as practice of giving conference presentations. The time limit will be enforced strictly.
Schedule in June
- Mon, June 17th, 14:15-18:45
- 14:15 Mihhail, GPU computing in CUDA
- 14:45 Mirko, Type safe JSON with Scala macros
- 15:15 Filipp, About selected Haskell type classes
- 15:45
UkuDiscussion - 16:15 break, 30 min
- 16:45 Oleg, Static Analysis for Dynamic Updates
- 17:15 Kristjan, Evaluation in Functional Logic Programming
- 17:45 Viktor, Implementing Dynamic Languages on JVM
- Thu, June 20th, 10:00-14:00
- 10:00 Urmas, Optimization of functional languages: The G-machine
- 10:30 Jaak, Languages in Sharemind
- 11:00 Viktor, JIT in JVM
- 11:30 break, 30 min
- 12:00 Uku, About Cyclone programming language
- 13:00 Kristjan, About Idris programming language (ca 55min)
Schedule during semester
- 13.02 - first meeting. Aivar will talk about good presentations. We'll fix the initial schedule of main presentations.
22.02- no seminar that week- 01.03 - Aivar, Memory management in Rust programming language (http://www.rust-lang.org/)
08.03- no seminar that week- 15.03 - Implementation of selected features in Kotlin (https://oracleus.activeevents.com/connect/sessionDetail.ww?SESSION_ID=5759)
- 22.03 - Jaak, C++11 (move semantics)
29.03- Suur Reede, no seminar that week- 05.04 - Mirko, Akka ja Actor Model
- 12.04 - Oleg, Taming Java Agents
- 19.04 - Mirko, Advanced Scala features
- 26.04 - Filipp, Parallelism and Concurrency in Haskell
03.05Cancelled- 10.05 - Mihhail, Bytecode in Java
- 17.05 - Viktor, Ruby DSL-s
24.05Cancelled- E, 27.05 at 16:15 - Kristjan, Functional logic programming.
- 31.05 - Urmas, The implementation and optimization of functional languages.
- 31.05 at 12:00, Uku, Google Go
Some topic ideas
- GPU programming languages (http://dl.acm.org/citation.cfm?id=882362)
- Quantum programming languages (http://www.quantiki.org/wiki/Quantum_Programming_Language)
- Multi-stage programming (http://www.cs.rice.edu/~taha/MSP/)
- Programming language syntax design (http://lambda-the-ultimate.org/node/3523)
- Safe systems programming languages (http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.107.7753)
- Optimizations in functional languages (http://en.wikipedia.org/wiki/Compiler_optimization#Functional_language_optimizations)
- Type inference (http://en.wikipedia.org/wiki/Type_inference)
- Read-only and immutability (http://www.cs.uwm.edu/~boyland/papers/readonly-talk.pdf)
- Aliasing & Ownership types (http://ecs.victoria.ac.nz/Events/IWACO2011/)
- Security-related type systems (eg. http://citeseerx.ist.psu.edu/viewdoc/summary;jsessionid=BAFF13798CB40E18AA6CD6D1BBE0F642?doi=10.1.1.10.3979)
- Effect systems (http://en.wikipedia.org/wiki/Effect_system)
- How to encode semantics of OO features (http://lucacardelli.name/Papers/ObjectEncodings.pdf)
- Many more type systems-related research problems are discussed here: http://www.cis.upenn.edu/~bcpierce/papers/harmful-mfps.pdf
- http://lambda-the-ultimate.org/ -- check the forums to get an overview of diverse topics programming languages people are dealing with (NB! the focus is skewed towards more abstract topics here)
- Conferences, workshops, journals:
Links
- Presentation evaluation matrix: https://courses.cs.ut.ee/MTAT.03.265/2012_fall/uploads/Main/hindamismudel.pdf
- Presentation preparation checklist: http://www.faemse.org/downloads/checklist.pdf
- Life after Death by Powerpoint: http://www.youtube.com/watch?v=lpvgfmEU2Ck