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/ ● Email: popl@lists.tuni.fi 2
● This is NOT the course TIE-02107 Programming 1: Introduction or TIE- Important 02207 Programming 2: Basics. notice to ● If you accidentally thought so, could students you please unregister from this course in POP. ☺ 3
● Official course language is English ● Mutta suomeksikin voi kysyä, jos Course Language 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 4
● Good knowledge of at least one programming language (C++, Java, Prerequisites Python, etc.) for the course ● Experience in writing programs (larger than simple toy programs) ● Knowledge of basic computer science terms (recursion, algorithms, functions, parameters, objects, inheritance, modularity) 5
● Programming paradigms: Imperative, Functional, Logic, (Script) Some topics ● General syntax and semantics of languages of the course ● 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 6
● 27.8. Lectures start ● Third lecture week: weekly exercises Course Timetable 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 7
● Times – Tuesday 14:15-16:00 in TB109 (periods 1 Lectures & 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) 8
● Maurizio Gabbrielli, Simone Martini, Programming Languages: Course Principles and Paradigms , ISBN: Material 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 9
● Course has a Plussa area "TIE-20306 Principles of Programming Languages" Course – Plussa contains links to all relevant information – Important news and notices are sent through POP Plussa & – Video recordings of lectures (Echo360 service) link are Mattermost 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 10
● Learning easier if you know what the topic is about & what there is to learn Lecture ● Each week (on Wednesday/Thursday) a essays 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 11
● Lecture attendance gives you 1 point ● Lectures are also recorded, but no points Lecture are given for that (no discussion) attendance ● You can compensate for not attending by writing extended lecture essays 12
● If you cannot attend lectures, you can compensate by writing extended lecture Extended essays lecture essay ● 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 13
● Times – Wednesday 8-10 TC131 in English Weekly – Wednesday 12-14 TC133 in Finnish Excercises – 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! 14
● Lecture essay 1 p (max total 13) ● Lect attendance 1 p (max total 20) Summary of points ● 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. 15
● This year done as an individual projects ● Topic: implementing a simple Programming interpreter/compiler for a simple project "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 16
● 50 % : Grade from the exam ( grade must be at least 1 ) Grading ● 25 % : Grade from the programming assignment: ( grade must be at least 1 ) ● 25 % : Grade from weekly homework + participation in weekly exercises & lectures + writing lecture essays ( grade must be at least 1 ) 17
Recommend
More recommend