CS 61 | Databasesystemer | Forår 2020

, Author

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

Kursusbeskrivelse

ORC. I dette kursus studeres forvaltningen af store mængder af data eller information. Dette omfatter ordninger til repræsentation, manipulation og lagring af komplekse informationsstrukturer samt algoritmer til effektiv behandling af disse strukturer og til at hente den information, de indeholder. På dette kursus lærer de studerende teknikker til tildeling og fjernelse af lagerplads, søgning (forespørgselsformulering) og håndtering af store mængder heterogene data. De studerende forventes at programmere og deltage i et projekt, hvor de studerer vigtige aspekter af et databasesystem: måder at organisere en distribueret database, der deles af flere computere; transaktioner, der behandles lokalt og globalt; robusthedsgarantier for de lagrede data mod fejl; sikkerheds- og dataintegritetsgarantier mod uautoriseret adgang; privatlivets fred; objektorienterede ordninger for multimediedata; indeksering, hashing, samtidighedskontrol, data mining, datawarehousing, mobile databaser og lagringsfilstrukturer.

Læringsmål Det endelige mål med dette kursus er at sætte dig i stand til at bruge data til at træffe datadrevne beslutninger i stedet for at træffe beslutninger på grundlag af mavefornemmelse eller gætværk. Efter at have gennemført dette kursus skal du være i stand til at:

  1. Forespørge eksisterende databaser for at få indsigt. Vi vil bruge de første par uger af kurset på at lære det standardiserede databaseforespørgselssprog kaldet Structured Query Language (også kaldet SQL, også kaldet ‘sequel’). Dette vil give dig de nødvendige værktøjer til at forespørge eksisterende databaser for at få indsigt i de data, de indeholder.
  2. Design dine egne effektive databaser. Vi vil bruge de næste par uger på at undersøge, hvordan du kan strukturere dine egne databaser, lægge tabellerne ud og overveje faktorer som redundans, pålidelighed og hastighed.
  3. Forstå, hvad der foregår under motorhjelmen. Herefter undersøger vi, hvordan databaser fungerer, og hvordan de henter data hurtigt og præcist, selv når flere brugere har adgang til og opdaterer data samtidig.
  4. Beskriv nye og udviklende databaseteknologier. Endelig vil vi se på nye databaseteknologier som NoSQL-databaser og blockchains.

Igennem hele forløbet vil vi have flere gæsteforelæsere fra eksperter, der arbejder inden for området. Se skemaets side for flere detaljer.

Forudsætning CS 50. Jeg vil også forudsætte, at du er fortrolig med Python.

Hvem, hvornår, hvor

Underviser Tim Pierson | 210 Sudikoff

Kontortid: de fleste uger tirs. 13:30 – 14:30, tors. 13:30 – 14:30 (bekræft via Canvas-kalender), og efter aftale. Se Zoom-linket på Canvas for virtuelle møder. Graduate teaching assistant Almas Abdibayev
kontortid: vedligeholdes på Canvas Forelæsninger 2 timer | MWF 14:10 – 15:15 østlig tidszone | Online Forelæsninger vil være online og optaget i dette semester ved hjælp af Zoom – se Canvas for adgangsoplysninger. Når du deltager i online-mødet, skal du slukke for kamera og mikrofon. Hvis du har et spørgsmål, skal du trykke på knappen “Ræk hånden op” på Zoom. Hvis jeg ikke kalder på dig i løbet af kort tid, bedes du fjerne lydløsheden, tænde dit kamera og spørge. Vi udarbejder flere regler efterhånden… Jeg planlægger ikke at bruge x-timer regelmæssigt, men det kan ske, at jeg nogle gange bruger dem til at dække manglende timer, til at indhente materiale eller til valgfri, uformelle sessioner for at gennemgå eksempler. Sørg for at holde dette tidsrum frit, hvis vi får brug for det. Vi vil ofte have øvelser på klassen for at afprøve nye koncepter på en levende database. Google og StackOverflow vil være dine venner, tøv ikke med at bruge dem (medmindre du får andre instrukser)! Hjælp: Kontortid Kontortid vil også foregå online via Zoom. Jeg vil være tilgængelig online i de opslåede kontortider, også selv om der ikke er nogen spørgsmål. Hvis du ønsker at arrangere et privat møde, kan du sende mig en e-mail, så vi kan finde et tidspunkt at tale sammen på. Hjælp: Slack Forvent en invitation til en Slack-kanal efter den første undervisningsdag. Jeg opfordrer dig kraftigt til at stille og besvare spørgsmål der. Meddelelser Hold øje med Canvas for regelmæssige meddelelser om hele kurset. Lærebog Database System Concepts, 7. udgave, af Silberschatz, Korth og Sudarshan. Jeg anbefaler på det kraftigste e-bogsudgaven i stedet for papirudgaven (papirudgaven er ikke engang indbundet – det er en samling af løse blade!) Silberschatz-bogen vil være vores primære lærebog, og alle opgaver vil blive læst fra denne lærebog, men en anden nyttig ressource er Database Systems: Design, Implementation, & Management, 13th edition, af Coronel og Morris. En anden god ressource er https://www.mysqltutorial.org.

Bedømmelse

Karaktererne i denne klasse vil være en kombination af et semesterprojekt, flere laboratorieopgaver, en midtvejseksamen og deltagelse i undervisningen. Der kræves en samlet score på mindst 60 % for at bestå dette kursus.

Projekt (40%)

I løbet af semesteret skal du arbejde på et databaseret projekt efter eget valg sammen med tre andre studerende. Nærmere oplysninger om projektets krav findes her.

Laboratorier (30%)

Der vil være tre laboratorieopgaver (bortset fra Lab 0, som blot er beregnet til at indsamle oplysninger), som tilsammen udgør 30% af karakteren i dette kursus. Der er følgende point for hver enkelt opgave:

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

Krav til aflevering af laboratorieopgaver: De skal afleveres elektronisk via Canvas inden den frist, der er angivet på Canvas. Selv når et laboratorium har nogle skriftlige opgaver, skal du enten indtaste en fil eller scanne dit skriftlige arbejde og indsende det elektronisk. Hvis du vil indsende output fra dit program, skal du indsende en copy-pasted-fil i pdf-format og/eller et skærmbillede, alt efter hvad der er relevant. Til ren tekst kan du bruge et program som TextEdit, NotePad eller Emacs eller endda Word, men du skal sørge for at gemme som pdf-fil. Til et skærmbillede kan du bruge Preview på Mac (under menuen “File”) eller PrntScrn-knappen på Windows.

Du kan arbejde sammen med én partner om disse laboratorieopgaver (se Samarbejde nedenfor). Derudover:

  • Hvis du har arbejdet med en partner, skal du angive dit navn og din partners navn, eller hvis du har arbejdet alene, skal du angive “ingen partner” i en kommentar i din aflevering.
  • Hvis du har arbejdet med en partner og er endt med en enkelt fælles løsning, skal du angive det i en kommentar i løsningen og på afleveringen. Hver partner skal indsende den samme løsning. Løsningen vil så blive bedømt én gang med den samme karakter til begge partnere.
  • Hvis du har arbejdet sammen med en partner, men skrevet separat kode, skal du angive samarbejdet, men at I har forskellige indsendelser. Angiv dette både i koden og på afleveringen. I skal hver især uploade jeres egen løsning, og I får hver især en separat karakter.
  • Saml alle jeres kodefiler i en enkelt zip-fil, og upload denne zip-fil i stedet for en masse separate filer.

Politik for forsinkelse Forfalder via Canvas på den dato og det tidspunkt, der er angivet på Canvas-opgaven. Sanktioner: < 8 timer: 10 %; < 24 timer: 20 %; < 48 timer: 20 %: 40 %; mere: ingen kredit.
Du må højst aflevere én opgave for sent (op til 48 timer) uden straf; der kræves ingen undskyldning. Angiv i din indsendelse, at du vælger at bruge dit fripas; valget kan ikke omgøres. Dette kan ikke kombineres med en straf (du kan f.eks. ikke tage en straf på 8 timer oven i den 48 timers gratis adgang). Hvis du arbejder sammen med en partner, tæller dette som et fripas for jer begge. Bedømmelse Der vil blive udleveret specifikke bedømmelsesskemaer for hvert forsøg.

Prøver (20 %)

Der vil være en midtvejsprøve, der er værd 20 % af den endelige karakter (ingen afsluttende prøve – dit projekt tæller som den endelige prøve). Det er tilladt at bruge en note-side på 8,5 x 11 tommer til eksamen, men du må ikke medtage svar eller kode fra tidligere CS61-eksamener, medmindre det udtrykkeligt er blevet givet af instruktøren eller er en del af det materiale, der er behandlet i klassen.

Hvis du har spørgsmål om dit eksamensresultat eller ønsker at få et spørgsmål ombedømt, skal du henvende dig til din underviser inden for en uge fra den dato, hvor eksamen er blevet returneret til klassen. Hvis du anmoder om en ombedømmelse af et bestemt spørgsmål, forbeholder vi os ret til at ombedømme hele din eksamen.

Deltagelse i undervisningen (10%)

De fleste klasser vil have en praktisk del, hvor vi skal arbejde os igennem en række problemer på en levende database. Ved afslutningen af denne del af undervisningen kan du blive tilfældigt udvalgt (med udskiftning) til at præsentere din løsning. Din præsentation vil blive bedømt på følgende måde:

  • 0: Intet af betydning
  • 1: Din løsning kræver betydeligt arbejde
  • 2: Korrekt eller overvejende korrekt.

Hvis du ikke er i stand til at deltage i undervisningen via Zoom live, men bliver tilfældigt udvalgt, skal du lægge din løsning på Canvas inden næste undervisningsgang.

Det kan ske, at du aldrig bliver tilfældigt udvalgt til at præsentere din løsning i løbet af semesteret. I så fald vil du få fuld kredit for denne del af karakteren.

Samarbejde

En stor del af læringen i dette kursus foregår ved at lave programmeringsøvelser. Nogle gange kan læring ske mere effektivt, når du kan diskutere tingene med andre, så det er tilladt at arbejde sammen med en partner i forbindelse med laboratorieopgaverne. Du kan arbejde sammen med en anden person på en given opgave. Hvis du vælger at arbejde sammen med en anden person, skal du og din partner begge aflevere den samme fælles opgave med begge navne på, og du skal arbejde med den samme person i hele opgaven (du kan ikke arbejde med én person i nogle dele af opgaven og en anden person i andre dele).

Hvis du arbejder sammen med en partner, er du stadig ansvarlig for at forstå hele opgaven. Det betyder, at det ikke er en god idé at opdele kodningen i dele, at lave din del og aldrig se på din partners del. Du kan lære meget ved at læse din partners kode og finde ud af, hvordan den fungerer, om den er korrekt, og hvordan den kan forbedres. Du kan også opdage ting som dårlige eller manglende kommentarer, der kan koste dig stilpoint, når opgaven bliver bedømt.

Når du arbejder sammen med en partner, foreslår jeg, at du låner en praksis fra Extreme Programming, en metode til at skrive kode, som mange virksomheder finder ret effektiv. Den ene person (driveren) sidder ved tastaturet. Den anden person (navigatøren) kigger på den (virtuelle) skærm, mens føreren skriver, stiller spørgsmål, kommer med forslag og opfanger fejl. I vil begge to forstå koden bedre, hvis I diskuterer den, mens den skrives, end hvis I bare skriver den (eller læser den) alene. Udveksl regelmæssigt hvem der er driver og hvem der er navigator.

Den sædvanlige reaktion på denne idé er: “Det vil tage dobbelt så lang tid!” I praksis er det normalt hurtigere, end hvis hver person programmerer alene. Årsagen er, at fejl opdages tidligere, og den tid, der spares ved fejlfinding, opvejer mere end rigeligt den manglende parallelitet ved kodeskrivning. Koden har også en tendens til at være bedre skrevet. Dette er grundene til, at denne idé er blevet vedtaget i industrien.

Online-optagelse

Jeg vil optage de undervisningstimer, der afholdes i løbet af de to timer på Zoom, og jeg vil lægge disse videoer ud.Min plan er ikke at optage nogen kontortimer, bestemt ikke en-til-en, men heller ikke små grupper. Hvis jeg mener, at et spørgsmål eller svar fra kontortid vil være godt for hele klassen at se, vil jeg udarbejde et separat notat eller en separat video eller medtage det i den næste forelæsning. Det er det, jeg normalt gør i mine klasser. Hvis jeg afholder en problemsession eller en X-time, hvor hele klassen opfordres til at komme forberedt med spørgsmål, optager jeg det, fordi det i bund og grund er en klassesession. Men jeg vil sandsynligvis redigere det, inden jeg lægger det ud, så det er hurtigere for dig at gense

Fra dekanen for fakultetet til de studerende vedrørende optagelse af undervisningsmøder:

(1) Samtykke til optagelse af kursus- og gruppekontortimer

  • a) Jeg bekræfter min forståelse for, at dette kursus og eventuelle tilhørende gruppemøder med deltagelse af studerende og underviseren, herunder, men ikke begrænset til planlagte og ad hoc-kontortimer og andre konsultationer, kan blive optaget på enhver digital platform, der anvendes til at tilbyde fjernundervisning for dette kursus;
  • b) Jeg bekræfter endvidere, at underviseren ejer ophavsretten til sit undervisningsmateriale, som disse optagelser udgør en del af, og at distribution af disse optagelser helt eller delvist uden forudgående skriftligt samtykke fra underviseren kan medføre disciplinære sanktioner fra Dartmouth op til og med bortvisning;
  • c) jeg giver Dartmouth og enhver, der handler på Dartmouths vegne, tilladelse til at optage min deltagelse og optræden på ethvert medium og til at bruge mit navn, min lignelse og min stemme i forbindelse med en sådan optagelse; og
  • d) jeg giver Dartmouth og enhver, der handler på Dartmouths vegne, tilladelse til at bruge, reproducere eller distribuere en sådan optagelse uden begrænsninger eller restriktioner til ethvert undervisningsformål, som Dartmouth og enhver, der handler på Dartmouths vegne, anser for passende.

(2) Krav om samtykke til optagelser af enkeltmandsoptagelser

    Ved tilmelding til dette kursus bekræfter jeg hermed, at jeg under ingen omstændigheder vil foretage en optagelse på noget medium af et enkeltmandsopkald med underviseren uden forudgående skriftligt samtykke fra alle de deltagende, og jeg forstår, at hvis jeg overtræder dette forbud, vil jeg blive udsat for disciplinering fra Dartmouth op til og med bortvisning samt andre civile eller strafferetlige sanktioner i henhold til gældende lovgivning.

Teknologikrav

I betragtning af dette kursus’ online karakter kræves det, at de studerende har mulighed for at streame 1 times videoindhold eller mindre hver dag. Vi vil gøre vores bedste for at planlægge og imødekomme eventuelle begrænsninger i din adgang til den nødvendige teknologi. Det er umuligt for os at planlægge alle mulige teknologibegrænsninger. Lad os derfor venligst vide, hvilke hindringer du har for at gennemføre onlinekurset så hurtigt som muligt. I betragtning af de nuværende forstyrrelser i forsyningskæden vil vi gerne planlægge så langt frem i tiden som muligt.

Honor code

Dartmouths honor code gælder for dette kursus, og politikker for akademisk forseelse vil blive håndhævet strengt. Jeg vil indberette formodede tilfælde af snyd til Undergraduate Judicial Affairs Officer. Jeg forbeholder mig også retten til at give en dumpet karakter for en opgave eller en eksamen, hvis jeg konkluderer, at æresprincippet er blevet overtrådt, uanset hvad komitéen for standarder finder frem til. Hvis du har spørgsmål, så spørg!

Accessibility Needs

Studenter, der anmoder om handicaprelaterede tilpasninger og tjenester til dette kursus, opfordres til at planlægge et telefon/videomøde med mig så tidligt som muligt i løbet af semesteret. Denne samtale vil hjælpe med at fastslå, hvilke støtteforanstaltninger der er indbygget i mit onlinekursus. For at få godkendt tilpasninger skal de studerende rådføre sig med Student Accessibility Services (SAS; [email protected]; SAS-hjemmeside; 603-646-9900) og til at sende mig deres SAS-indkvarteringsformular pr. e-mail. Vi vil derefter arbejde sammen med SAS, hvis der er behov for at ændre tilpasninger baseret på det online læringsmiljø. Hvis de studerende har spørgsmål om, hvorvidt de er berettiget til tilpasninger, skal de kontakte SAS-kontoret. Alle henvendelser og diskussioner vil forblive fortrolige.

Mental sundhed

Det akademiske miljø på Dartmouth er udfordrende, vores semestre er intensive, og undervisningen er ikke den eneste krævende del af dit liv. Der er en række ressourcer til rådighed for dig på campus til at støtte dit velbefindende, herunder din dekan, Counseling and Human Development og Student Wellness Center.

Religiøse observationer

Nogle studerende ønsker måske at deltage i religiøse observationer, der finder sted i løbet af dette akademiske semester. Hvis du har en religiøs observans, som er i konflikt med din deltagelse i kurset, bedes du mødes med mig inden udgangen af semesterets anden uge for at drøfte passende løsninger.

COVID-19 addendum

Mens COVID-19-pandemien allerede har forstyrret dette kursus drastisk, har den potentiale til at resultere i yderligere personlige konsekvenser, som kan forhindre dig i at fortsætte dit engagement i kurset. Dette kan skyldes, at du eller en af dine kære har fået sygdommen, øget familiemæssigt ansvar, økonomiske vanskeligheder eller konsekvenser for dit mentale/emotionelle helbred.

Vi har struktureret kurset således, at disse forstyrrelser ikke nødvendigvis vil forhindre dig i at gennemføre kurset med succes. For det første vil vi optage og sende hver forelæsning. Dette vil give mulighed for fleksibel visning af kursets indhold. For det andet vil vi planlægge muligheder for live-interaktion med instruktøren og underviseren på forskellige tidspunkter i løbet af ugen. For det tredje er laboratorierne blevet omdesignet, så de kan gennemføres hjemme.

Hvis du direkte eller indirekte bliver påvirket af COVID-19 på en sådan måde, at det vil påvirke din præstation i kurset, er det vigtigt, at du kontakter instruktøren så hurtigt som muligt. Du kan også henvende dig til din bachelor-dekan, hvis det vil gøre dig mere tryg. Vi kan ikke hjælpe dig, hvis vi ikke ved, at der er et problem. Vores første prioritet er dit helbred og din sikkerhed. Vi vil arbejde på at sætte dig i kontakt med de relevante ressourcer, der kan hjælpe dig. Desuden vil der blive iværksat passende tilpasninger (f.eks. fristforlængelse og/eller ekstra kontortid).

Anerkendelse

Dette kursus er tæt baseret på et kursus, der oprindeligt blev udviklet af Dr. Charles Palmer. Jeg er denne fremragende underviser dybt taknemmelig for alt hans hårde arbejde og generøse hjælp med at skabe dette kursus.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.