Course syllabus
(PLEASE NOTE that the course is entirely new with a lot of development work. Therefore, details should be considered as preliminary and can be expected to be updated as the course proceeds. Currently missing information will be updated at the latest when the course begins.)
Important information:
- Office Hours: Wednesday, October 28, 13:00 - 15:00, "python-course" channel, DIT374 Slack.
- The deadline for resubmissions (assignments 1-7) is until the end of this course (1st of November). For assignment 8, the deadline for resubmissions is 8 of November.
Introduction
This course is a combination of a continuation course in programming, object oriented
programming, data structures, foremost from the perspective of data science, including
a short orientation about algorithms and algorithm design principles. The language in
this course is Python which is the most common language in the area of data science.
Course content:
- Basics of Python (data types, expressions, control structures)
- Types of algorithms, searching and sorting
- Object oriented programming
- Common data structures
- Standard libraries relevant to data science
- Orientation about algorithms and algorithm design principles
https://kursplaner.gu.se/pdf/kurs/en/DIT374 (here some details like learning objectives can be found)
Contact details
- Marwa Naili (lecturer, course responsible): naili at chalmers.se (please contact Marwa for questions about the course)
- Dag Wedelin (examiner): dag at chalmers.se
- Shirin Tavara (lecturer): tavara at chalmers.se
- David Bosch (TA): davidbos at chalmers.se
Course representatives:
- Tobias Schwarz: gusschwto at student.gu.se
- Atefeh Aminmoghaddam: a.aminmoghadam at gmail.com
Schedule
Due to Covid-19 this will be an online course.
General schedule : lectures at 10-12 on Monday and Wednesday and supervision at 13-15 on Wednesday and Friday. There may be exceptions some weeks. See the TimeEdit schedule.
Course literature
[1] C. Horstmann: Python for everyone 3rd ed., ISBN: 978-1-119-63829-2,
[2] Python tutorial: https://docs.python.org/3/tutorial/
[3] Python 3 course: http://www.python-course.eu/python3_course.php
[4] w3schools, Python: https://www.w3schools.com/python/default.asp
[5] NumPy & SciPy references: http://docs.scipy.org/doc/
[6] W. Mckinney: Python for Data Analysis, 2nd Edition. ISBN: 9781491957660
[7] Jon Kleinberg, Eva Tardos: Algorithm Design. Pearson/Addison-Wesley 2006, ISBN 0-321-29535-8.
[8] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: Introduction to Algorithms, 3rd Edition. MIT Press and McGraw-Hill, 2009.
[9] Sanjoy Dasgupta, Christos Papadimitriou, and Umesh Vazirani. Algorithms (1st Edition). McGraw-Hill Higher Education, 2008.
[10] Demo for Array, LinkedLists, QueueWithArrays, QueueWithLinkedLists
[11] Robert Sedgewick and Kevin Wayne (2011). Algorithms, 4th edition. The book is available from Cremona, and there is no e-book version. The book has a good webpage with additional information, code, exercises, etc: https://algs4.cs.princeton.edu/
[12] Demo for BFS and DFS, http://www.cc.gatech.edu/~bader/COURSES/GATECH/CS6505-Spring2006, https://www.cs.princeton.edu/courses/archive/spr10/cos226
[13] Demo for hash table
Changes made since the last occasion
A summary of changes made since the last occasion.
Examination and grading
The grading scale comprises: Pass with Distinction (VG), Pass (G) and Fail (U).
A passing grade for the entire course requires at least a passing grade for all
assignments, both the assignments that are graded as pass/fail and those that that
graded as VG/G/U. To be awarded a higher passing grade for a full course, the student
must, in addition, have a higher average on the weighted grades from the subset of
assignments that were graded with the full grade scale.
Note: You need to pass all assignments in order to pass this course. For assignments, 15 pts is the passing limit and above 20 is a VG. So, if you have less than 15 points, which means you didn't pass the assignment, you need to resubmit the assignment. The deadline for resubmissions is until the end of this course.
The final grade is based on an overall assessment at the end of the course. If you are close to a grade boundary, you can discuss with the main teacher(s), and you will be given an opportunity to improve at the end of the course.
Tentative Schedule
Date | Module | Lecture/Labs | Readings |
Monday, 31/08 |
Module 1: Basics of Python (1) |
Lecture 1: Introduction (slides-01) Zoom meeting ID for lecture: https://chalmers.zoom.us/j/64037658889 Password: 085262 (scheduled from 9:45-12:00; lecture from 10:00-11:45). |
|
Wednesday, 02/09 |
Lecture 2: Data types and data structure in Python (slides-02) Zoom meeting ID for lecture: https://chalmers.zoom.us/j/69212328619 Password: 010106 |
Python for everyone:
Literatures [2,3,4] |
|
Wednesday, 02/09 Friday, 04/09 |
|
Lab1: Supervised work on Assignment 1. |
|
Monday, 07/09 |
Module 2: Basics of Python (2) |
Lecture 3: Branching and iteration (slides-03) Zoom meeting ID for lecture: https://chalmers.zoom.us/j/68609316800 Password: 893483 |
Python for everyone:
Literatures [2,3,4] |
Wednesday, 09/09 |
|
Lecture 4: Functions, decomposition & abstraction (slides-04) Zoom meeting ID for lecture: https://chalmers.zoom.us/j/61177309991 Password: 188166 |
Python for everyone:
Literatures [2,3,4]
|
Wednesday, 09/09 Friday, 11/09 |
|
Lab2: Supervised work on Assignment 2 |
|
Monday, 14/09 |
Module 3: OOP |
Lecture 5: Object oriented programming (slides-05) Zoom meeting ID for lecture: https://chalmers.zoom.us/j/62562741440 Password: 414155 |
Python for everyone:
|
Wednesday, 16/09 |
|
Lecture 6: Classes and Inheritance (slides-06) Zoom meeting ID for lecture: https://chalmers.zoom.us/j/62514364435 Password: 268607 |
Python for everyone:
|
Wednesday, 14/09 Friday, 16/09 |
|
Lab3: Supervised work on Assignment 3 |
|
Monday, 21/09 |
Module 4: Algorithms and complexity |
Lecture 7: Program efficiency (slides-07) Zoom meeting ID for lecture: https://chalmers.zoom.us/j/66876995801 Password: 213164 |
Algorithm Design:
|
Wednesday, 23/09 |
|
Lecture 8: Algorithms, searching and sorting (slides-08) Zoom meeting ID for lecture: https://chalmers.zoom.us/j/61259741633 Password: 492084
|
Algorithm Design:
Python for everyone:
|
Wednesday, 23/09 Friday, 25/09 |
|
Lab4: Supervised work on Assignment 4 |
|
Monday, 28/09 |
Module 5: Data structure in CS (1) |
Lecture 9: Linear Data Structures (slides-09) Zoom meeting ID for lecture: https://chalmers.zoom.us/j/65959721727 Password: 713091 |
Chapter 10 in literature [8] linked lists, arrays, stack, and queue |
Wednesday, 30/09 |
|
Lecture 10: Non-Linear Data Structures Zoom meeting ID for lecture: https://chalmers.zoom.us/j/67635705080 Password: 302151 |
Related chapters in literature [8,9], Demo[10] |
Wednesday, 30/09 Friday, 2/10 |
|
Lab5: Supervised work on Assignment 5 |
|
Monday, 5/10 |
Module 6: Data structure in CS (2) |
Lecture 11: Graph traversal Zoom meeting ID for lecture: https://chalmers.zoom.us/j/65926599857 Password: 436169 |
Related Chapters in literature [8,9,11], Demo [12] |
Wednesday, 7/10 |
|
Lecture 12: Hash function and hash table Zoom meeting ID for lecture: https://chalmers.zoom.us/j/61368873537 Password: 700245 |
|
Wednesday, 7/10 Friday, 9/10 |
|
Lab6: Supervised work on Assignment 6 |
|
Monday, 12/10 |
Module 7: DS (2) |
Lecture 13: Data science libraries (1) (slides-13) Zoom meeting ID for lecture: https://chalmers.zoom.us/j/66958734083 Password: 470143 |
Python for Data Analysis:
|
Wednesday, 14/10 |
|
Lecture 14: Data science libraries (2) (slides-14) Zoom meeting ID for lecture: https://chalmers.zoom.us/j/63122240817 Password: 601162 |
Python for Data Analysis:
|
Wednesday, 14/10 Friday, 16/10 |
|
Lab7: Supervised work on Assignment 7 |
|
Monday, 19/10 |
Module 8: DS (2) |
Lecture 15: Part 1:Follow-up lecture on assignment 7 (slides-15-P1) Part 2: Dataset Investigation with Python (slides-15-P2) Zoom meeting ID for lecture: https://chalmers.zoom.us/j/61978144549 Password: 097886 |
|
Wednesday, 21/10 |
Module 4 (part 2): Algorithms and complexity |
Lecture 16 with Birgit Grohe: Orientation about algorithms and algorithm design principles (slides-16) (MentimeterQuestionAlgorithms) Zoom meeting ID for lecture: https://chalmers.zoom.us/j/61172762574 Password: 365558 |
|
Wednesday, 21/10 Friday, 23/10 |
|
Lab8: Supervised work on Assignment 8 |
|