TIE-20306 Principles of Programming Languages Autumn 2019 1 - - PowerPoint PPT Presentation

tie 20306 principles of programming languages
SMART_READER_LITE
LIVE PREVIEW

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/


slide-1
SLIDE 1

1

TIE-20306 Principles of Programming Languages

Autumn 2019

slide-2
SLIDE 2

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
slide-3
SLIDE 3

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. ☺

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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)

slide-6
SLIDE 6

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
slide-7
SLIDE 7

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
slide-8
SLIDE 8

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)

slide-9
SLIDE 9

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

slide-10
SLIDE 10

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

slide-11
SLIDE 11

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
slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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!

slide-15
SLIDE 15

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.

slide-16
SLIDE 16

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
slide-17
SLIDE 17

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

+ participation in weekly exercises & lectures + writing lecture essays (grade must be at least 1)