https://xkcd.com/327/
Kursbeschreibung
ORC. Dieser Kurs befasst sich mit der Verwaltung großer Daten- oder Informationsmengen. Dazu gehören Schemata für die Darstellung, Manipulation und Speicherung komplexer Informationsstrukturen sowie Algorithmen zur effizienten Verarbeitung dieser Strukturen und zum Abruf der darin enthaltenen Informationen. In diesem Kurs lernen die Studierenden Techniken für die Zuweisung und Freigabe von Speicherplatz, die Abfrage (Formulierung von Anfragen) und die Bearbeitung großer Mengen heterogener Daten. Von den Studierenden wird erwartet, dass sie programmieren und sich an einem Projekt beteiligen, in dem sie wichtige Aspekte eines Datenbanksystems untersuchen: Möglichkeiten zur Organisation einer verteilten Datenbank, die von mehreren Computern gemeinsam genutzt wird; Transaktionen, die lokal und global verarbeitet werden; Robustheitsgarantien für die gespeicherten Daten gegen Ausfälle; Sicherheits- und Datenintegritätsgarantien gegen unbefugten Zugriff; Datenschutz; objektorientierte Schemata für Multimediadaten; Indexierung, Hashing, Gleichzeitigkeitskontrolle, Data Mining, Data Warehousing, mobile Datenbanken und Speicherdateistrukturen.
Lernziele Das ultimative Ziel dieses Kurses ist es, Sie in die Lage zu versetzen, Daten zu nutzen, um datengestützte Entscheidungen zu treffen, anstatt Entscheidungen auf der Grundlage von Bauchgefühl oder Vermutungen zu treffen. Nach Abschluss dieses Kurses sollten Sie in der Lage sein,:
- Bestehende Datenbanken nach Erkenntnissen abfragen. In den ersten Wochen des Kurses werden wir die Standard-Datenbankabfragesprache Structured Query Language (auch bekannt als SQL, auch bekannt als „Fortsetzung“) lernen. Damit erhalten Sie die notwendigen Werkzeuge, um bestehende Datenbanken abzufragen, um Einblick in die darin enthaltenen Daten zu erhalten.
- Entwerfen Sie Ihre eigenen effizienten Datenbanken. In den nächsten Wochen werden wir untersuchen, wie man seine eigenen Datenbanken strukturiert, Tabellen anlegt und Faktoren wie Redundanz, Zuverlässigkeit und Geschwindigkeit berücksichtigt.
- Verstehen, was unter der Haube vor sich geht. Als Nächstes werden wir untersuchen, wie Datenbanken arbeiten und Daten schnell und genau abrufen, auch wenn mehrere Benutzer gleichzeitig auf Daten zugreifen und diese aktualisieren.
- Beschreiben Sie neue und sich entwickelnde Datenbanktechnologien. Schließlich werden wir uns mit neuen Datenbanktechnologien wie NoSQL-Datenbanken und Blockchains befassen.
Während des gesamten Kurses werden wir mehrere Gastvorträge von Experten halten, die auf diesem Gebiet arbeiten. Weitere Details finden Sie auf der Seite mit dem Zeitplan.
Voraussetzung ist CS 50. Ich setze außerdem voraus, dass Sie mit Python vertraut sind.
Wer, wann, wo
Dozent Tim Pierson | 210 Sudikoff
Sprechzeiten: die meisten Wochen Di. 13:30 – 14:30 Uhr, Do. 13:30 – 14:30 Uhr (über Canvas-Kalender bestätigen) und nach Vereinbarung. Siehe Zoom-Link auf Canvas für virtuelle Treffen. Almas Abdibayev
Sprechstunden: auf Canvas gepflegt Vorlesungen zweistündig | MWF 14:10 – 15:15 Uhr Östliche Zeitzone | Online Vorlesungen werden in diesem Semester online sein und mit Zoom aufgezeichnet – siehe Canvas für Zugangsdaten. Wenn Sie an der Online-Sitzung teilnehmen, schalten Sie bitte Ihre Kamera und Ihr Mikrofon aus. Wenn Sie eine Frage haben, drücken Sie bitte die Taste „Hand heben“ auf Zoom. Wenn ich Sie nicht innerhalb kurzer Zeit aufrufe, heben Sie bitte die Stummschaltung auf, schalten Sie Ihre Kamera ein und fragen Sie. Wir werden nach und nach weitere Regeln ausarbeiten… Ich habe nicht vor, die X-Stunden regelmäßig zu nutzen, aber es kann sein, dass ich sie für verpasste Kurse, zum Nachholen von Stoff oder für optionale, informelle Sitzungen zum Durcharbeiten von Beispielen nutze. Halten Sie sich dieses Zeitfenster frei, falls wir es brauchen. Wir werden häufig Übungen in der Klasse machen, um neue Konzepte an einer Live-Datenbank auszuprobieren. Google und StackOverflow werden Ihr Freund sein, zögern Sie nicht, sie zu benutzen (es sei denn, Sie erhalten andere Anweisungen)! Hilfe: Sprechzeiten Die Sprechzeiten werden auch online über Zoom abgehalten. Ich werde während der angegebenen Sprechzeiten online erreichbar sein, auch wenn keine Fragen vorliegen. Wenn Sie ein privates Treffen vereinbaren möchten, schicken Sie mir eine E-Mail, und wir werden einen Termin für ein Gespräch finden. Hilfe: Slack Erwarten Sie nach dem ersten Unterrichtstag eine Einladung zu einem Slack-Kanal. Ich empfehle Ihnen dringend, dort Fragen zu stellen und zu beantworten. Ankündigungen Überwachen Sie Canvas für regelmäßige kursweite Ankündigungen. Lehrbuch Database System Concepts, 7. Auflage, von Silberschatz, Korth und Sudarshan. Ich empfehle dringend die ebook-Version anstelle der Papierversion (die Papierversion ist nicht einmal gebunden – es ist eine Sammlung von losen Blättern!) Während das Silberschatz-Buch unser primäres Lehrbuch sein wird und alle zugewiesene Lektüre aus diesem Lehrbuch stammen wird, ist eine weitere nützliche Quelle Database Systems: Design, Implementation, & Management, 13. Auflage, von Coronel und Morris. Eine weitere gute Quelle ist https://www.mysqltutorial.org.
Bewertung
Die Noten in diesem Kurs bestehen aus einer Kombination aus einem Semesterprojekt, mehreren Laboraufgaben, einer Zwischenprüfung und der Teilnahme am Unterricht. Zum Bestehen dieses Kurses ist eine Gesamtpunktzahl von mindestens 60% erforderlich.
Projekt (40%)
Im Laufe des Semesters werden Sie zusammen mit drei anderen Studenten an einem datenbankbezogenen Projekt Ihrer Wahl arbeiten. Einzelheiten zu den Anforderungen des Projekts finden Sie hier.
Praktika (30%)
- Labor 1: 5%
- Labor 2: 10%
- Labor 3: 15%.
Anforderungen an die Laborarbeiten: Die Übungen sind so konzipiert, dass sie außerhalb des Unterrichts durchgeführt werden können und müssen elektronisch über Canvas vor der auf Canvas angegebenen Frist eingereicht werden. Auch wenn ein Labor einige schriftliche Übungen enthält, müssen Sie entweder eine Datei eintippen oder Ihre schriftliche Arbeit einscannen und elektronisch einreichen. Um die Ausgabe Ihres Programms einzureichen, reichen Sie eine kopierte Datei im PDF-Format und/oder einen Screenshot ein. Für reinen Text können Sie ein Programm wie TextEdit, NotePad oder Emacs oder sogar Word verwenden, aber speichern Sie ihn unbedingt als PDF. Für einen Screenshot können Sie die Vorschau auf dem Mac (unter dem Menü „Datei“) oder die Schaltfläche „PrntScrn“ unter Windows verwenden.
Sie können mit einem Partner an diesen Laboraufgaben arbeiten (siehe Zusammenarbeit unten). Zusätzlich:
- Wenn Sie mit einem Partner gearbeitet haben, geben Sie Ihren Namen und den Namen Ihres Partners an, oder wenn Sie alleine gearbeitet haben, geben Sie „no partner“ in einem Kommentar in Ihrer Einsendung an.
- Wenn Sie mit einem Partner gearbeitet haben und am Ende eine einzige gemeinsame Lösung hatten, geben Sie dies in einem Kommentar in der Lösung und in der Einsendung an. Jeder Partner sollte die gleiche Lösung einreichen. Die Lösung wird dann einmal benotet, wobei beide Partner die gleiche Note erhalten.
- Wenn Sie mit einem Partner zusammengearbeitet haben, aber getrennten Code geschrieben haben, geben Sie die Zusammenarbeit an, aber dass Sie unterschiedliche Beiträge eingereicht haben. Geben Sie dies sowohl im Code als auch auf der Einsendung an. Jeder von Ihnen sollte seine eigene Lösung hochladen, und jeder von Ihnen erhält eine eigene Note.
- Sammeln Sie alle Ihre Codedateien in einer einzigen Zip-Datei und laden Sie diese Zip-Datei hoch, anstatt einen Haufen separater Dateien.
Verspätungsregelungen Fällig über Canvas an dem Datum und der Uhrzeit, die in der Canvas-Zuweisung angegeben sind. Penalties: < 8 Stunden: 10%; < 24 Stunden: 20%; < 48 Stunden: 40%; mehr: keine Anrechnung.
Sie dürfen höchstens einmal (bis zu 48 Stunden) ohne Strafe zu spät abgeben; eine Entschuldigung ist nicht erforderlich. Geben Sie bei der Einreichung an, dass Sie von Ihrem Freifahrtschein Gebrauch machen; Sie können diese Entscheidung nicht rückgängig machen. Dies kann nicht mit einer Strafe kombiniert werden (z. B. können Sie keine 8-Stunden-Strafe zusätzlich zu der 48-Stunden-Freiheit in Anspruch nehmen). Wenn Sie mit einem Partner arbeiten, zählt dies als Freifahrtschein für Sie beide. Benotung Für jedes Labor werden spezifische Benotungsrubriken zur Verfügung gestellt.
Prüfungen (20%)
Wenn Sie Fragen zu Ihrem Prüfungsergebnis haben oder eine Frage neu bewertet haben möchten, wenden Sie sich innerhalb einer Woche nach Rückgabe der Prüfung an den Kurs an Ihren TA. Wenn Sie eine Neubewertung einer bestimmten Frage beantragen, behalten wir uns das Recht vor, die gesamte Prüfung neu zu bewerten.
Beteiligung am Unterricht (10%)
Die meisten Kurse werden einen praktischen Teil haben, in dem wir eine Reihe von Problemen an einer Live-Datenbank bearbeiten. Am Ende dieses Teils der Vorlesung können Sie nach dem Zufallsprinzip (mit Ersatz) ausgewählt werden, um Ihre Lösung zu präsentieren. Ihre Präsentation wird wie folgt benotet:
- 0: Nichts Substanzielles
- 1: Ihre Lösung bedarf noch erheblicher Überarbeitung
- 2: Korrekt oder überwiegend korrekt.
Wenn Sie nicht in der Lage sind, an der Vorlesung über Zoom live teilzunehmen, aber zufällig ausgewählt werden, stellen Sie Ihre Lösung vor der nächsten Vorlesungsstunde auf Canvas ein.
Es kann vorkommen, dass Sie nie zufällig ausgewählt werden, um Ihre Lösung während des Semesters zu präsentieren. In diesem Fall wird Ihnen dieser Teil der Note voll angerechnet.
Zusammenarbeit
Ein großer Teil des Lernens in diesem Kurs entsteht durch die Durchführung der Programmierübungen. Manchmal kann man effektiver lernen, wenn man die Dinge mit jemand anderem besprechen kann, daher ist die Arbeit mit einem Partner bei den Laboraufgaben erlaubt. Sie können gemeinsam mit einer anderen Person an einer bestimmten Übung arbeiten. Wenn Sie sich dafür entscheiden, mit einer anderen Person zusammenzuarbeiten, müssen Sie und Ihr Partner dieselbe gemeinsame Aufgabe mit beiden Namen einreichen, und Sie müssen für die gesamte Aufgabe mit derselben Person zusammenarbeiten (Sie können nicht mit einer Person für einige Teile einer Aufgabe und mit einer anderen Person für andere Teile arbeiten).
Wenn Sie mit einem Partner zusammenarbeiten, sind Sie immer noch dafür verantwortlich, die gesamte Aufgabe zu verstehen. Das bedeutet, dass es keine gute Idee ist, den Code in Teile aufzuteilen, den eigenen Teil zu erledigen und sich die Teile des Partners nicht anzuschauen. Sie können eine Menge lernen, wenn Sie den Code Ihres Partners lesen und herausfinden, wie er funktioniert, ob er korrekt ist und wie er verbessert werden könnte. Sie können auch Dinge wie schlechte oder fehlende Kommentare entdecken, die Ihnen bei der Bewertung der Aufgabe Stilpunkte kosten könnten.
Wenn Sie mit einem Partner zusammenarbeiten, schlage ich vor, dass Sie sich eine Praxis aus der Extremen Programmierung aneignen, einer Methode zum Schreiben von Code, die viele Unternehmen für sehr effektiv halten. Eine Person (der Fahrer) setzt sich an die Tastatur. Die andere Person (der Navigator) schaut auf den (virtuellen) Bildschirm, während der Fahrer tippt, stellt Fragen, macht Vorschläge und entdeckt Fehler. Sie beide werden den Code besser verstehen, wenn Sie ihn während des Schreibens besprechen, als wenn Sie ihn nur selbst schreiben (oder lesen). Tauschen Sie regelmäßig aus, wer der Fahrer und wer der Navigator ist.
Die übliche Reaktion auf diese Idee ist: „Das dauert doppelt so lange!“In der Praxis ist es meist schneller, als wenn jeder für sich programmiert. Der Grund dafür ist, dass Fehler früher erkannt werden und die Zeitersparnis bei der Fehlersuche den Mangel an Parallelität beim Schreiben des Codes mehr als wettmacht. Außerdem ist der Code in der Regel besser geschrieben. Dies sind die Gründe, warum diese Idee in der Industrie übernommen wurde.
Online-Aufzeichnung
Ich werde Unterrichtssitzungen, die während der 2 Stunden auf Zoom abgehalten werden, aufzeichnen und diese Videos veröffentlichen.Mein Plan wird sein, keine Sprechstunden aufzuzeichnen, sicherlich nicht Einzelgespräche, aber auch keine kleinen Gruppen. Wenn ich der Meinung bin, dass eine Frage oder eine Antwort aus der Sprechstunde für die gesamte Klasse gut wäre, werde ich eine separate Notiz oder ein Video vorbereiten oder sie in die nächste Vorlesung aufnehmen. So mache ich es normalerweise in meinen Vorlesungen. Wenn ich eine Problemsitzung oder eine X-Stunde abhalte, in der die gesamte Klasse eingeladen ist, mit vorbereiteten Fragen zu kommen, werde ich diese aufzeichnen, da es sich im Wesentlichen um eine Klassensitzung handelt. Aber ich werde sie wahrscheinlich vor der Veröffentlichung bearbeiten, damit Sie sie schneller wieder ansehen können
Vom Dekan der Fakultät an die Studenten bezüglich der Aufzeichnung von Unterrichtssitzungen:
(1) Zustimmung zur Aufzeichnung von Kurs- und Gruppensprechstunden
- a) Ich bestätige, dass ich verstanden habe, dass dieser Kurs und alle damit verbundenen Gruppensitzungen, an denen Studenten und der Dozent beteiligt sind, einschließlich, aber nicht beschränkt auf geplante und Ad-hoc-Sprechstunden und andere Beratungen, auf jeder digitalen Plattform aufgezeichnet werden können, die verwendet wird, um Fernunterricht für diesen Kurs anzubieten;
- b) Ich bestätige ferner, dass der Dozent das Urheberrecht an seinen Unterrichtsmaterialien besitzt, von denen diese Aufnahmen einen Teil darstellen, und dass die Verbreitung dieser Aufnahmen im Ganzen oder in Teilen ohne vorherige schriftliche Zustimmung des Dozenten von Dartmouth disziplinarisch geahndet werden kann, bis hin zum Ausschluss;
- c) Ich ermächtige Dartmouth und jeden, der im Namen von Dartmouth handelt, meine Teilnahme und mein Auftreten in einem beliebigen Medium aufzuzeichnen und meinen Namen, mein Bild und meine Stimme in Verbindung mit einer solchen Aufzeichnung zu verwenden; und
- d) Ich ermächtige Dartmouth und jeden, der im Namen von Dartmouth handelt, eine solche Aufzeichnung ohne Einschränkungen oder Begrenzungen für jeden pädagogischen Zweck, der von Dartmouth und jedem, der im Namen von Dartmouth handelt, als angemessen erachtet wird, zu verwenden, zu reproduzieren oder zu verteilen.
(2) Erfordernis der Zustimmung zu Einzelaufzeichnungen
- Mit der Anmeldung zu diesem Kurs bestätige ich hiermit, dass ich unter keinen Umständen eine Aufzeichnung auf irgendeinem Medium von einem Einzelgespräch mit dem Dozenten anfertigen werde, ohne die vorherige schriftliche Zustimmung aller Beteiligten einzuholen, und ich verstehe, dass ich bei einem Verstoß gegen dieses Verbot von Dartmouth disziplinarisch belangt werde, bis hin zum Ausschluss, sowie alle anderen zivil- oder strafrechtlichen Strafen nach geltendem Recht erleiden werde.
Technologische Anforderungen
Da dieser Kurs online stattfindet, müssen die Studenten in der Lage sein, jeden Tag eine Stunde oder weniger an Videoinhalten zu streamen. Wir werden unser Bestes tun, um etwaige Einschränkungen beim Zugang zu den erforderlichen Technologien zu berücksichtigen. Es ist unmöglich für uns, alle möglichen technologischen Einschränkungen zu berücksichtigen. Bitte teilen Sie uns daher so bald wie möglich mit, welche Hindernisse Sie daran hindern, den Online-Kurs zu absolvieren. In Anbetracht der derzeitigen Störungen in der Lieferkette möchten wir so weit wie möglich im Voraus planen.
Ehrenkodex
Der Ehrenkodex von Dartmouth gilt für diesen Kurs, und die Richtlinien für akademisches Fehlverhalten werden streng durchgesetzt. Ich werde mutmaßliche Fälle von Betrug an den Undergraduate Judicial Affairs Officer melden. Ich behalte mir auch das Recht vor, eine Aufgabe oder eine Prüfung mit „nicht bestanden“ zu bewerten, wenn ich zu dem Schluss komme, dass der Ehrenkodex verletzt wurde, unabhängig von der Feststellung des Ausschusses für Normen. Wenn Sie Fragen haben, fragen Sie mich!
Behindertengerechtigkeit
Studenten, die behindertengerechte Vorkehrungen und Dienstleistungen für diesen Kurs beantragen, werden gebeten, so früh wie möglich ein Telefon-/Video-Gespräch mit mir zu vereinbaren. In diesem Gespräch wird festgestellt, welche Unterstützungen in meinem Online-Kurs vorgesehen sind. Für die Genehmigung von Unterkünften müssen sich die Studierenden mit dem Student Accessibility Services (SAS; [email protected]; SAS-Website; 603-646-9900) und mir ihr SAS-Unterbringungsformular zu mailen. Wir werden dann mit SAS zusammenarbeiten, wenn die Vorkehrungen aufgrund der Online-Lernumgebung geändert werden müssen. Wenn Studierende Fragen dazu haben, ob sie für eine Anpassung in Frage kommen, sollten sie sich an das SAS-Büro wenden. Alle Anfragen und Diskussionen werden vertraulich behandelt.
Psychische Gesundheit
Das akademische Umfeld in Dartmouth ist anspruchsvoll, unsere Semester sind intensiv, und die Kurse sind nicht der einzige anspruchsvolle Teil Ihres Lebens. Auf dem Campus stehen Ihnen eine Reihe von Ressourcen zur Verfügung, um Ihr Wohlbefinden zu fördern, darunter Ihr Studiendekan, Counseling and Human Development und das Student Wellness Center.
Religiöse Feste
Einige Studenten möchten vielleicht an religiösen Festen teilnehmen, die während dieses akademischen Semesters stattfinden. Wenn Sie eine religiöse Observanz haben, die mit Ihrer Teilnahme am Kurs kollidiert, treffen Sie sich bitte vor Ende der zweiten Semesterwoche mit mir, um geeignete Vorkehrungen zu besprechen.
COVID-19 Nachtrag
Die COVID-19-Pandemie hat diesen Kurs bereits drastisch gestört, kann aber weitere persönliche Auswirkungen haben, die Sie daran hindern können, weiter am Kurs teilzunehmen. Dies kann durch die Ansteckung mit der Krankheit bei Ihnen oder einem nahestehenden Menschen, durch erhöhte familiäre Verpflichtungen, durch finanzielle Schwierigkeiten oder durch Auswirkungen auf Ihre geistige/emotionale Gesundheit bedingt sein.
Wir haben den Kurs so strukturiert, dass diese Störungen Sie nicht unbedingt daran hindern, den Kurs erfolgreich abzuschließen. Zunächst werden wir jede Vorlesung aufzeichnen und veröffentlichen. Dies ermöglicht eine flexible Betrachtung der Kursinhalte. Zweitens werden wir zu verschiedenen Zeiten in der Woche Gelegenheiten zur Live-Interaktion mit dem Dozenten und dem TA einplanen. Drittens wurden die Übungen so umgestaltet, dass sie zu Hause absolviert werden können.
Wenn Sie direkt oder indirekt von COVID-19 in einer Weise betroffen sind, die sich auf Ihre Leistungen im Kurs auswirkt, müssen Sie sich unbedingt so schnell wie möglich an den Dozenten wenden. Sie können sich auch an Ihren Studiendekan wenden, wenn Ihnen das lieber ist. Wir können Ihnen nicht helfen, wenn wir nicht wissen, dass es ein Problem gibt. Ihre Gesundheit und Sicherheit haben für uns oberste Priorität. Wir werden uns bemühen, Sie mit geeigneten Stellen in Kontakt zu bringen, die Ihnen helfen können. Darüber hinaus werden angemessene Vorkehrungen (z. B. Fristverlängerungen und/oder zusätzliche Sprechzeiten) getroffen.
Anerkennung
Dieser Kurs ist eng an einen ursprünglich von Dr. Charles Palmer entwickelten Kurs angelehnt. Ich bin diesem hervorragenden Pädagogen zu großem Dank verpflichtet für seine harte Arbeit und seine großzügige Unterstützung bei der Erstellung dieses Kurses.