Studiewijzer 2020/2021
Globale inhoud
- Rooster on Datanose
- Docent, times
- Literature
- Student experiences from previous years
- Assignments and Examination
- Changes from last year
Docent
- Lecturer: Maarten Marx, http://staff.fnwi.uva.nl/m.j.marx
- Assistant(s): see Datanose
- For times, see Datanose
Literature
- Davenport, Thomas H., and D. J. Patil. "Data scientist." Harvard business review 90.5 (2012): 70-76.
- Vasant Dhar. 2013. Data science and prediction. Commun. ACM 56, 12 (December 2013), 64-73. DOI: http://dx.doi.org/10.1145/2500499
- The Case For Python in Scientific Computing, Hugo Bowne Anderson, 2017, Datacamp.
- Chapters 2 and 3 from Discovering knowledge in data : an introduction to data mining by Daniel T. Larose. 2005, Wiley and Sons.
- Python Data Science Handbook This O Reilly book is freely avialable as a set of notebooks. Download them and read the book interactively.
Recommended but not obligatory literature
- Learning IPython for Interactive Computing and Data Visualization
- IPython Interactive Computing and Visualization Cookbook
- Python for Data Analysis, O’Reilly Media - Python for Data Analysis is concerned with the nuts and bolts of manipulating, processing, cleaning, and crunching data in Python. It is also a practical, modern introduction to scientific computing in Python, tailored for data-intensive applications. This is a book about the parts of the Python language and libraries you’ll need to effectively solve a broad set of data analysis problems. This book is not an exposition on analytical methods using Python as the implementation language.
- Shen, Helen. Interactive notebooks: Sharing the code. Nature 515, 151–152 (06 November 2014) doi:10.1038/515151a
- NumPy & SciPy: Stefan van der Walt, S. Chris Colbert and Ga?l Varoquaux. The NumPy Array: A Structure for Efficient Numerical Computation, Computing in Science & Engineering, 13, 22-30 (2011), DOI:10.1109/MCSE.2011.37
- Matplotlib John D. Hunter. Matplotlib: A 2D Graphics Environment, Computing in Science & Engineering, 9, 90-95 (2007), DOI:10.1109/MCSE.2007.55
More pointers to literature
- Overview of datascience cheatsheets at datacamp
- An overview of introduction tutorials
- LowClass Python: Style Guide for Data Scientists
Lecturenotes
Each lecture will be accompanied by lecture notes, and often slides too. These notes are typically IPython Notebooks or MarkDown files. Lecture notes are valuable pointers to the literature and form the basic requirements of what you are supposed to know. They are excellent material for helping you master the course and know what you should study for the exam.
Software
Becoming fluent in a number of software tools that help you organize your work is a key objective in this course. These tools and languages help you focus on the contentinstead of the form. Besides they form a type of logbook which helps in keeping things together. In the end it is very easy to produce a good looking report (or thesis) out of these logs. Possibly, you may even hand in the notebook itself as a final report.
You need to install:
- Jupyter notebook. See https://jupyter.org/install.
- We strongly advise you to install Anaconda.
- We work with Python 3.6.
- If you install anaconda python 3.6 you get almost all the packages we will use as well (numpy, pandas, seaborn, scikit-learn, etc).
- Several Python packages (many come already with Anaconda)
- Have a look at this nice list of top 15 Data Science Python Modules. And use them!
We strongly recommend you to install: (as you will most probably (must) use this when writing your thesis anyway)
- A good LateX editor.
- Git and a private github account
- You want some git software. I strongly recommend using the commandline (on mac and linux this is available).
- You need to open a private github account. As a student you can do this for free. You want it private, as you do not want everybody else to see what marvelous things you are doing in your thesis.
- You can connect overleaf to your github account.
Programming languages
You will learn the following languages
- Jupyter Notebook specifics.
- Markdown The key language to put comments in your Notebooks.
- This page is also created using MarkDown:
- All slides in this course are MarkDown slides created in a notebook.
- A nice free MarkDown editor for the Mac is MacDown.
- LateX
- For formulas that you want to look good, or are just not able to express in HTML, e.g. the set of all primes is {n∈N∣∄m.n/m∈N}.
You will get familiar with several data science tools. Some of them use the command line, others Python packages like pandas , seaborn, scikit-learn and numpy.
Hardware
If you like to work in the cloud, try Google colaboratory or for more advanced stuff Google Cloud service (at time of writing you get a $300 free trial). It is quite easy to set up a jupyter anaconda environment at Google, see https://www.datacamp.com/community/tutorials/google-cloud-data-science. Microsoft Azure is another platform on which you can easily run Jupyter notebooks.
Assessment
We assess progess in this course by weekly graded assignments and two exams.
All assignments and exams are individual.
Each assignment is worth 5% and each exam 35% of your final grade. For grading exams, we follow in this course the rules of the OER, which can be found at http://student.uva.nl/ifk/az/item/onderwijs-en-examenregeling-oer.html. For 2021, this means that you pass only if you have a mean grade of minimally 5.5 for both the exams and the homework assignments.
Fraud, plagiarism, sharing answers
- Each of you pledge with every assignment that you are honest.
- We use the UvA rules about fraud.
- When we find examples of cheating, then all people involved (those who "gave" the answers, and those who "received" them) receive 0 points for the assignment and their names are sent to the Exam Committee.
Tips voor tentamens
Tentamens voor dit vak worden door sommigen (erg) moeilijk gevonden, andere vinden het heerlijk om 2 uurtjes te zitten puzzelen met pandas en numpy. Het helpt enorm als je veel geoefend hebt en je comfortabel voelt in de jupyter notebook omgeving.
tips
-
Oefen, oefen, oefen. Het boek staat vol voorbeelden, en voorbeeld datasets. Wij gebruiken die ook in tentamens.
- Als je oefent, oefen dan in dezelfde setting als op een tentamen. Dus zonder internet, met je spiekbrief, rustig, zonder afleiding, gebruik een timer, oefen jezelf in het gebruik van je notebook (vraagteken, puntje TAB), oefen jezelf in kleine testjes maken, oefen jezelf in het snappen van assert isinstance waarmee we je helpen.
-
Werk in groepjes en daag elkaar uit door (tentamen)vragen te verzinnen plus het juiste antwoord erbij en die aan je groepsgenoten te stellen. Zo oefen je, en leer je problemen oplossen, en leer je de "vertaling" te maken van een vraag in natuurlijk taal naar een pandas of numpy expressie.
-
Wat (oncreatieve, jullie kunnen dit vast veel beter) voorbeelden op de babynames file waar we eerder mee werkten (zie ook de slides van week 1): (allemaal zonder for-loops, met one-liners)
-
Hoeveel meiden zijn er in totaal geboren?
-
Hoeveel jongens zijn er geboren met de naam 'Mary'?
-
Hoeveel kinderen zijn er per jaar geboren? Maak een mooi plotje. Hoeveel jongens en hoeveel meisjes zijn er per jaar geboren? Maak een nog mooier plotje? (Dit kan op minstens 2 manieren met een one-liner)
-
Geef voor elk jaar het percentage van de geboren kinderen dat een meisje is. Maak een mooi plotje.
-
In welke jaren werden er meer jongens dan meiden geboren?
-
Hoeveel kinderen zijn er per jaar en per geslacht geboren met een naam eindigend op "elle"? (Janelle, Chanelle, Noelle, Dyelle, Bouboulelle, etc, etc). Laat dit met sns zien als een mooie heatmap.
-
Idem als de vorige vraag , maar nu als deel van het totaal aantal kinderen dat er dat jaar en van dat geslacht geboren is. (Dus relatief in plaats van absoluut).
Nog meer tips
Hier mijn tip aan iemand die moeite had om de vragen in het Nederlands of het Engles te vertalen naar code. Probeer bij elke vraag onderstaand stappenplan toe te passen.
- lees de vraag goed,
- bedenk hoe het antwoord eruit zou zien (technisch, is het een getal, is het een woord, is het een Series, is het een DataFrame, als het een numpy array is wat zijn dan de dimensies en de shape)
- Je hoeft het antwoord niet te weten, maar wel de VORM/datatype
- bedenk dan hoe iets van die vorm het antwoord kan zijn op de vraag
- bedenk dan hoe je MET DE HAND het antwoord zou uitrekenen (als je de data in Excel zou hebben)
- probeer dat dan te vertalen (met hulp van je spiekbrief) naar numpy of pandas comandos
- check of de VORM klopt.
- check of je antwoord ergens op slaat.
VOORBEELD:
Vraag: Op babynames.csv
- Hoeveel jongens zitten er in de database?
- VORM van het antwoord is een integer.
- MET DE HAND (in Excel): 1) verwijder alle rijen met meisjesnamen. 2) Neem alle getallen in de count kolom. 3) Tel die bij elkaar op.
- IN PANDA/NUMPY: eerst een filter met boolean indexing, dan een projectie tot de count kolom, en dan .sum() erachter.
- Check, double check.
NU jij voor: Voor elke letter, tel hoeveel jongens en hoeveel meisjes er in de database zitten met een naam die eindigt op die letter.
Changes from last year
- Het vak werd vorig jaar voldoende beoordeeld, maar ongeveer de helft vond dat de instructies voor de opdrachten en het tentamen duidelijker konden. Ook waren er mensen voor wie het niveau van de opdrachten en/of tentamens te hoog was.
- Dit jaar proberen we dat te verbeteren door:
- De opdrachten klassikaal tijdens de werkcollegs voor te bespreken (de opdrachten worden ook nabesproken tijdens het tweede hoorcollege).
- Proeftentamen.
- Nabespreking van de tentamens direct in de tentamenweek.
- Mensen die bewezen moeite hebben met vakken waarbij preciesie, logisch nadenken, en programmeren een grote rol speelt kunnen waarschijnlijk gebruikmaken van een huiswerkklas. Deelname is niet vrijblijvend. Als je een keer niet komt of de opdrachten niet maakt, kan je vervolgens niet meer meedoen. Ook kan je alleen meedoen vanaf het begin, en/of als je uitgenodigd bent.
Studiemateriaal
Literatuur
Software
- IPython Notebooks. Aangeraden wordt de Anaconda distributie.
Leerdoelen
- De student is in staat om de gehele data science pijplijn succesvol uit te voeren. Dat wil zeggen: data verzamelen, een exploratieve data analyse, data transformatie, beide op basis van grondige statistische kennis, het kiezen van een passend predictief model, dat uitgebreid te evalueren, ook op ethische aspecten, en tenslotte de resultaten visueel aan belanghebbenden tonen.
- Kunnen voorbewerken van typische data science data: (zeer) grote hoeveelheden tekst met annotaties, gerepresenteerd in een database, spreadsheet of XML of als een verzameling tekst bestanden, voor wetenschappelijk onderzoek. Hieronder valt het transformeren, annoteren, categoriseren, classificeren en ordenen van data. Alles door middel van computers, en zo min mogelijk met de hand.
- Kunnen evalueren van de kwaliteit van door een computer programma bewerkte data.
- Kunnen uitvoeren van een exploratieve data analyse, visueel, en via statistische analyse, het normaliseren van ruwe data, het vinden van redundante informatie, en het evalueren van de kwaliteit van de ruwe data.
- Ter voorbereiding op het afstudeerproject: het laatste deel van de empirische cirkel: "formuleer hypothese, operationaliseer die in termen van de beschikbare data, programmeer en verzamel en analyseer de resulaten en vertaal die terug naar de oorspronkelijke hypothese."
Onderwijsvormen
- Hoorcollege
- Werkcollege
- (Computer)practicum
- Zelfstudie
- Begeleiding/feedbackmoment
Zie boven bij Globale inhoud
Verdeling leeractiviteiten
Activiteit | Aantal uur |
Digitale Toets | 2 |
Hoorcollege | 12 |
Presentatie | 6 |
Werkcollege | 24 |
Zelfstudie | 124 |
Academische vaardigheden
Zie boven bij Globale inhoud
Aanwezigheid
Aanwezigheidseisen opleiding (OER-B):
-
Voor practica en werkcolleges, met opdrachten, geldt een aanwezigheidsplicht, tenzij anders vermeld in de studiegids. Wanneer studenten niet voldoen aan deze aanwezigheidsplicht kan het onderdeel niet met een voldoende worden afgerond. De aanwezigheidsplicht met betrekking tot hoor-werkcolleges staat, indien van toepassing, vermeld in de studiegids.
Aanvullende eisen voor dit vak:
Zie boven bij Globale inhoud
Toetsing
| Onderdeel en weging
|
Details
|
|
| |
|
| |
Zie boven bij Globale inhoud
Inzage toetsing
De manier van inzage wordt via de webpagina van het vak gecommuniceerd.
Het inzagemoment wordt via mail meegedeeld en is meestal in de week na het tentamen.
Opdrachten
Zie boven bij Globale inhoud. Alle opdrachten staan op Canvas
Fraude en plagiaat
Dit vak hanteert de algemene 'Fraude- en plagiaatregeling' van de UvA. Hier wordt nauwkeurig op gecontroleerd. Bij verdenking van fraude of plagiaat wordt de examencommissie van de opleiding ingeschakeld. Zie de Fraude- en plagiaatregeling van de UvA: http://student.uva.nl
Weekplanning
Zie boven bij Globale inhoud en Canvas
Rooster
Het rooster van dit vak is in te zien op DataNose.
Sterk aanbevolen voorkennis voor dit vak zijn de technische vakken binnen Informatiekunde: collectieve intelligentie, databases en datamining.
Verwerking vakevaluaties
Zie boven bij Globale inhoud
Coördinator
Lecturer: Maarten Marx, http://maartenmarx.nl
Je kunt de assistenten mailen via datanose
Docenten
- Mike Brink BSc
- Jasper van der Heide
- Ruben van Heusden MSc
- Robin Langerak
- Miguel Pieters