CS 61 | Databassystem | Våren 2020

, Author

En mammas utnyttjande (från XKCD)https://xkcd.com/327/

Kursbeskrivning

ORC. I denna kurs studeras hanteringen av stora mängder data eller information. Detta omfattar system för representation, hantering och lagring av komplexa informationsstrukturer samt algoritmer för effektiv bearbetning av dessa strukturer och för att hämta den information de innehåller. Kursen kommer att lära studenten tekniker för tilldelning och borttagning av lagringsutrymme, sökning (formulering av förfrågningar) och hantering av stora mängder heterogena data. Studenterna förväntas programmera och delta i ett projekt där de studerar viktiga aspekter av ett databassystem: sätt att organisera en distribuerad databas som delas av flera datorer; transaktioner som behandlas lokalt och globalt; robusthetsgarantier för lagrade data mot fel; säkerhets- och dataintegritetsgarantier mot obehörig åtkomst; sekretess; objektorienterade system för multimediadata; indexering, hashning, samtidighetsstyrning, datautvinning, datalagring, mobila databaser och lagringsfilstrukturer.

Lärandemål Det slutgiltiga målet med den här kursen är att ge dig utrustning för att använda data för att fatta datadrivna beslut i stället för att fatta beslut på grund av magkänsla eller gissningar. Efter att ha slutfört den här kursen ska du kunna:

  1. Fråga befintliga databaser för att få insikt. Vi kommer att ägna de första veckorna av kursen åt att lära oss standardspråket för databasfrågor som kallas Structured Query Language (även kallat SQL, även kallat ”sequel”). Detta kommer att ge dig de verktyg som behövs för att fråga befintliga databaser för att få en inblick i de data de innehåller.
  2. Utforma egna effektiva databaser. Vi kommer att ägna de kommande veckorna åt att undersöka hur man strukturerar sina egna databaser, lägger upp tabeller och tar hänsyn till faktorer som redundans, tillförlitlighet och snabbhet.
  3. Förstå vad som händer under huven. Därefter kommer vi att undersöka hur databaser fungerar och hur de hämtar data snabbt och korrekt, även när flera användare får tillgång till och uppdaterar data samtidigt.
  4. Beskriv ny och framväxande databasteknik. Slutligen kommer vi att titta på ny databasteknik som NoSQL-databaser och blockkedjor.

Under hela tiden kommer vi att ha flera gästföreläsare från experter som arbetar inom området. Se schemasidan för mer information.

Förutsättningar CS 50. Jag kommer också att förutsätta att du är bekant med Python.

Vem, när, var

Instruktör Tim Pierson | 210 Sudikoff
Kontorstider: de flesta veckor tis. 13:30-14:30, tors. 13:30-14:30 (bekräfta via Canvas-kalendern), och efter överenskommelse. Se Zoom-länken på Canvas för virtuella möten. Doktorand och undervisningsassistent Almas Abdibayev

kontorstider: hålls uppdaterad på Canvas Föreläsningar 2 timmar | MWF 14:10-15:15 östlig tidszon | Online Föreläsningar kommer att vara online och spelas in den här terminen med hjälp av Zoom – se Canvas för information om åtkomst. När du ansluter dig till onlinemötet ska du stänga av kamera och mikrofon. Om du har en fråga kan du trycka på knappen ”Räck upp handen” på Zoom. Om jag inte ringer upp dig inom en kort tid, ta upp ljudet, sätt på kameran och fråga. Vi kommer att utarbeta fler regler allteftersom… Jag planerar inte att regelbundet använda x-timmar, men det kan hända att jag ibland använder dem för missade lektioner, för att komma ikapp med material eller för valfria, informella sessioner för att arbeta igenom exempel. Se till att hålla denna tid ledig om vi skulle behöva använda den. Vi kommer ofta att ha övningar i klassen för att prova nya koncept på en levande databas. Google och StackOverflow kommer att vara dina vänner, tveka inte att använda dem (om du inte får andra instruktioner)! Hjälp: Kontorstider Kontorstiderna kommer också att vara online via Zoom. Jag kommer att vara tillgänglig online under de bokade kontorstiderna, även om det inte finns några frågor. Om du vill ordna ett privat möte kan du skicka ett e-postmeddelande till mig så hittar vi en tid att prata. Hjälp: Slack Förvänta dig en inbjudan till en Slack-kanal efter första lektionsdagen. Jag uppmuntrar dig starkt att ställa och besvara frågor där. Meddelanden Följ Canvas för regelbundna meddelanden som gäller hela kursen. Lärobok Database System Concepts, 7th edition, av Silberschatz, Korth och Sudarshan. Jag rekommenderar starkt ebook-versionen i stället för pappersversionen (pappersversionen är inte ens inbunden – det är en samling lösa blad!) Även om Silberschatz-boken kommer att vara vår primära lärobok, och all läsning kommer att ske från den läroboken, kan en annan användbar resurs vara Database Systems: Design, Implementation, & Management, 13th edition, av Coronel och Morris. En annan bra resurs är https://www.mysqltutorial.org.

Bedömning

Betyg i den här kursen kommer att vara en kombination av ett terminslångt projekt, flera laborationsuppgifter, en halvtidstentamen och deltagande i undervisningen. Ett sammanlagt resultat på minst 60 % krävs för att klara kursen.

Projekt (40 %)

Under hela terminen kommer du att arbeta med ett databasrelaterat projekt som du väljer tillsammans med tre andra studenter. Detaljer om projektets krav finns här.

Laborationer (30 %)

Det kommer att finnas tre laborationer (bortsett från Laboration 0 som bara är till för att samla in information) som tillsammans står för 30 % av betyget på kursen. Poängen för varje labb är följande:

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

Krav för inlämning av laborationer: Laborationer är utformade för att utföras utanför lektionerna och måste lämnas in elektroniskt via Canvas före den tidsfrist som anges på Canvas. Även när en laboration har några skriftliga övningar måste du antingen skriva in en fil eller skanna in ditt skriftliga arbete och lämna in det elektroniskt. Om du vill skicka in resultat från ditt program ska du skicka in en kopierad fil i pdf-format och/eller en skärmdump, beroende på vad som är lämpligt. För vanlig text kan du använda ett program som TextEdit, NotePad eller Emacs, eller till och med Word, men se till att spara som pdf-fil. För en skärmdump kan du använda Preview på Mac (under menyn ”File”) eller PrntScrn-knappen i Windows.

Du får arbeta med en partner på dessa laborationer (se Samarbete nedan). Dessutom:

  • Om du arbetade med en partner, ange ditt och din partners namn, eller om du arbetade ensam, ange ”ingen partner” i en kommentar i din inlämning.
  • Om du arbetade med en partner och slutade med en enda gemensam lösning, ange det i en kommentar i lösningen och på inlämningen. Varje partner ska lämna in samma lösning. Lösningen kommer då att bedömas en gång med samma betyg för båda partnerna.
  • Om du arbetade med en partner men skrev separat kod, ange samarbetet men att ni har olika inlämningar. Ange detta både i koden och på inlämningen. Var och en av er bör ladda upp sin egen lösning, och var och en av er kommer att få ett separat betyg.
  • Samla alla dina kodfiler i en enda zip-fil och ladda upp den zip-filen, i stället för en massa separata filer.

Policy för sena inlämningstider Förfall via Canvas på det datum och den tid som anges på Canvas-uppgiften. Påföljder: < 8 timmar: 10 %; < 24 timmar: 20 %; < 48 timmar: 40 %; mer: ingen tillgodoräknande.
Du har rätt till högst en försenad inlämning (upp till 48 timmar) utan påföljd; ingen ursäkt krävs. Ange i din inlämning att du väljer att använda ditt fripass, det går inte att ångra ditt val. Detta kan inte kombineras med en straffavgift (t.ex. kan du inte ta en straffavgift på 8 timmar ovanpå 48 timmars fripass). Om du arbetar med en partner räknas detta som ett fripass för er båda. Betygsättning Särskilda betygsrubriker kommer att tillhandahållas för varje labb.

Examinationer (20 %)

Det kommer att finnas ett delprov som är värt 20 % av slutbetyget (inget slutprov – ditt projekt räknas som slutprov). Du får använda ett anteckningsblad på 8,5 x 11 tum för provet, men du får inte inkludera svar eller koder från tidigare CS61-prov, såvida de inte uttryckligen har tillhandahållits av läraren eller ingår i det material som behandlas i klassen.

Om du har frågor om ditt provresultat, eller om du vill att en fråga ska omvärderas, kontakta din assistent inom en vecka från det datum då provet lämnades tillbaka till klassen. Om du begär att en viss fråga ska omgraderas förbehåller vi oss rätten att omgradera hela din tentamen.

Klassdeltagande (10 %)

De flesta lektioner kommer att ha en praktisk del där vi kommer att arbeta igenom en serie problem på en levande databas. I slutet av denna del av lektionen kan du bli slumpmässigt utvald (med ersättning) för att presentera din lösning. Din presentation kommer att bedömas enligt följande:

  • 0: Inget av betydelse
  • 1: Din lösning kräver betydande arbete
  • 2: Korrekt eller huvudsakligen korrekt.

Om du inte har möjlighet att närvara vid lektionen via Zoom live, men blir slumpmässigt utvald, lägg upp din lösning på Canvas före nästa lektion.

Det kan hända att du aldrig blir slumpmässigt utvald att presentera din lösning under terminen. I så fall kommer du att få full poäng för denna del av betyget.

Samarbete

En stor del av inlärningen i den här kursen kommer från att göra programmeringsövningarna. Ibland kan inlärningen ske mer effektivt när du kan diskutera saker och ting med någon annan, så samarbete med en partner kommer att tillåtas vid laborationer. Du får arbeta tillsammans med en annan person på en viss laboration. Om du väljer att arbeta med någon annan måste du och din partner lämna in samma gemensamma uppgift med båda namnen på, och du måste arbeta med samma person för hela uppgiften (du kan inte arbeta med en person för vissa delar av uppgiften och en annan person för andra delar).

Om du arbetar med en partner är du fortfarande ansvarig för att förstå hela uppgiften. Det betyder att det inte är en bra idé att dela upp kodningen i delar, göra din del och aldrig titta på din partners delar. Du kan lära dig mycket genom att läsa din partners kod och ta reda på hur den fungerar, om den är korrekt och hur den kan förbättras. Du kan också upptäcka saker som dåliga eller saknade kommentarer som kan kosta dig stilpoäng när uppgiften betygsätts.

När du arbetar med en partner föreslår jag att du lånar en metod från Extreme Programming, en metod för att skriva kod som många företag finner ganska effektiv. En person (föraren) sitter vid tangentbordet. Den andra personen (navigatorn) tittar på den (virtuella) skärmen medan föraren skriver, ställer frågor, lämnar förslag och upptäcker fel. Båda två kommer att förstå koden bättre om ni diskuterar den medan den skrivs än om ni bara skriver den (eller läser den) själva. Byt regelbundet ut vem som är förare och vem som är navigatör.

Den vanliga reaktionen på denna idé är: ”Det tar dubbelt så lång tid!” I praktiken går det oftast snabbare än om var och en programmerar för sig själv. Anledningen är att fel upptäcks tidigare, och den tid som sparas vid felsökning kompenserar mer än väl för bristen på parallellitet i kodskrivandet. Dessutom tenderar koden att bli bättre skriven. Detta är skälen till att denna idé har antagits inom industrin.

Inspelning online

Jag kommer att spela in de lektionssessioner som hålls under de två timmarna på Zoom och jag kommer att lägga ut dessa videor.Min plan kommer att vara att inte spela in några kontorstimmar, förvisso inte en till en, men inte heller små grupper. Om jag anser att en fråga eller ett svar från kontorstimmarna skulle vara bra för hela klassen att se, kommer jag att förbereda en separat anteckning eller video, eller inkludera den i nästa föreläsning. Detta är vad jag normalt gör i mina klasser. Om jag håller ett problemtillfälle eller en X-timme där hela klassen uppmanas att komma förberedd med frågor, kommer jag att spela in det eftersom det i huvudsak är ett klasstillfälle. Men jag kommer förmodligen att redigera det innan jag lägger ut det så att det går snabbare för er att titta igen

From the Dean of the Faculty to students regarding recording of class sessions:

(1) Samtycke till inspelning av kurs- och grupptimmar

  • a) Jag bekräftar att jag är införstådd med att denna kurs och eventuella tillhörande gruppmöten som involverar studenterna och läraren, inklusive men inte begränsat till schemalagda och tillfälliga kontorstimmar och andra konsultationer, kan komma att spelas in på alla digitala plattformar som används för att erbjuda distansundervisning för denna kurs;
  • b) Jag bekräftar vidare att läraren äger upphovsrätten till sitt undervisningsmaterial, som dessa inspelningar utgör en del av, och att distribution av dessa inspelningar, helt eller delvis, utan lärarens skriftliga medgivande i förväg kan leda till disciplinära åtgärder från Dartmouth upp till och med utvisning;
  • c) Jag tillåter Dartmouth och alla som agerar på Dartmouths vägnar att spela in mitt deltagande och min framtoning i något medium och att använda mitt namn, min bild och min röst i samband med en sådan inspelning.
  • d) Jag tillåter Dartmouth och alla som agerar på Dartmouths vägnar att använda, reproducera eller distribuera en sådan inspelning utan begränsningar eller restriktioner för alla utbildningsändamål som Dartmouth och alla som agerar på Dartmouths vägnar anser vara lämpliga.

(2) Krav på samtycke till inspelningar av enskilda samtal

    Vid anmälan till denna kurs försäkrar jag härmed att jag inte under några omständigheter kommer att göra en inspelning i något medium av ett enskilt möte med instruktören utan att i förväg ha erhållit skriftligt samtycke från alla som deltar, och jag är medveten om att om jag bryter mot detta förbud kommer jag att bli föremål för disciplinära åtgärder från Dartmouth, upp till och med uteslutning, samt andra civilrättsliga eller straffrättsliga påföljder enligt tillämplig lag.

Teknikkrav

Med tanke på kursens online-natur krävs det att studenterna har möjlighet att strömma en timme eller mindre videoinnehåll varje dag. Vi kommer att göra vårt bästa för att planera för och tillgodose eventuella begränsningar i din tillgång till den nödvändiga tekniken. Det är omöjligt för oss att planera för alla möjliga tekniska begränsningar. Låt oss därför veta vilka hinder du har för att slutföra onlinekursen så snart som möjligt. Med tanke på nuvarande störningar i leveranskedjan vill vi planera så långt fram i tiden som möjligt.

Honor code

Dartmouths hederskodex gäller för denna kurs, och reglerna för akademisk misskötsel kommer att tillämpas strikt. Jag kommer att anmäla misstänkta fall av fusk till den rättsliga handläggaren för grundutbildningen. Jag förbehåller mig också rätten att ge ett underkänt betyg för en uppgift eller ett prov om jag anser att hedersprincipen har överträtts, oavsett vad kommittén för normer kommer fram till. Om du har frågor, ställ dem!

Accessibility Needs

Studenter som begär handikapprelaterade anpassningar och tjänster för den här kursen uppmanas att boka in ett telefon-/videomöte med mig så tidigt som möjligt under terminen. Detta samtal kommer att bidra till att fastställa vilka stöd som finns inbyggda i min onlinekurs. För att anpassningar ska kunna godkännas måste studenterna samråda med Student Accessibility Services (SAS); [email protected]; SAS webbplats; 603-646-9900) och att skicka mig sitt SAS-boendeformulär via e-post. Vi kommer sedan att samarbeta med SAS om anpassningarna behöver ändras på grund av den onlinebaserade inlärningsmiljön. Om studenterna har frågor om huruvida de är berättigade till anpassningar bör de kontakta SAS-kontoret. Alla förfrågningar och diskussioner kommer att förbli konfidentiella.

Mental hälsa

Den akademiska miljön i Dartmouth är utmanande, våra terminer är intensiva och klasserna är inte den enda krävande delen av ditt liv. Det finns ett antal resurser tillgängliga för dig på campus för att stödja ditt välbefinnande, bland annat din dekan, Counseling and Human Development och Student Wellness Center.

Religiösa observationer

Vissa studenter kanske vill delta i religiösa observationer som äger rum under den här akademiska terminen. Om du har en religiös observation som står i konflikt med ditt deltagande i kursen, vänligen träffa mig före slutet av terminens andra vecka för att diskutera lämpliga anpassningar.

COVID-19-tillägg

Även om COVID-19-pandemin redan har stört kursen drastiskt har den potential att resultera i ytterligare personlig påverkan som kan hindra dig från att fortsätta delta i kursen. Detta kan bero på att du eller en närstående drabbas av sjukdomen, ökat familjeansvar, ekonomiska svårigheter eller påverkan på din mentala/emotionella hälsa.

Vi har strukturerat kursen så att dessa störningar inte nödvändigtvis kommer att hindra dig från att slutföra kursen med framgång. För det första kommer vi att spela in och lägga upp varje föreläsning. Detta kommer att möjliggöra flexibel visning av kursinnehållet. För det andra kommer vi att schemalägga möjligheter till direktinteraktion med instruktören och assistenten vid olika tidpunkter under veckan. För det tredje har laborationerna omarbetats så att de kan genomföras hemma.

Om du direkt eller indirekt påverkas av COVID-19 på ett sådant sätt att det kommer att påverka din prestation i kursen, är det absolut nödvändigt att du kontaktar läraren så snart som möjligt. Du kan också vända dig till din dekanus på grundutbildningen om det skulle göra dig mer bekväm. Vi kan inte hjälpa dig om vi inte vet att det finns ett problem. Vår första prioritet är din hälsa och säkerhet. Vi kommer att arbeta för att sätta dig i kontakt med lämpliga resurser för att hjälpa dig. Dessutom kommer lämpliga anpassningar (t.ex. förlängning av tidsfrister och/eller extra kontorstimmar) att genomföras.

Acknowledgement

Denna kurs är nära baserad på en kurs som ursprungligen utvecklades av Dr. Charles Palmer. Jag är djupt tacksam mot denna utmärkta pedagog för allt hans hårda arbete och generösa hjälp med att skapa denna kurs.

Lämna ett svar

Din e-postadress kommer inte publiceras.