Scientific Programming: Algorithms¶
General Info¶
The contacts to reach me can be found at this page.
Timetable and lecture rooms¶
Lectures will take place on Tuesdays from 15:30 to 17:30 (synchronous online if not otherwise communicated) and on Thursdays from 15:30 to 17:30 (synchronous online if not otherwise communicated). This second part of the Scientific Programming course will tentatively run from 03/11/2020 to 14/12/2020.
Midterm¶
The midterm of this part of the course will take place on Wednesday, December 16th, online at 11:30-13.30.
Moodle¶
In the moodle page of the course you can find announcements and videos of the lectures. It can be found here.
Zoom links¶
The zoom links for the lectures can be found in the Announcements section of the moodle web page.
Slides¶
The slides shown during the lectures will gradually appear below:
Lecture 1-2: Introduction to algorithms
Lecture 3: Algorithms and complexity
Lecture 4: Complexity and sorting
Lecture 5: Data Structures 1
Lecture 6: Data Structures 2
Lecture 7-8: Trees
Lecture 9-10: Graphs
Lecture 11: Dynamic Programming
Lecture 12: Other paradigms
Course material¶
Brad Miller and David Ranum. Problem Solving with Algorithms and Data Structures using Python. An interactive version is freely available at this link.
Other material includes the following books:
Lutz. Learning Python (5th edition). O’REILLY (2013)
Hetland. Python Algorithms: Mastering Basic Algorithms in the Python Language. Apress, 2nd ed. (2014)
Cormen et al. Introduction to Algorithms (3rd edition). MIT Press.
and (thanks to Prof. Alberto Montresor)
Acknowledgements¶
I would like to thank Prof. Alberto Montresor for kindly allowing me to use his slides and Dr. David Leoni for all his help and for sharing Jupman with me. I would also like to thank Dr. Stefano Teso for allowing us to use some of his material of a previous course.