1
TIE-20306 Principles of Programming Languages Autumn 2019 1 - - PowerPoint PPT Presentation
TIE-20306 Principles of Programming Languages Autumn 2019 1 - - PowerPoint PPT Presentation
TIE-20306 Principles of Programming Languages Autumn 2019 1 Lecturer: Matti Rintala Main assistant: Jyke Savia Basic Course Info Assistants: Maarit Harsu, Ulla Virta, Saman Payvar Web page: http://www.cs.tut.fi/~popl/
2
Basic Course Info
- Lecturer: Matti Rintala
- Main assistant: Jyke Savia
- Assistants: Maarit Harsu, Ulla Virta,
Saman Payvar
- Web page: http://www.cs.tut.fi/~popl/
- Email: popl@lists.tuni.fi
3
Important notice to students
- This is NOT the course TIE-02107
Programming 1: Introduction or TIE- 02207 Programming 2: Basics.
- If you accidentally thought so, could
you please unregister from this course in POP. ☺
4
Course Language
- Official course language is English
- Mutta suomeksikin voi kysyä, jos
haluaa (but you can ask questions in Finnish, if you wish)
- Lectures are in English
- Two English excercise groups, two
Finnish
- You can use English or Finnish in the
programming assignment
5
Prerequisites for the course
- Good knowledge of at least one
programming language (C++, Java, Python, etc.)
- Experience in writing programs (larger
than simple toy programs)
- Knowledge of basic computer science
terms (recursion, algorithms, functions, parameters, objects, inheritance, modularity)
6
Some topics
- f the course
- Programming paradigms: Imperative, Functional,
Logic, (Script)
- General syntax and semantics of languages
- Phases of program compilation and interpretation
- Variable lifetimes, binding and memory
management
- Typing and type systems, type inference
- Subprograms and parameter passing mechanisms
- Generic programming, exception handling,...
- Understanding WHY?
- Understanding language design compromises
7
Course Timetable
- 27.8. Lectures start
- Third lecture week: weekly exercises
begin
- Mid September: Registration for
programming assignment ends
- In September: Programming
assignment phase 1 published
- Middle of period 2: weekly exercises
end
- End of period 2: First exam
8
Lectures
- Times
– Tuesday 14:15-16:00 in TB109 (periods 1
& 2)
– Thursday 10:15-12:00 in RN201 (period 1)
- Goal is discussion
- Lighter experience than textbook alone (I can
guarantee that!)
- Lecture slides will be published, but they are
not suitable for self-study without attending lectures
- Lectures are recorded, link to recordings in
Plussa (through Moodle)
9
Course Material
- Maurizio Gabbrielli, Simone Martini,
Programming Languages: Principles and Paradigms, ISBN: 978-1-84882-913-8 (Print) 978-1- 84882-914-5 (Online), Springer- Verlag, 2010
- (Maarit Harsu: Ohjelmointikielet —
Periaatteet, käsitteet, valintaperusteet, Talentum, 2005)
- Extra material on homepage, when
appropriate
10
Course Plussa & Mattermost
- Course has a Plussa area "TIE-20306 Principles of
Programming Languages"
– Plussa contains links to all relevant information – Important news and notices are sent through POP – Video recordings of lectures (Echo360 service) link are
found in Plussa (directs through Moodle)
– Submission of lecture essays, exercises, and
programming assignments are done in Plussa
- For discussion, we have a Mattermost channel in the Tuni
Students&Staff team
– https://mattermost.tut.fi/studentsetstaff/channels/tie-20306
- popl
(links also on web page)
– If this is your first time, register your @...tuni.fi email
address with invitation link given on the web page
– Any course related peer discussion welcome! – Course staff participates, if/when we have time
11
Lecture essays
- Learning easier if you know what the
topic is about & what there is to learn
- Each week (on Wednesday/Thursday) a
short essay topic is given, based on next week's lectures
- Idea is to familiarize yourself on the
subject, find out questions / difficult
- parts. Helps lecture discussion.
- Each essay gives you 1 point = not
compulsory, but affects the grade
- Submitted to Plussa
12
Lecture attendance
- Lecture attendance gives you 1 point
- Lectures are also recorded, but no points
are given for that (no discussion)
- You can compensate for not attending by
writing extended lecture essays
13
Extended lecture essay
- If you cannot attend lectures, you can
compensate by writing extended lecture essays
- Extended essays are submitted after
respective lecture and are considerably longer
- Regular essays: familiarize yourself with the
topic
- Extended essays: prove what you have
learned about the topic
- Extended essay gives 3 points, but max. each
week for essay+attendance+extended essay = 3
14
Weekly Excercises
- Times
– Wednesday 8-10 TC131 in English – Wednesday 12-14 TC133 in Finnish – Wednesday 14-16 SE211/TC133 in Finnish – Thursday 12-14 TB206 in English
- Begin on third lecture week (9.9. onwards)
- Homework given in English. In Finnish groups,
Finnish/English answers are allowed. In English groups English only
- Homework points: 1 per question (~3 question/week).
Attendance: +50 % of done homework points
- If you attend, you must be willing to present your
answer!
15
Summary of points
- Lecture essay 1 p (max total 13)
- Lect attendance 1 p (max total 20)
- Extended essay 3 p (max total 33)
- Weekly exerc 3 p/week (max tot 30)
- Exerc attend 1.5 p/week (max 15)
- Max total 78 points, translated to sub-
grade 0-5 (formula on web page).
- You are not expected to collect all
points! You choose what's best for you.
16
Programming project
- This year done as an individual projects
- Topic: implementing a simple
interpreter/compiler for a simple "programming" language (emphasis on simple)
- Implemented in Python (using PLY tool)
- Minimum requirements to pass, possibility
to gain more points with more functionality
- Done in 4 phases, mostly during period 2
17
Grading
- 50 %: Grade from the exam (grade
must be at least 1)
- 25 %: Grade from the programming
assignment: (grade must be at least 1)
- 25 %: Grade from weekly homework