CS 61 | Systemy baz danych | Wiosna 2020

, Author

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

Opis kursu

ORC. Kurs ten bada zarządzanie dużymi zbiorami danych lub informacji. Obejmuje to schematy reprezentacji, manipulacji i przechowywania złożonych struktur informacyjnych, jak również algorytmy do przetwarzania tych struktur skutecznie i do pobierania informacji, które zawierają. Kurs ten nauczy studenta technik alokacji i deallokacji pamięci, wyszukiwania (formułowania zapytań) i manipulacji dużymi ilościami heterogenicznych danych. Oczekuje się, że studenci zaprogramują i zaangażują się w projekt, w którym będą badać ważne aspekty systemu baz danych: sposoby organizacji rozproszonej bazy danych współdzielonej przez kilka komputerów; transakcje przetwarzane lokalnie i globalnie; gwarancje odporności przechowywanych danych na awarie; gwarancje bezpieczeństwa i integralności danych przed nieautoryzowanym dostępem; prywatność; schematy obiektowe dla danych multimedialnych; indeksowanie, haszowanie, kontrola współbieżności, eksploracja danych, hurtownie danych, mobilne bazy danych i struktury plików pamięci masowej.

Cele nauczania Ostatecznym celem tego kursu jest wyposażenie Cię w umiejętności wykorzystywania danych do podejmowania decyzji opartych na danych, zamiast podejmowania decyzji na podstawie przeczucia lub zgadywania. Po ukończeniu tego kursu powinieneś być w stanie:

  1. Przeszukiwać istniejące bazy danych w celu uzyskania wglądu. Pierwsze kilka tygodni kursu poświęcimy na naukę standardowego języka zapytań do baz danych zwanego Structured Query Language (aka SQL, aka 'sequel’). To da ci narzędzia niezbędne do zapytania istniejących baz danych w celu uzyskania wglądu w przechowywane w nich dane.
  2. Zaprojektuj swoje własne wydajne bazy danych. Spędzimy kilka następnych tygodni na badaniu, w jaki sposób strukturyzować własne bazy danych, układając tabele i rozważając czynniki takie jak redundancja, niezawodność i szybkość.
  3. Zrozumieć, co dzieje się pod maską. Następnie zbadamy, jak działają bazy danych, pobierając dane szybko i dokładnie, nawet przy jednoczesnym dostępie i aktualizacji danych przez wielu użytkowników.
  4. Opisz nowe i rozwijające się technologie baz danych. Wreszcie przyjrzymy się nowym technologiom baz danych, takim jak bazy danych NoSQL i blockchains.

Przez cały czas będziemy mieli kilku gościnnych wykładowców od ekspertów pracujących w tej dziedzinie. Zobacz stronę harmonogramu, aby uzyskać więcej szczegółów.

Wymagania wstępne CS 50. Będę również zakładać, że jesteś zaznajomiony z Pythonem.

Kto, kiedy, gdzie

Instruktor Tim Pierson | 210 Sudikoff
godziny pracy: większość tygodni we wtorki od 13:30 do 14:30, czwartki od 13:30 do 14:30 (potwierdzić przez kalendarz Canvas), oraz po wcześniejszym umówieniu się. Zobacz link Zoom na Canvas dla wirtualnych spotkań. Asystent Almas Abdibayev
godziny urzędowania: utrzymane na Canvas Wykłady 2-godzinne | MWF 14:10 – 15:15 wschodnia strefa czasowa | Wykłady online będą online i nagrywane w tym semestrze za pomocą Zoom – zobacz Canvas po szczegóły dostępu. Po dołączeniu do spotkania online, proszę wyłączyć kamerę i mikrofon. Jeśli mają Państwo pytania, proszę nacisnąć przycisk „Podnieś rękę” w Zoomie. Jeśli nie odezwę się do Państwa w krótkim czasie, proszę wyłączyć wyciszenie, włączyć kamerę i zapytać. Więcej zasad ustalimy w miarę postępu prac… Nie planuję regularnego korzystania z godzin x, ale czasami mogę z nich korzystać w przypadku opuszczonych zajęć, w celu nadrobienia materiału lub w przypadku opcjonalnych, nieformalnych sesji, aby pracować nad przykładami. Upewnij się, że ten przedział czasowy jest wolny na wypadek, gdybyśmy musieli z niego skorzystać. Często będziemy mieli ćwiczenia w klasie, aby wypróbować nowe koncepcje na żywej bazie danych. Google i StackOverflow będą Twoimi przyjaciółmi, nie wahaj się z nich korzystać (chyba, że otrzymasz inne instrukcje)! Pomoc: Godziny biurowe Godziny biurowe będą również online za pośrednictwem Zoom. Będę dostępny online podczas ogłoszonych godzin biurowych, nawet jeśli nie ma żadnych pytań. Jeśli chciałbyś umówić się na prywatne spotkanie, napisz do mnie, a znajdziemy czas na rozmowę. Pomoc: Slack Oczekuj zaproszenia do kanału Slack po pierwszym dniu zajęć. Gorąco zachęcam do zadawania i odpowiadania na pytania na tym kanale. Ogłoszenia Monitoruj Canvas dla okresowych ogłoszeń dotyczących całego kursu. Podręcznik Database System Concepts, 7th edition, by Silberschatz, Korth, and Sudarshan. Gorąco polecam wersję ebook zamiast wersji papierowej (wersja papierowa nie jest nawet oprawiona – jest to zbiór luźnych kartek!).Podczas gdy książka Silberschatz będzie naszym podstawowym podręcznikiem, a wszystkie przydzielone lektury będą z tego podręcznika, innym przydatnym źródłem jest Database Systems: Design, Implementation, & Management, 13th edition, przez Coronel i Morris. Innym wielkim zasobem jest https://www.mysqltutorial.org.

Ocena

Oceny w tej klasie będą kombinacją projektu semestralnego, kilku zadań laboratoryjnych, jednego egzaminu śródsemestralnego i uczestnictwa w zajęciach. Całkowity wynik co najmniej 60% jest wymagane do zaliczenia tego kursu.

Projekt (40%)

W ciągu semestru będziesz pracował nad projektem związanym z bazą danych, który wybierzesz wraz z trzema innymi studentami. Szczegóły dotyczące wymagań projektu znajdują się tutaj.

Laboratoria (30%)

Będą trzy zadania laboratoryjne (poza Laboratorium 0, które ma na celu jedynie zebranie informacji), które razem stanowią 30% oceny z tego kursu. Punkty za każde laboratorium są następujące:

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

Wymagania dotyczące składania prac laboratoryjnych: Laboratoria są przeznaczone do wykonania poza zajęciami i muszą być złożone elektronicznie za pośrednictwem Canvas przed upływem terminu wskazanego na Canvas. Nawet jeśli laboratorium ma pewne ćwiczenia pisemne, wymagane jest albo wpisanie pliku, albo zeskanowanie pracy pisemnej i przesłanie jej drogą elektroniczną. Aby przesłać dane wyjściowe z programu, należy przesłać skopiowany plik w formacie pdf i/lub zrzut ekranu, w zależności od potrzeb. Dla zwykłego tekstu możesz użyć programu takiego jak TextEdit, NotePad lub Emacs, a nawet Word, ale pamiętaj, aby zapisać go jako pdf. Dla zrzutu ekranu, możesz użyć Podgląd na Mac (w menu „Plik”) lub przycisk PrntScrn w Windows.

Możesz pracować z jednym partnerem nad tymi zadaniami laboratoryjnymi (patrz Współpraca poniżej). Dodatkowo:

  • Jeśli pracowałeś z partnerem, podaj swoje imię i nazwisko oraz nazwisko partnera, lub jeśli pracowałeś sam, podaj „brak partnera” w komentarzu w swoim zgłoszeniu.
  • Jeśli pracowałeś z partnerem i skończyłeś z jednym wspólnym rozwiązaniem, zaznacz to w komentarzu w rozwiązaniu i na zgłoszeniu. Każdy partner powinien przesłać to samo rozwiązanie. The solution will then be graded once with the same grade assigned to both partners.
  • If you worked with a partner but wrote separate code, indicate the collaboration but that you have different submissions. Wskaż to zarówno w kodzie jak i na zgłoszeniu. Każdy z was powinien przesłać swoje własne rozwiązanie, i każdy z was otrzyma osobną ocenę.
  • Zbierz wszystkie pliki z kodem w jeden plik zip i prześlij ten zip, a nie kilka osobnych plików.

Polityka spóźnień Należy przesłać przez Canvas w dniu i o godzinie podanej na Canvas assignment. Kary: < 8 godzin: 10%; < 24 godziny: 20%; < 48 godzin: 40%; więcej: brak zaliczenia.
Dozwolone jest co najwyżej jedno spóźnienie (do 48 godzin) bez kary; nie jest wymagane usprawiedliwienie. Wskaż w swoim zgłoszeniu, że decydujesz się na skorzystanie z darmowej przepustki; nie ma możliwości cofnięcia wyboru. Nie można tego łączyć z karą (np. nie można nałożyć 8-godzinnej kary na 48-godzinną darmową przepustkę). Jeśli pracujesz z partnerem, liczy się to jako darmowa przepustka dla was obojga. Ocenianie Szczegółowe rubryki do oceniania będą dostarczone dla każdego laboratorium.

Egzaminy (20%)

Będzie jeden egzamin śródsemestralny warty 20% oceny końcowej (nie ma końcowego – twój projekt liczy się jako końcowy). Dozwolone jest użycie jednej strony notatki 8.5 x 11 cali do egzaminu, ale nie wolno zawierać odpowiedzi lub kodu z poprzednich egzaminów CS61, chyba że zostały one wyraźnie dostarczone przez instruktora lub część materiału objętego w klasie.

Jeśli masz pytania dotyczące wyniku egzaminu, lub chciałbyś uzyskać ponowną ocenę pytania, zwróć się do TA w ciągu tygodnia od daty zwrotu egzaminu do klasy. Jeśli poprosisz o ponowne ocenienie konkretnego pytania, zastrzegamy sobie prawo do ponownego ocenienia całego egzaminu.

Uczestnictwo w zajęciach (10%)

Większość zajęć będzie miała część praktyczną, gdzie będziemy pracować przez serię problemów na żywej bazie danych. Na koniec tej części zajęć możesz zostać losowo wybrany (z możliwością zamiany) do zaprezentowania swojego rozwiązania. Twoja prezentacja będzie oceniana w następujący sposób:

  • 0: Nic merytorycznego
  • 1: Twoje rozwiązanie wymaga znacznej pracy
  • 2: Poprawne lub w większości poprawne.

Jeśli nie możesz uczestniczyć w zajęciach za pośrednictwem Zoom live, ale zostaniesz losowo wybrany, opublikuj swoje rozwiązanie na Canvas przed następnym okresem zajęć.

Może się zdarzyć, że nigdy nie zostaniesz losowo wybrany do zaprezentowania swojego rozwiązania podczas semestru. W takim przypadku otrzymasz pełny kredyt dla tej części oceny.

Współpraca

Większość nauki w tym kursie pochodzi z wykonywania ćwiczeń programistycznych. Czasami nauka może odbywać się bardziej efektywnie, gdy możesz dyskutować z kimś innym, więc praca z partnerem będzie dozwolona przy zadaniach laboratoryjnych. Możesz pracować wspólnie z jedną osobą na danym laboratorium. Jeśli zdecydujesz się pracować z kimś innym, Ty i Twój partner musicie złożyć to samo wspólne zadanie z obydwoma nazwiskami na nim, i musisz pracować z tą samą osobą dla całego zadania (nie możesz pracować z jedną osobą dla niektórych części zadania i inną osobą dla innych części).

Jeśli pracujesz z partnerem, nadal jesteś odpowiedzialny za zrozumienie całego zadania. Oznacza to, że dzielenie kodu na części, robienie swojej części i nie patrzenie na części partnera nie jest dobrym pomysłem. Możesz się wiele nauczyć, czytając kod partnera i zastanawiając się, jak działa, czy jest poprawny i jak można go ulepszyć. Możesz również wychwycić takie rzeczy, jak słabe lub brakujące komentarze, które mogą kosztować cię punkty za styl, gdy zadanie jest oceniane.

Pracując z partnerem, sugeruję, abyś zapożyczył praktykę z Extreme Programming, metody pisania kodu, którą wiele firm uważa za całkiem skuteczną. Jedna osoba (kierowca) siedzi przy klawiaturze. Druga osoba (nawigator) patrzy na (wirtualny) ekran, gdy kierowca wpisuje tekst, zadając pytania, zgłaszając sugestie i wyłapując błędy. Oboje lepiej zrozumiecie kod, jeśli będziecie go omawiać w trakcie pisania, niż jeśli będziecie go pisać (lub czytać) sami. Regularnie wymieniajcie się, kto jest kierowcą, a kto nawigatorem.

Zwykłą reakcją na ten pomysł jest, „to zajmie dwa razy więcej czasu!”W praktyce jest to zwykle szybsze niż programowanie przez każdą osobę z osobna. Powodem jest to, że błędy są wyłapywane wcześniej, a ilość czasu zaoszczędzonego podczas debugowania z nawiązką rekompensuje brak równoległości w pisaniu kodu. Ponadto, kod ma tendencję do bycia lepiej napisanym. To są powody, dla których ten pomysł został przyjęty w przemyśle.

Nagrywanie online

Będę nagrywał sesje klasowe odbywające się w ciągu 2 godzin na Zoomie i będę zamieszczał te filmy.Moim planem będzie nie nagrywać żadnych godzin biurowych, na pewno nie jeden na jeden, ale też nie małe grupy. Jeśli uznam, że pytanie lub odpowiedź z godzin biurowych byłyby dobre do obejrzenia przez całą klasę, przygotuję osobną notatkę lub wideo, albo włączę je do następnego wykładu. To jest to, co robię zazwyczaj na moich zajęciach. Jeśli organizuję sesję problemową lub X godzinę, na którą zapraszam całą klasę, aby przyszła przygotowana z pytaniami, nagram to, ponieważ jest to w zasadzie sesja klasowa. Ale prawdopodobnie zedytuję to przed zamieszczeniem, aby szybciej można było obejrzeć ponownie

Od Dziekana Wydziału do studentów w sprawie nagrywania sesji zajęć:

(1) Zgoda na nagrywanie kursu i grupowych godzin biurowych

  • a) Potwierdzam moje zrozumienie, że ten kurs i wszelkie powiązane spotkania grupowe z udziałem studentów i instruktora, w tym między innymi zaplanowane i doraźne godziny biurowe i inne konsultacje, mogą być nagrywane w ramach dowolnej platformy cyfrowej używanej do oferowania zdalnego nauczania dla tego kursu;
  • b) Ponadto potwierdzam, że instruktor jest właścicielem praw autorskich do swoich materiałów instruktażowych, których częścią są te nagrania, a rozpowszechnianie tych nagrań w całości lub w części bez uprzedniej pisemnej zgody instruktora może podlegać sankcjom dyscyplinarnym ze strony Dartmouth do wydalenia włącznie;
  • c) Upoważniam Dartmouth i każdego, kto działa w imieniu Dartmouth, do nagrywania mojego udziału i wyglądu na jakimkolwiek nośniku oraz do użycia mojego nazwiska, podobizny i głosu w związku z takim nagraniem; oraz
  • d) Upoważniam Dartmouth i każdego, kto działa w imieniu Dartmouth, do używania, reprodukowania lub rozpowszechniania takiego nagrania bez ograniczeń i restrykcji w jakimkolwiek celu edukacyjnym uznanym za stosowny przez Dartmouth i każdego, kto działa w imieniu Dartmouth.

(2) Wymóg zgody na nagrania jeden na jeden

    Zapisując się na ten kurs, niniejszym potwierdzam, że w żadnych okolicznościach nie będę nagrywać na jakimkolwiek nośniku jakiegokolwiek spotkania jeden na jeden z instruktorem bez uzyskania uprzedniej pisemnej zgody wszystkich uczestniczących w nim osób, i rozumiem, że jeśli naruszę ten zakaz, będę podlegać dyscyplinie ze strony Dartmouth do wydalenia włącznie, jak również wszelkim innym sankcjom cywilnym lub karnym na mocy obowiązującego prawa.

Wymagania technologiczne

Zważywszy na internetowy charakter tego kursu, wymagane jest, aby uczniowie mieli możliwość przesyłania 1 godziny lub mniej treści wideo każdego dnia. Zrobimy co w naszej mocy, aby zaplanować i dostosować się do wszelkich ograniczeń w dostępie do wymaganej technologii. Nie jest dla nas możliwe zaplanowanie wszystkich możliwych ograniczeń technologicznych. Dlatego też prosimy o jak najszybsze poinformowanie nas o przeszkodach, które utrudniają Państwu ukończenie kursu online. Biorąc pod uwagę obecne zakłócenia w łańcuchu dostaw, chcielibyśmy planować tak daleko naprzód, jak to tylko możliwe.

Kodeks honorowy

Kodeks honorowy Dartmouth ma zastosowanie do tego kursu, a zasady akademickiego wykroczenia będą ściśle egzekwowane. Podejrzane przypadki oszukiwania będę zgłaszał Undergraduate Judicial Affairs Officer. Zastrzegam sobie również prawo do wystawienia oceny niedostatecznej za zadanie lub egzamin, jeśli uznam, że zasada honoru została naruszona, niezależnie od ustaleń Komisji ds. If you have questions,ask!

Accessibility Needs

Studenci wnioskujący o niepełnosprawność związanych z zakwaterowania i usług dla tego kursu są zachęcani do zaplanowania telefonu / wideo spotkania ze mną tak wcześnie w semestrze, jak to możliwe. Ta rozmowa pomoże ustalić, jakie wsparcie jest wbudowane w mój kurs online. W celu autoryzacji zakwaterowania, studenci są zobowiązani do konsultacji z Student Accessibility Services (SAS; [email protected]; strona internetowa SAS; 603-646-9900) i przesłanie mi pocztą elektroniczną ich formularza zakwaterowania w SAS. Następnie będziemy pracować razem z SAS, jeśli zakwaterowanie musi być zmodyfikowane w oparciu o środowisko nauki online. Jeśli studenci mają pytania dotyczące tego, czy kwalifikują się do zakwaterowania, powinni skontaktować się z biurem SAS. Wszystkie zapytania i dyskusje pozostaną poufne.

Zdrowie psychiczne

Środowisko akademickie w Dartmouth jest wymagające, nasze semestry są intensywne, a zajęcia nie są jedyną wymagającą częścią twojego życia. Istnieje wiele zasobów dostępnych dla Ciebie na kampusie, aby wspierać Twoje dobre samopoczucie, w tym Twój dziekan studiów licencjackich, Counseling and Human Development, oraz Student Wellness Center.

Obserwacje religijne

Niektórzy studenci mogą chcieć wziąć udział w obserwacjach religijnych, które występują podczas tego semestru akademickiego. Jeśli masz obserwancethat religijny, który koliduje z udziałem w kursie, proszę spotkać się ze mną przed końcem drugiego tygodnia semestru, aby omówić odpowiednie zakwaterowanie.

COVID-19 addendum

Jakkolwiek pandemia COVID-19 już drastycznie zakłóciła ten kurs, ma potencjał, aby spowodować dalszy wpływ osobisty, który może uniemożliwić dalsze zaangażowanie w klasie. Może to być spowodowane zarażeniem się chorobą przez ciebie lub kogoś bliskiego, zwiększonymi obowiązkami rodzinnymi, trudnościami finansowymi lub wpływem na twoje zdrowie psychiczne/emocjonalne.

Zorganizowaliśmy kurs tak, że te zakłócenia niekoniecznie uniemożliwią ci pomyślne ukończenie tego kursu. Po pierwsze, będziemy nagrywać i publikować każdy wykład. Pozwoli to na elastyczne przeglądanie treści kursu. Po drugie, będziemy planować możliwości interakcji na żywo z instruktorem i TA w różnych porach w ciągu tygodnia. Po trzecie, laboratoria zostały przeprojektowane tak, aby można je było wykonać w domu.

W przypadku, gdy jesteś bezpośrednio lub pośrednio dotknięty przez COVID-19 w taki sposób, który wpłynie na twoje wyniki w kursie, konieczne jest, abyś dotarł do instruktora tak szybko, jak to możliwe. Możesz również skontaktować się z dziekanem studiów licencjackich, jeśli byłoby to dla Ciebie bardziej komfortowe. Nie możemy Ci pomóc, jeśli nie wiemy, że jest problem. Naszym priorytetem jest Twoje zdrowie i bezpieczeństwo. Będziemy pracować, aby skontaktować się z odpowiednimi zasobami, aby pomóc. Ponadto, odpowiednie zakwaterowanie (na przykład: przedłużenie terminu i / lub dodatkowe godziny biurowe) zostaną wdrożone.

Podziękowanie

Ten kurs jest ściśle oparty na jednym pierwotnie opracowanym przez Dr. Charlesa Palmera. Jestem głęboko wdzięczny temu doskonałemu edukatorowi za całą jego ciężką pracę i hojną pomoc w tworzeniu tego kursu.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.