As the previous reviews noted, prof. Dovrolis is very much involved in the course, enthusiastic about the material and invests considerable time and effort in interacting with students and promoting the learning. The material itself is mostly interesting, in particular applications of the graph theory and some related network analysis algorithms. I thought it was a nice course with some advanced topics being discussed.
The TA-s are mostly involved, there were occasional misses (including some rare cases where answers on Piazza which could confuse into an incorrect quiz answer), and some questions on Piazza could be seen hanging for some time, but mostly the TA support was rather solid.
Logistics wise, a lot of complaints can be seen on the quizzes, but I think those should be taken with a balanced view. Granted, the quizzes were hard, with occasional questions worded in a tricky way - but I can't say it was the general flow. FWIW, out of 14 quizzes, I got a full score only once, with average quiz grade before the final adjustment being just above 80%, and I did find it annoying more than once to receive a zero score on question where I marked 3 out of 4 T/F options correctly, and there have been occasional ambiguities (as well as regrades following discussions). However, the quizzes did require reviewing and thinking over the material and they did test the understanding. Generally, each quiz had 6-7 questions, some multiple choice, with one or two easy and some really hard, and like I said, almost every quiz tripped me with something.
You need to consider that the quizzes are open, un-timed, there are no other exams of any sort, two lower grades were dropped and the grade cut-offs, at least as described by the professor, were several points below the usual 90/80/etc cut-offs. Add to that the fact that the lower homework grade was dropped (maybe because it was the Summer term - it seemed way too generous), then I can see the point of the quizzes (35% of the grade) being hard, to push things and to help learning (which they did).
The homework (projects - 5 of those) were nice, the programming (python/networkx/matplotlib plotting) being relatively easy, but they did consume time (for me there was also matplotlib/seaborn learning curve, which was nice). Numpy knowledge is beneficial. The homework included not just dry programming but also some theoretical questions, as well as understanding how to better plot and present the data for analysis and explanation. There were some occasional ambiguities in the homework as well, but I don't think there was any point of unfair grading WRT anything. I didn't get 100-s on all of the assignments, but getting an average of well above 90 I would not consider difficult with effort spent, and those are the other 65% of the grade.
Jupyter notebooks are not everyone's cup of tea, so I just did and debugged the assignment parts in Pycharm and then moved to the notebook. The notebooks have some advantages,
e.g. for isolating occasional long-running parts, to get the data, and then working separately on better plotting/analysis etc. For theoretical answers with math (not that much at all, really) I did use Latex there - nothing substantial, especially if you have survived the CP midterm report.
Re required readings - I did have time limitations during the term so I skimmed most of the book (some quizzes do occasionally require looking it up - but it's online and free). Neither did I go deep into any of the papers (saved them for later). Just because I allowed that slack doesn't mean it was a good thing to do, but it did not prevent getting a good grade (before any grades or letter grade level cut-off dropped). So it's all very much doable - the return (i.e. the depth of understanding) would be in proportion to investment. As a background, I'm by far not a graph theory or (especially) machine learning specialist.
This was my 6th course. It has left a nice feeling, glad I took it in the summer.