Your single source of course information
Instructor: | Dr. Hannah Béchara |
Office: | 3.14 |
Office Hours | Tuesdays 16:00-17:00 |
Class Times | Group A: Tues, 14-16h Group B: Thu, 12-14h |
Hannah Béchara is an NLP post-doc who inadvertently found herself hired by Hertie’s Data Science lab. In between training neural networks and support vector machines, Hannah occasionally teaches programming classes in Python, the programming language for winners. For reasons yet unclear, the University of Wolverhampton decided to award Hannah a PhD in Computer Science.
This Python for Data Scientists course leads the students from the basics of writing and running Python scripts to more advanced features such object-oriented programming and data structures.
This course is designed for beginners with no previous programming experience who are interested in learning Python for Data Science. It is especially recommended for students who plan to take next semester’s Machine Learning or Deep Learning course.
Classes will be highly interactive, focusing on hands-on experience and allowing students to test out everything they have learned in class. Each 2-hour session will include a lecture that introduces some core concepts, a classroom activity that allows students to try out what they learned and solve a problem, and a discussion of the solutions to the problem.
The students will be assessed based on 3 assignments and 1 end-of-term project that test their problem-solving skills as well as their grasp of the core Python concepts discussed in that week’s lecture. Group work is accepted.
Assignment 1: Project Proposal and Literature Review | Deadline: Week 4 | 20% |
Assignment 2: Midterm Report | Deadline: Week 6 | 20% |
Assignment 3:Final Report | Deadline: Week 12 | 40% |
Final Presentations | Deadline: Week 12 | 10% |
Participation grade | 10% |
The assessment for the course consists of a project, presentation and participation. The research project must be done in teams of 2-4 (individual submissions will not be accepted for the project). The aim of the assessments is three-fold. First, it will provide you with the opportunity to apply the concepts learned in this class creatively, which helps you with understanding material more deeply. Second, designing and working on a unique project in a team which is something that you will encounter, if you haven’t already, in the workplace, and the project helps you prepare for that. Third, along with the opportunity to practice and the satisfaction of working creatively, students can use this project to enhance their portfolio or resume.
Note about grading. You will be graded on the quality of your code as well as the efficiency and tidiness. Additionally, you are expected to document your code and to clearly mark any code that is not your own. Smelly code will be penalised.
You must include a link to a GitHub repository containing the code of your project. Your repository must be viewable to the instructor by the submission deadline. If your repository is private, make it accessible to us (GitHub ID hbechara). If your repository is not visible to us, your assignment will not be considered complete, so if you are worried please submit well in advance of the deadline so we can confirm the repository is visible. Furthermore, we will assess individual contribution to the team, should such an issue arise, based on the frequency and quality of GitHub commits in your project repository, so make sure you start the repository as the very first stage of your project.
Assignment 1
Assignment 2
By the middle of the course, students should present their initial progress report. This should include an early working demo of your project with some complete features. This serves as a project milestone. The milestone should help you make progress on your project and receive feedback.
Assignment 3
You must include a link to a GitHub repository containing full working code of your project, including JUnit tests and full documentation.
Class Presentation
At the end of the semester, teams will produce poster/video presentation of their work to the class and broader Hertie community. Detailed description of the presentation task and marking rubric will be made available on Moodle. Selected projects will be displayed on the lab’s website.
Participation grade
We appreciate everyone being actively involved in the class. For full participation credit, we expect you to contribute relevant questions and ideas to the online class forum on Piazza, and answer questions from your peers. The top ~5 contributors of endorsed answers to Piazza will get 10%; others will get credit in proportion to the participation of the ~5th person. Use your real name and your Hertie email address for participation credit.
For each day the assignment is turned in late, the grade will be reduced by 10% (e.g. submission two days after the deadline would result in 20% grade deduction).
Students are expected to be present and prepared for every class session. Active participation during lectures and seminar discussions is important. If unavoidable circumstances arise which prevent attendance or preparation, the instructor should be advised by email with as much advance notice as possible. Please note that students cannot miss more than two out of 12 course sessions. For further information please consult the Examination Rules §10.
The Hertie School is committed to the standards of good academic and ethical conduct. Any violation of these standards shall be subject to disciplinary action. Plagiarism, deceitful actions as well as free-riding in group work are not tolerated. See Examination Rules §16.
If a student furnishes evidence that he or she is not able to take an examination as required in whole or in part due to disability or permanent illness, the Examination Committee may upon written request approve learning accommodation(s). In this respect, the submission of adequate certificates may be required. See Examination Rules §14.
An extension can be granted due to extenuating circumstances (i.e., for reasons like illness, personal loss or hardship, or caring duties). In such cases, please contact the course instructors and the Examination Office in advance of the deadline.
Required:
Michael Dawson. Python for the Absolute Beginner
Recommended:
Steven Bird, Ewan Klein And Edward Loper. “Natural Language Processing with Python”
Aditya Y. Bhargava, Grokking Algorithms: An illustrated guide for programmers and other curious people
Roy Osherove, The Art of Unit Testing
Optional:
Date | Title | |
---|---|---|
1 | Group A: 08.09.2020 Group B: 10.09.2020 |
Getting Started with Python: Working with Data |
2 | Group A: 15.09.2020 Group B: 17.09.2020 |
Flow Control |
3 | Group A: 22.09.2020 Group B: 24.09.2020 |
Data Structures |
4 | Group A: 29.09.2020 Group B: 01.10.2020 |
Functions |
5 | Group A: 06.10.2020 Group B: 08.10.2020 |
Project Pitches |
6 | Group A: 13.10.2020 Group B: 15.10.2020 |
Packages, Modules and Files |
7 | Group A: 27.10.2020 Group B: 29.10.2020 |
Object Oriented Programming I |
8 | Group A: 03.11.2020 Group B: 05.11.2020 |
Object Oriented Programming II |
9 | Group A: 10.11.2020 Group B: 12.11.2020 |
OOP Case Study |
10 | Group A: 17.11.2020 Group B: 19.11.2020 |
Unit Tests and Documentation |
11 | Group A: 24.11.2020 Group B: 26.11.2020 |
Algorithm Analysis and Big-O Notation |
12 | Group A: 01.12.2020 Group B: 03.12.2020 |
Project Presentations |