## Course Overview

Welcome to PV248 Python Seminar. 

Since this is a programming subject, most of the coursework – and
grading – will center around actual programming. There will be 2
types of programs that you will write in this seminar: tiny programs
for weekly exercises (around 10–30 minutes each) and small programs
for homework (a few hundred lines and anything from a few hours to a
day or two of work).

As you probably know by now, writing programs is hard and this
course won't be entirely easy either. You will need to put in effort
to pass the subject.  Hopefully, you will have learned something by
the end of it.  Further details on the organisation of this course
are in the remaining files in this directory:

 • ‹2_grading.txt› – what is graded and how; what you need to pass,
 • ‹3_tasks.txt›   – general guidelines that govern assignments,
 • ‹4_reviews.txt› – writing and receiving peer reviews.

Study materials for each week are in directories ‹01› through ‹12›.
Start by reading ‹00_intro.txt›. Assignments are in directories ‹t1›
through ‹t4›, one for each 4-week block and one extra for the exam
period. They will be made available according to the schedule shown
in ‹2_grading.txt›.

The exercises for any given week will make use of the material
covered in the lecture, though some weeks it will be a fairly loose
fit. Especially when the lecture material is broad (like in weeks 1,
2 and 5), the seminar will mainly include general programming
exercises. Topics will get more specific and focused as the semester
progresses. The lectures are divided into 3 blocks, 4 lectures each.
They will cover the following topics:

│ block │      │ topic                             │  date  │
├───────│─────▻┼◅──────────────────────────────────│────────│
│    1  │   1. │ expressions, variables, functions │ 13.9.  │
│       │   2. │ objects, classes, types, mypy     │ 20.9.  │
│       │   3. │ scopes, lexical closures          │ 27.9.  │
│       │   4. │ iterators, generators, coroutines │  4.10. │
│┄┄┄┄┄┄┄│┄┄┄┄┄┄│┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄│┄┄┄┄┄┄┄┄│
│    2  │   5. │ memory management, refcounting    │ 11.10. │
│       │   6. │ object and class internals        │ 18.10. │
│       │   7. │ generators & coroutines cont'd    │ 25.10. │
│       │   8. │ testing, profiling, pitfalls      │  1.11. │
│┄┄┄┄┄┄┄│┄┄┄┄┄┄│┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄│┄┄┄┄┄┄┄┄│
│    3  │   9. │ text, predictive parsing          │  8.11. │
│       │  10. │ databases, relations vs objects   │ 15.11. │
│       │  11. │ asynchronous programming, http    │ 22.11. │
│       │  12. │ math and statistics               │ 29.11. │
