CS 61 | Database Systems | Spring 2020

, Author

Exploits of a mom (from XKCD)https://xkcd.com/327/

Cursusbeschrijving

ORC. Deze cursus bestudeert het beheer van grote hoeveelheden gegevens of informatie. Dit omvat schema’s voor de representatie, manipulatie en opslag van complexe informatiestructuren, alsook algoritmen voor de efficiënte verwerking van deze structuren en voor het terugvinden van de informatie die ze bevatten. Deze cursus zal de student technieken aanleren voor opslagtoewijzing en -onttrekking, terugvinden (query formulering), en manipulatie van grote hoeveelheden heterogene gegevens. Van studenten wordt verwacht dat ze programmeren en betrokken zijn bij een project waarin ze belangrijke aspecten van een databasesysteem bestuderen: manieren om een gedistribueerde database te organiseren die door meerdere computers wordt gedeeld; transacties die lokaal en globaal worden verwerkt; robuustheidsgaranties van de opgeslagen gegevens tegen falen; veiligheids- en data-integriteitsgaranties tegen ongeoorloofde toegang; privacy; objectgeoriënteerde schema’s voor multimediagegevens; indexering, hashing, concurrency control, datamining, data warehousing, mobiele databases en opslagbestandsstructuren.

Leerdoelen Het uiteindelijke doel van deze cursus is om u toe te rusten om data te gebruiken om data-gedreven beslissingen te nemen in plaats van beslissingen te nemen op basis van buikgevoel of giswerk. Na het voltooien van deze cursus moet u in staat zijn om:

  1. Query bestaande databases voor inzicht. We zullen de eerste paar weken van de cursus besteden aan het leren van de standaard database query taal genaamd Structured Query Language (aka SQL, aka ‘sequel’). Dit zal je de tools geven die nodig zijn om bestaande databases te bevragen voor inzicht in de gegevens die ze bevatten.
  2. Ontwerp je eigen efficiënte databases. We zullen de komende weken onderzoeken hoe je je eigen databases kunt structureren, tabellen kunt indelen en factoren als redundantie, betrouwbaarheid en snelheid in overweging kunt nemen.
  3. Begrijpen wat er onder de motorkap gebeurt. Vervolgens zullen we onderzoeken hoe databases werken, het ophalen van gegevens snel en accuraat, zelfs met meerdere gebruikers toegang tot en het bijwerken van gegevens tegelijk.
  4. Beschrijf nieuwe en ontwikkelende database technologieën. Tot slot zullen we kijken naar nieuwe database technologieën zoals NoSQL databases en blockchains.

Doorheen zullen we verschillende gastdocenten hebben van experts die werkzaam zijn in het veld. Zie de roosterpagina voor meer details.

Voorwaarde CS 50. Ik ga er ook vanuit dat je bekend bent met Python.

Wie, wanneer, waar

Docent Tim Pierson | 210 Sudikoff
Kantooruren: de meeste weken dinsdag 13:30 – 14:30 uur, donderdag 13:30 – 14:30 uur (bevestigen via Canvas agenda), en op afspraak. Zie Zoom link op Canvas voor virtuele vergaderingen. Graduate teaching assistant Almas Abdibayev
kantooruren: gehandhaafd op Canvas Lezingen van 2 uur | MWF 14:10 pm – 15:15 pm Eastern time zone | Online Lezingen zullen dit semester online zijn en opgenomen worden met Zoom – zie Canvas voor toegangsgegevens. Wanneer je deelneemt aan de online vergadering, zet dan alsjeblieft je camera en microfoon uit. Als je een vraag hebt, druk dan op de “Raise hand” knop op Zoom. Als ik je niet snel te woord kan staan, zet dan je camera uit, zet hem aan en stel je vraag. We zullen gaandeweg meer regels uitwerken… Ik ben niet van plan om regelmatig gebruik te maken van x-uren, maar ik kan ze soms gebruiken voor gemiste lessen, om materiaal in te halen, of voor een optionele, informele sessie om voorbeelden door te nemen. Zorg ervoor dat je deze tijd vrij houdt voor het geval we hem nodig hebben. We zullen regelmatig klassikale oefeningen hebben om nieuwe concepten uit te proberen op een live database. Google en StackOverflow zullen je vriend zijn, aarzel niet om ze te gebruiken (tenzij anders aangegeven)! Hulp: Kantooruren Kantooruren zullen ook online zijn via Zoom. Ik zal online beschikbaar zijn tijdens de kantooruren, zelfs als er geen vragen zijn. Als je een privé-afspraak wilt maken, stuur me dan een e-mail en dan spreken we elkaar. Help: Slack Verwacht een uitnodiging voor een Slack-kanaal na de eerste lesdag. Ik moedig je sterk aan om daar vragen te stellen en te beantwoorden. Aankondigingen Houd Canvas in de gaten voor periodieke aankondigingen voor de hele cursus. Tekstboek Database System Concepts, 7th edition, door Silberschatz, Korth, en Sudarshan. Ik raad ten zeerste de ebook versie aan in plaats van de papieren versie (de papieren versie is niet eens ingebonden – het is een verzameling losse blaadjes!). Hoewel het Silberschatz boek ons primaire tekstboek zal zijn, en alle toegewezen lectuur uit dat boek zal komen, is een andere nuttige bron Database Systems: Design, Implementation, & Management, 13e editie, door Coronel en Morris. Een andere geweldige bron is https://www.mysqltutorial.org.

Beoordeling

De cijfers voor deze cursus zullen bestaan uit een combinatie van een project van een langere periode, verschillende labopdrachten, een tentamen halverwege de cursus en deelname aan de cursus. Een totaalscore van ten minste 60% is vereist om te slagen voor deze cursus.

Project (40%)

Gedurende het semester werk je samen met drie andere studenten aan een database-gerelateerd project van jouw keuze. Details over de eisen die aan het project worden gesteld, vindt u hier.

Labs (30%)

Er zijn drie labopdrachten (afgezien van Lab 0, dat alleen bedoeld is om informatie te verzamelen) die samen 30% van het cijfer voor deze cursus uitmaken. De punten voor elk labo zijn:

  • Lab 1: 5%
  • Lab 2: 10%
  • Lab 3: 15%.

Vereisten voor het inleveren van labs: Labs zijn ontworpen om buiten de les te worden voltooid en moeten elektronisch via Canvas worden ingeleverd vóór de deadline die op Canvas is aangegeven. Zelfs als een lab enkele schriftelijke oefeningen bevat, moet je ofwel een bestand typen of je geschreven werk scannen en elektronisch inleveren. Om uitvoer van je programma in te dienen, dien je een gekopieerd en geplakt bestand in pdf-formaat en/of een schermafbeelding in, naargelang het geval. Voor platte tekst kunt u een programma als TextEdit, NotePad of Emacs gebruiken, of zelfs Word, maar zorg ervoor dat u het als pdf opslaat. Voor een schermafdruk kun je Preview gebruiken op de Mac (onder het “File” menu) of de PrntScrn knop op Windows.

Je mag met één partner aan deze labopdrachten werken (zie Samenwerken hieronder). Bovendien:

  • Als je met een partner hebt gewerkt, vermeld dan je naam en die van je partner, of als je alleen hebt gewerkt, vermeld dan “geen partner” in een opmerking bij je inzending.
  • Als je met een partner hebt gewerkt en je hebt uiteindelijk één gezamenlijke oplossing, vermeld dat dan in een opmerking bij de oplossing en bij de inzending. Elke partner moet dezelfde oplossing inleveren. De oplossing wordt dan één keer beoordeeld met hetzelfde cijfer voor beide partners.
  • Als je met een partner hebt samengewerkt maar aparte code hebt geschreven, geef dan de samenwerking aan maar dat jullie verschillende inzendingen hebben. Geef dit aan in zowel de code als op de inzending. Elk van jullie moet zijn eigen oplossing uploaden, en elk van jullie krijgt een apart cijfer.
  • Verzamel al je codebestanden in een enkel zip-bestand en upload dat zip, in plaats van een heleboel afzonderlijke bestanden.

Te laat beleid Te laat inleveren via Canvas op de datum en tijd vermeld op Canvas opdracht. Straffen: < 8 uur: 10%; < 24 uur: 20%; < 48 uur: 40%; meer: geen credit.
Je mag maximaal één keer te laat inleveren (tot 48 uur) zonder straf; je hoeft geen excuus te hebben. Geef in je inzending aan dat je gebruik maakt van je vrijkaart; je kunt je keuze niet ongedaan maken. Dit kan niet gecombineerd worden met een straf (bv. je kan geen straf van 8 uur nemen bovenop de 48 uur gratis pas). Als je met een partner werkt, telt dit als een vrij uur voor jullie beiden. Beoordeling Specifieke beoordelingstabellen worden voor elk practicum ter beschikking gesteld.

Examens (20%)

Er is één tussentijdse toets die 20% van het eindcijfer waard is (geen eindcijfer – je project telt als eindcijfer). Je mag één notitiepagina van 8,5 x 11 inch gebruiken voor het examen, maar je mag geen antwoorden of code van eerdere CS61-examens opnemen, tenzij deze expliciet door de docent zijn verstrekt of deel uitmaken van de stof die in de les is behandeld.

Als je vragen hebt over je examenscore, of als je een nieuwe beoordeling voor een vraag wilt, ga dan binnen een week na de datum waarop het examen is ingeleverd naar je docent.

Klasdeelname (10%)

De meeste lessen zullen een hands-on gedeelte hebben waar we door een serie problemen zullen werken op een live database. Aan het eind van dit gedeelte van de les kunt u willekeurig worden geselecteerd (met vervanging) om uw oplossing te presenteren. Je presentatie wordt als volgt beoordeeld:

  • 0: Niets van belang
  • 1: Aan uw oplossing moet nog veel worden gesleuteld
  • 2: Correct of grotendeels correct.

Als u niet in staat bent de les via Zoom live bij te wonen, maar u wordt wel willekeurig geselecteerd, plaats uw oplossing dan vóór de volgende les op Canvas.

Het kan voorkomen dat u nooit willekeurig wordt geselecteerd om uw oplossing tijdens het semester te presenteren. In dat geval krijg je alle punten voor dit deel van het cijfer.

Samenwerken

Veel van wat je in deze cursus leert, komt van het maken van de programmeeroefeningen. Soms leer je effectiever als je samen met iemand anders dingen kunt uitpraten, dus werken met een partner is toegestaan bij labopdrachten. Je mag voor een bepaald practicum met één andere persoon samenwerken. Als je ervoor kiest om met iemand anders samen te werken, moeten jij en je partner dezelfde gezamenlijke opdracht met beide namen erop inleveren, en moet je voor de hele opdracht met dezelfde persoon werken (je kunt niet voor sommige delen van een opdracht met de ene persoon werken en voor andere delen met een andere persoon).

Als je met een partner werkt, ben je nog steeds verantwoordelijk voor het begrijpen van de hele opdracht. Dat betekent dat het geen goed idee is om de codering in stukken op te splitsen, jouw deel te doen en nooit naar het deel van je partner te kijken. Je kunt veel leren door de code van je partner te lezen en uit te zoeken hoe het werkt, of het correct is, en hoe het verbeterd kan worden. Je kunt ook dingen opmerken zoals slecht of ontbrekend commentaar dat je stijlpunten kan kosten wanneer de opdracht wordt beoordeeld.

Wanneer je met een partner werkt, stel ik voor dat je een werkwijze leent van Extreme Programming, een methode om code te schrijven die veel bedrijven heel effectief vinden. Een persoon (de bestuurder) zit aan het toetsenbord. De andere persoon (de navigator) kijkt naar het (virtuele) scherm terwijl de bestuurder typt, stelt vragen, doet suggesties, en vangt fouten op. Beiden zullen de code beter begrijpen als je hem bespreekt terwijl hij geschreven wordt, dan wanneer je hem alleen schrijft (of leest). Wissel regelmatig af wie de driver is en wie deavigator.

De gebruikelijke reactie op dit idee is, “dat zal twee keer zo lang duren!”In de praktijk is het meestal sneller dan ieder voor zich programmeren. De reden hiervoor is dat fouten eerder worden ontdekt, en de tijd die wordt bespaard bij het debuggen maakt het gebrek aan parallellisme bij het schrijven van de code meer dan goed. Ook is de code over het algemeen beter geschreven. Dit zijn de redenen dat dit idee is overgenomen in de industrie.

Online opname

Ik zal de collegesessies van 2 uur op Zoom opnemen en die video’s plaatsen.Mijn plan is om geen kantooruren op te nemen, zeker niet een-op-een, maar ook geen kleine groepen. Als ik denk dat een vraag of antwoord van het spreekuur goed is voor de hele klas om te zien, zal ik een aparte notitie of video maken, of het opnemen in het volgende college. Dit is wat ik normaal doe in mijn lessen. Als ik een probleemsessie of een X-uurtje houd waarbij de hele klas wordt uitgenodigd om met vragen voorbereid te komen, zal ik dat opnemen omdat het in wezen een collegesessie is. Maar ik zal het waarschijnlijk bewerken voordat ik het post, zodat het sneller voor u is om opnieuw te bekijken

Van de decaan van de faculteit aan studenten over het opnemen van collegesessies:

(1) Toestemming voor opname van cursus- en groepskantooruren

  • a) Ik bevestig mijn begrip dat deze cursus en alle bijbehorende groepsbijeenkomsten waarbij studenten en de docent betrokken zijn, met inbegrip van maar niet beperkt tot geplande en ad hoc kantooruren en andere consultaties, kunnen worden opgenomen binnen elk digitaal platform dat wordt gebruikt om instructie op afstand voor deze cursus aan te bieden;
  • b) Ik bevestig verder dat de docent eigenaar is van het auteursrecht op zijn instructiemateriaal, waarvan deze opnamen een deel vormen, en distributie van een van deze opnamen in zijn geheel of gedeeltelijk zonder voorafgaande schriftelijke toestemming van de instructeur kan worden onderworpen aan disciplinaire maatregelen door Dartmouth tot en met uitzetting;
  • c) Ik machtig Dartmouth en iedereen die namens Dartmouth optreedt om mijn deelname en verschijning op elk medium op te nemen, en mijn naam, gelijkenis en stem in verband met een dergelijke opname te gebruiken; en
  • d) Ik machtig Dartmouth en iedereen die namens Dartmouth optreedt om een dergelijke opname zonder beperkingen of restricties te gebruiken, te reproduceren of te distribueren voor elk educatief doel dat geschikt wordt geacht door Dartmouth en iedereen die namens Dartmouth optreedt.

(2) Vereiste van toestemming voor een-op-een opnamen

    Door mij in te schrijven voor deze cursus, bevestig ik hierbij dat ik onder geen enkele omstandigheid een opname zal maken in welk medium dan ook van een een-op-een bijeenkomst met de instructeur zonder voorafgaande schriftelijke toestemming van alle deelnemende personen, en ik begrijp dat als ik dit verbod overtreed, ik zal worden onderworpen aan disciplinaire maatregelen door Dartmouth tot en met uitzetting, evenals eventuele andere civiele of strafrechtelijke sancties onder de toepasselijke wetgeving.

Technologische vereisten

Gezien de online aard van deze cursus, is het vereist dat studenten de mogelijkheid hebben om elke dag 1 uur of minder aan video-inhoud te streamen. We zullen ons uiterste best doen om rekening te houden met eventuele beperkingen in uw toegang tot de vereiste technologie. Het is voor ons onmogelijk om met elke mogelijke technologische beperking rekening te houden. Laat ons daarom zo snel mogelijk weten welke hindernissen u ondervindt bij het voltooien van de online cursus. Gezien de huidige verstoringen in de toeleveringsketen willen we graag zo ver mogelijk vooruit plannen.

Honor code

Dartmouth’s erecode is van toepassing op deze cursus, en het beleid inzake academisch wangedrag zal strikt worden gehandhaafd. Ik zal vermoedelijke gevallen van spieken rapporteren aan de Undergraduate Judicial Affairs Officer. Ik behoud me ook het recht voor om een onvoldoende te geven voor een opdracht of een tentamen als ik van mening ben dat de erecode is geschonden, ongeacht het oordeel van de commissie voor normering. Als je vragen hebt, stel ze dan!

Toegankelijkheidsbehoeften

Studenten die voor deze cursus aanpassingen en diensten vragen die verband houden met handicaps, worden aangemoedigd om zo vroeg mogelijk in het semester een telefoon- of videogesprek met mij te plannen. Dit gesprek zal helpen om vast te stellen welke voorzieningen in mijn online cursus zijn ingebouwd. Om aanpassingen toe te staan, moeten studenten overleggen met de Student Accessibility Services (SAS; [email protected]; SAS website; 603-646-9900) en mij hun SAS-accommodatieformulier te e-mailen. We zullen dan samenwerken met SAS als de aanpassingen moeten worden aangepast op basis van de online leeromgeving. Als studenten vragen hebben of ze in aanmerking komen voor aanpassingen, moeten ze contact opnemen met het SAS-kantoor. Alle vragen en discussies zullen vertrouwelijk blijven.

Mentale gezondheid

De academische omgeving bij Dartmouth is uitdagend, onze termijnen zijn intensief, en lessen zijn niet het enige veeleisende deel van je leven. Er zijn een aantal middelen beschikbaar op de campus om uw welzijn te ondersteunen, waaronder uw undergraduate decaan, Counseling and Human Development, en het Student Wellness Center.

Religieuze vieringen

Sommige studenten willen misschien deelnemen aan religieuze vieringen die tijdens deze academische termijn plaatsvinden. Als u een religieuze observantie hebt die conflicteert met uw deelname aan de cursus, ontmoet mij dan voor het einde van de tweede week van de termijn om passende aanpassingen te bespreken.

COVID-19 addendum

De COVID-19 pandemie heeft deze cursus al drastisch verstoord, maar kan mogelijk leiden tot verdere persoonlijke gevolgen die u kunnen verhinderen om verder aan de cursus deel te nemen. Dit kan te wijten zijn aan de besmetting van de ziekte door u of een geliefde, toegenomen familiale verantwoordelijkheden, financiële moeilijkheden, of een impact op uw mentale/emotionele gezondheid.

We hebben de cursus zo gestructureerd dat deze verstoringen u niet noodzakelijk zullen verhinderen om deze cursus met succes te voltooien. Ten eerste zullen we elke lezing opnemen en posten. Dit zal flexibele weergave van de cursusinhoud mogelijk maken. Ten tweede zullen we mogelijkheden inplannen voor live interactie met de docent en TA op verschillende tijdstippen tijdens de week. Ten derde, de labs zijn opnieuw ontworpen zodat ze thuis kunnen worden voltooid.

In het geval dat u direct of indirect wordt beïnvloed door COVID-19 op een zodanige wijze dat uw prestaties in de cursus worden beïnvloed, is het noodzakelijk dat u zo snel mogelijk contact opneemt met de instructeur. U kunt ook contact opnemen met uw decaan als u dat prettiger vindt. We kunnen je niet helpen als we niet weten dat er een probleem is. Onze eerste prioriteit is jouw gezondheid en veiligheid. We zullen je in contact brengen met de juiste bronnen om je te helpen. Daarnaast zullen passende aanpassingen (bijvoorbeeld: termijnverlenging en/of extra kantooruren) worden doorgevoerd.

Erkenning

Deze cursus is gebaseerd op een cursus die oorspronkelijk door Dr. Charles Palmer is ontwikkeld. Ik ben deze uitmuntende pedagoog veel dank verschuldigd voor al zijn harde werk en genereuze hulp bij het maken van deze cursus.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.