Versie: Januari 2023 (versie 3)
In vier weken ga je aan de slag met diverse platforms voor dataverwerking en webtechnieken. Elke module staat in principe op zich, maar bouwt wel enigszins op je eerder opgedane programmeerervaring. Dat betekent niet dat je het vak Programmeren IK gehaald moet hebben om dit vak goed te kunnen doen! Maar je moet wél een begin hebben gemaakt met programmeren en wat handigheid gekregen.
Let op! Dit vak eindigt na de uitschrijfdeadline voor studietwijfelaars. Overweeg je je uit te schrijven, dan mag je gewoon starten met het vak. Als je je uitschrijft krijg je geen studiepunten meer, omdat de uitslag wordt vastgelegd op de laatste vrijdag van het vak (en dan is het al 3 februari).
- Zie Datanose voor het rooster.
- Het rooster is niet voor alle groepen elke week 100% gelijk.
- Alle bijeenkomsten zijn verplicht, maar voor snelle werkers zijn er uitzonderingen mogelijk (zie onder).
- Het hertentamen van Programmeren IK is gepland op 31 januari in de avond.
- Het tentamen van dit vak is gepland op 3 februari in de vroege middag.
De docenten bij dit vak zijn Martijn Stegeman, Robin Langerak en Imane Tarrahi. Zij geven het vak vorm en verzorgen de organisatie. Je kunt ze bereiken via e-mail op [email protected]. Daarnaast zijn er veel student-assistenten, die de cursus goed kennen en jou gaan helpen op de momenten dat het nodig is: Nedim Bjelić, Tim van Dijk, Mayla Kersten, Souad Laaziz, Stijn Lakeman, Kato Schmidt en Max Westerman.
We behandelen uiteenlopende onderwerpen in modules:
- UNIX (essentieel). Kennismaken met de onderdelen van besturingsystemen. Een uitgebreide verkenning van de UNIX shell.
- Reguliere expressies (basisvaardigheid). Leren hoe je teksten kunt filteren en selecteren met hulp van reguliere expressies en het commando
grep
. - Databases (basisvaardigheid). Kennismaken met de relationele manier om data vast te leggen. Oefenen met het schrijven van SQL-queries om interessante data uit een database te halen.
- Pandas (basisvaardigheid). Data modelleren in Pandas zodat je Python kunt gebruiken om grote datasets te analyseren. Je gaat oefenen met allerlei commando's die je hiervoor kunt gebruiken.
- Webtechnologie (basisvaardigheid). Leren schrijven van HTML en begrijpen hoe dit in de browser wordt ingeladen als DOM. Kennis maken met CSS en Javascript.
- Scraping (basisvaardigheid). Oefenen met het geautomatiseerd scrapen van informatie van websites, om deze informatie verder te kunnen verwerken in eigen programma's.
- Flask (geavanceerd). Kennis maken met Flask als platform om webapplicaties mee te bouwen. Een webapplicatie bouwen als opdracht en ruimte om zelf uitbreidingen te maken.
Alle modules zijn individueel ("vroeger" was er een groepsproject in dit vak, maar gezien de grote hoeveelheid groepsprojecten en de werkdruk leek het een beter plan om nu eens individueel werk te doen).
Sommige modules ga je aftekenen bij de docenten. Je laat dan zien wat je gedaan hebt en je vertelt hoe het in elkaar zit. Waarschijnlijk moet je ook nog een vraag beantwoorden over je werk.
De verwachting is dat de laatste module (Flask) niet door iedereen gedaan wordt. De module telt wel mee, maar ook zonder deze module kun je een goed cijfer voor het vak halen.
De volgende deadlines gelden. Als je ziek wordt of veel moeite hebt met de stof dan kan de deadline in overleg worden uitgesteld. Dit moet dan wel zin hebben, want de laatste deadline (2 februari) kan sowieso niet verschoven worden. Bij achterlopen moet je dus overleggen met de docenten en advies vragen op welke modules je het beste kunt focussen.
Onderwerp | Deadline |
---|---|
UNIX | donderdag 12 januari 13:00 |
Reguliere expressies | vrijdag 13 januari 17:00 |
Databases | woensdag 18 januari 17:00 |
Pandas | donderdag 26 januari 13:00 |
Webtechnologie | maandag 30 januari 17:00 |
Scraping | woensdag 1 februari 17:00 |
Flask | donderdag 2 februari 17:00 |
Wie op donderdag 19 januari de eerste drie onderwerpen niet helemaal perfect heeft afgetekend zal op 19 of 20 januari een gesprek hebben met één van de docenten (niet assistenten). Het doel van het gesprek is om duidelijke afspraken te maken over de afronding van het vak, eventuele omstandigheden te bespreken en advies te krijgen. Dit gesprek is verplicht.
De laatste module (Flask) is veel meer dan één dag werk. Ga je lekker met de andere modules en wil je graag webapplicaties bouwen, zorg dan dat je flink vooruit loopt. De module Webapplicaties telt wel mee, maar ook zonder deze module kun je een goed cijfer voor het vak halen.
Voor het krijgen van punten moet je aan een aantal eisen voldoen. Dat is meestal een combinatie van het huiswerk maken en op het tentamen je basiskennis aantonen.
-
UNIX 3 punten te verkijgen mits voldaan aan:
- 2 schrijfopdrachten voldoende en volgens de eisen ingeleverd
- verslag workshop ingeleverd en daarna afgetekend tijdens werkcollege
- op tentamen aangetoonde basiskennis middels schrijven van one-liners
-
Reguliere expressies 2 punten te verkrijgen mits voldaan aan:
- oefenopdrachten voldoende en volgens de eisen ingeleverd en afgetekend
- op tentamen aangetoonde basiskennis middels schrijven van grep-commando's
-
Databases 3 punten te verkrijgen mits voldaan aan:
- 2 opdrachten voldoende en volgens de eisen ingeleverd en goedgekeurd door de website
- op tentamen aangetoonde basiskennis middels schrijven van sql-queries
-
Pandas 5 punten te verkrijgen mits voldaan aan:
- oefenopdrachten voldoende en volgens de eisen ingeleverd en afgetekend
- op tentamen aangetoonde basiskennis middels schrijven van Pandas-commando's
-
Webtechnologie 2 punten te verkrijgen mits voldaan aan:
- persoonlijke website voldoende en volgens de eisen ingeleverd en afgetekend
-
Scraping 2 punten te verkrijgen mits voldaan aan:
- 3 opdrachten voldoende en volgens de eisen ingeleverd
- op tentamen aangetoonde basiskennis middels schrijven van scraping-oneliners voor JSON en HTML
-
Flask 3 punten te verkrijgen mits voldaan aan:
- opdracht voldoende en volgens de eisen ingeleverd en afgetekend
Over het algemeen worden geen deelpunten gegeven. Zorg dus dat je complete opdrachten inlevert en eventueel nog verbetert als blijkt dat ze niet goed zijn.
Er geldt een aanwezigheidsplicht voor alle activiteiten in het vak.
Als je heel erg goed gaat, flink vooruit loopt en alle opdrachten zeer goed hebt gedaan, dan kun je bij het aftekenen ontheffing krijgen voor een groot deel van de verdere aanwezigheidsplicht. Je hoeft dan maar 1x per week aanwezig te zijn. Dit kan niet voor de start van het vak geregeld worden. De universiteit is een sociaal gebeuren en in de basis moet je er gewoon zijn. Alleen door de niveauverschillen is het soms niet handig. Je moet dus altijd in goed overleg met de docenten (niet de assistenten) vóórdat je afwezig bent.
Studenten die in het tweede jaar van Informatiekunde zitten en dit vak al een keer gevolgd hebben zijn uitgezonderd van de aanwezigheidsplicht. Zij moeten wél tijdens de laptopcolleges hun opdrachten komen aftekenen, en verplicht vóór de deadlines die hierboven zijn genoemd. Lukt dat niet, dan gaat de aanwezigheidsplicht gewoon gelden. Deze uitzondering geldt overigens niet voor studenten van andere opleidingen, of ze nu ouderejaars zijn of niet.
Elk onderwerp wordt op een eigen manier getoetst. In de meeste gevallen is er sprake van zelfstandig uitwerken van open vragen.
Je moet voor de meeste opdrachten bijhouden welke dingen je hebt geleerd die jou opvielen, maar ook welke bronnen je hebt gebruikt en wat voor soort hulp je hebt gevraagd. Bij de meeste opdrachten wordt gevraagd om dit in te vullen. Deze opmerkingen zijn belangrijk om aan te tonen dat je productief aan de cursus hebt gewerkt. Je kunt dit deel van de opdrachten dus niet overslaan, anders kun je geen punten krijgen.
Je eindcijfer is een optelling van de punten die je met de goede uitgewerkte opdrachten kunt halen. De meeste onderdelen komen ook terug op het tentamen. Daar moet je van de geleerde talen en technieken laten zien dat je ze voldoende (dus niet per se perfect) beheerst. Alleen als je dat laat zien krijg je de punten voor de betreffende onderdelen.
Je mag met je medestudenten (en anderen) communiceren in het Nederlands of Engels over je werk in deze cursus, maar niet in de vorm van meer dan een paar regels Python, JavaScript, HTML en dergelijke talen. Als je twijfelt of je manier van werken in deze correct is, neem gerust contact op met de docenten.
Je mag gerust op het web zoeken naar uitleg die verder gaat dan de colleges en andere materialen die in de cursus bijgeleverd zijn, en je mag op zoek naar oplossingen voor technische problemen waar je tegenaan loopt, maar je mag zeker geen oplossingen voor onderdelen van de opdrachten overnemen om aan de eisen te voldoen. Daarnaast moet je bij het geheel of gedeeltelijk overnemen van codefragmenten of werken via tutorials en dergelijke altijd een precieze bronvermelding doen. Voor de meeste opdrachten geldt dat je zélf een antwoord of uitwerking moet formuleren.
Wat betreft fraude en plagiaat volgen we in deze cursus de richtlijnen van de Universiteit van Amsterdam en de werkwijze van de bachelor Informatica. De richtlijnen kun je hier vinden(vraag ernaar als de link niet werkt).