CS 61 | Systèmes de bases de données | Printemps 2020

, Author

Exploits d'une maman (de XKCD)https://xkcd.com/327/

Description du cours

ORC. Ce cours étudie la gestion de grands corps de données ou d’informations. Cela comprend des schémas pour la représentation, la manipulation et le stockage de structures d’information complexes ainsi que des algorithmes pour traiter efficacement ces structures et pour récupérer l’information qu’elles contiennent. Ce cours enseignera aux étudiants les techniques d’allocation et de désallocation de l’espace de stockage, de recherche (formulation de requêtes) et de manipulation de grandes quantités de données hétérogènes. On s’attend à ce que les étudiants programment et s’impliquent dans un projet dans lequel ils étudient les aspects importants d’un système de base de données : les façons d’organiser une base de données distribuée partagée par plusieurs ordinateurs ; les transactions qui sont traitées localement et globalement ; les garanties de robustesse des données stockées contre les défaillances ; les garanties de sécurité et d’intégrité des données contre les accès non autorisés ; la confidentialité ; les schémas orientés objet pour les données multimédia ; l’indexation, le hachage, le contrôle de la concurrence, l’exploration de données, l’entreposage de données, les bases de données mobiles et les structures de fichiers de stockage.

Objectifs d’apprentissage L’objectif ultime de ce cours est de vous équiper pour utiliser les données pour prendre des décisions axées sur les données plutôt que de prendre des décisions sur l’intuition ou la conjecture. Après avoir terminé ce cours, vous devriez être en mesure de :

  1. Interroger les bases de données existantes pour obtenir un aperçu. Nous passerons les premières semaines du cours à apprendre le langage standard de requête de base de données appelé langage de requête structuré (aka SQL, aka ‘suite’). Cela vous donnera les outils nécessaires pour interroger les bases de données existantes pour un aperçu des données qu’elles contiennent.
  2. Concevez vos propres bases de données efficaces. Nous passerons les prochaines semaines à examiner comment structurer vos propres bases de données, en disposant les tables et en considérant des facteurs tels que la redondance, la fiabilité et la vitesse.
  3. Comprendre ce qui se passe sous le capot. Ensuite, nous explorerons comment les bases de données fonctionnent, récupérant les données rapidement et avec précision, même avec plusieurs utilisateurs accédant et mettant à jour les données simultanément.
  4. Décrire les technologies de base de données nouvelles et en développement. Enfin, nous examinerons les nouvelles technologies de base de données telles que les bases de données NoSQL et les blockchains.

Tout au long de la formation, nous aurons plusieurs conférenciers invités par des experts travaillant dans le domaine. Voir la page de l’horaire pour plus de détails.

Prérequis CS 50. Je vais également supposer que vous êtes familier avec Python.

Qui, quand, où

Instructeur Tim Pierson | 210 Sudikoff
Heures de bureau : la plupart des semaines mardi 13h30 – 14h30, jeudi 13h30 – 14h30 (confirmer via le calendrier Canvas), et sur rendez-vous. Voir le lien Zoom sur Canvas pour les réunions virtuelles. Assistant d’enseignement diplômé Almas Abdibayev
Heures de bureau : maintenues sur Canvas Conférences 2 heures | MWF 14h10 – 15h15 fuseau horaire de l’Est | Les conférences en ligne seront en ligne et enregistrées ce trimestre en utilisant Zoom – voir Canvas pour les détails d’accès. Lorsque vous rejoignez la réunion en ligne, veuillez éteindre votre caméra et votre microphone. Si vous avez une question, veuillez appuyer sur le bouton « Raise hand » sur Zoom. Si je ne vous appelle pas dans un court laps de temps, veuillez rétablir le son, allumer votre caméra et poser votre question. Nous établirons d’autres règles au fur et à mesure… Je ne prévois pas d’utiliser régulièrement les heures x, mais je peux parfois les utiliser pour les cours manqués, pour rattraper le matériel, ou pour des sessions optionnelles et informelles pour travailler sur des exemples. Assurez-vous de garder ce créneau horaire libre au cas où nous aurions besoin de l’utiliser. Nous ferons fréquemment des exercices en classe pour tester de nouveaux concepts sur une base de données réelle. Google et StackOverflow seront vos amis, n’hésitez pas à les utiliser (sauf indication contraire) ! Aide : Heures de bureau Les heures de bureau seront également en ligne via Zoom. Je serai disponible en ligne pendant les heures de bureau affichées, même s’il n’y a pas de questions. Si vous souhaitez organiser une réunion privée, envoyez-moi un courriel et nous trouverons un moment pour nous parler. Aide : Slack Attendez-vous à recevoir une invitation à un canal Slack après le premier jour de cours. Je vous encourage vivement à y poser des questions et à y répondre. Annonces Surveillez Canvas pour des annonces périodiques concernant l’ensemble du cours. Manuel scolaire Database System Concepts, 7ème édition, par Silberschatz, Korth, et Sudarshan. Je recommande fortement la version ebook au lieu de la version papier (la version papier n’est même pas reliée – c’est une collection de feuilles volantes !). Bien que le livre de Silberschatz sera notre manuel principal, et que toutes les lectures assignées seront tirées de ce manuel, une autre ressource utile est Database Systems : Design, Implementation, & Management, 13ème édition, par Coronel et Morris. Une autre grande ressource est https://www.mysqltutorial.org.

Évaluation

Les notes de ce cours seront une combinaison d’un projet à long terme, de plusieurs travaux de laboratoire, d’un examen de mi-session et de la participation en classe. Une note totale d’au moins 60% est requise pour réussir ce cours.

Projet (40%)

Pendant la durée du trimestre, vous travaillerez sur un projet lié aux bases de données de votre choix avec trois autres étudiants. Les détails des exigences du projet sont ici.

Laboratoires (30%)

Il y aura trois travaux de laboratoire (à part le laboratoire 0 qui est simplement pour recueillir des informations) qui représentent ensemble 30% de la note de ce cours. Les points pour chaque laboratoire sont :

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

Exigences pour les soumissions de laboratoire : Les laboratoires sont conçus pour être réalisés en dehors de la classe et doivent être soumis électroniquement via Canvas avant la date limite indiquée sur Canvas. Même lorsqu’un laboratoire comporte des exercices écrits, vous devez soit taper un fichier, soit scanner votre travail écrit et le soumettre électroniquement. Pour soumettre les résultats de votre programme, soumettez un fichier copié-collé en format pdf et/ou une capture d’écran, selon le cas. Pour le texte brut, vous pouvez utiliser un programme tel que TextEdit, NotePad ou Emacs, ou même Word, mais veillez à l’enregistrer au format pdf. Pour une capture d’écran, vous pouvez utiliser Preview sur Mac (dans le menu « File ») ou le bouton PrntScrn sur Windows.

Vous pouvez travailler avec un partenaire sur ces travaux de laboratoire (voir Collaboration ci-dessous). En outre :

  • Si vous avez travaillé avec un partenaire, incluez votre nom et celui de votre partenaire, ou si vous avez travaillé seul, indiquez « pas de partenaire » dans un commentaire dans votre soumission.
  • Si vous avez travaillé un partenaire et avez fini par avoir une seule solution partagée, indiquez-le dans un commentaire dans la solution et sur la soumission. Chaque partenaire doit soumettre la même solution. La solution sera alors notée une fois avec la même note attribuée aux deux partenaires.
  • Si vous avez travaillé avec un partenaire mais que vous avez écrit un code séparé, indiquez la collaboration mais que vous avez des soumissions différentes. Indiquez-le à la fois dans le code et sur la soumission. Chacun d’entre vous devrait télécharger sa propre solution, et chacun d’entre vous obtiendra une note distincte.
  • Recueillir tous vos fichiers de code dans un seul fichier zip et télécharger ce zip, plutôt qu’un tas de fichiers séparés.

Politique de retard Dû via Canvas à la date et à l’heure indiquées sur le devoir Canvas. Pénalités : < 8 heures : 10% ; < 24 heures : 20% ; < 48 heures : 40% ; plus : aucun crédit.
Vous avez droit à un maximum d’une soumission tardive (jusqu’à 48 heures) sans pénalité ; aucune excuse n’est requise. Indiquez dans votre soumission que vous choisissez d’utiliser votre laissez-passer gratuit ; il n’est pas possible de revenir sur ce choix. Vous ne pouvez pas combiner cette option avec une pénalité (par exemple, vous ne pouvez pas prendre une pénalité de 8 heures en plus du laissez-passer de 48 heures). Si vous travaillez avec un partenaire, cela compte comme un laissez-passer pour vous deux. Notation Des grilles de notation spécifiques seront fournies pour chaque laboratoire.

Examens (20%)

Il y aura un examen intermédiaire valant 20% de la note finale (pas de finale – votre projet compte comme la finale). Vous êtes autorisé à utiliser une page de notes de 8,5 x 11 pouces pour l’examen, mais vous ne devez pas inclure les réponses ou le code des examens antérieurs de CS61, sauf si cela a été explicitement fourni par l’instructeur ou fait partie du matériel couvert en classe.

Si vous avez des questions sur votre score à l’examen, ou si vous souhaitez qu’une question soit réévaluée, consultez votre TA dans un délai d’une semaine à compter de la date à laquelle l’examen a été rendu à la classe. Si vous demandez une réévaluation d’une question particulière, nous nous réservons le droit de réévaluer tout votre examen.

Participation à la classe (10%)

La plupart des classes auront une partie pratique où nous travaillerons sur une série de problèmes sur une base de données en direct. À la fin de cette partie du cours, vous pourrez être choisi au hasard (avec remplacement) pour présenter votre solution. Votre présentation sera notée comme suit :

  • 0 : Rien de substantiel
  • 1 : Votre solution nécessite un travail important
  • 2 : Correcte ou principalement correcte.

Si vous ne pouvez pas assister au cours via Zoom live, mais que vous êtes sélectionné au hasard, postez votre solution sur Canvas avant la prochaine période de cours.

Il se peut que vous ne soyez jamais sélectionné au hasard pour présenter votre solution pendant le trimestre. Dans ce cas, vous recevrez un crédit complet pour cette partie de la note.

Collaboration

Une grande partie de l’apprentissage dans ce cours vient de la réalisation des exercices de programmation. Parfois, l’apprentissage peut être plus efficace lorsque vous pouvez discuter avec quelqu’un d’autre, donc le travail avec un partenaire sera autorisé pour les travaux de laboratoire. Vous pouvez travailler conjointement avec une autre personne sur un laboratoire donné. Si vous choisissez de travailler avec quelqu’un d’autre, vous et votre partenaire devez soumettre le même devoir conjoint avec les deux noms dessus, et vous devez travailler avec la même personne pour l’ensemble du devoir (vous ne pouvez pas travailler avec une personne pour certaines parties d’un devoir et une autre personne pour d’autres parties).

Si vous travaillez avec un partenaire, vous êtes toujours responsable de la compréhension de l’ensemble du devoir. Cela signifie que diviser le codage en morceaux, faire votre partie, et ne jamais regarder les parties de votrepartenaire n’est pas une bonne idée. Vous pouvez apprendre beaucoup en lisant le code de votre partenaire et en déterminant comment il fonctionne, s’il est correct et comment il pourrait être amélioré. Vous pouvez également attraper des choses comme des commentaires pauvres ou manquants qui pourraient vous faire perdre des points de style lorsque le devoir est noté.

Lorsque vous travaillez avec un partenaire, je vous suggère d’emprunter une pratique de la programmation extrême, une méthode d’écriture de code que de nombreuses entreprises trouvent assez efficace. Une personne (le conducteur) s’assoit au clavier. L’autre personne (le navigateur) regarde l’écran (virtuel) pendant que le conducteur tape, pose des questions, fait des suggestions et détecte les erreurs. Vous comprendrez tous deux mieux le code si vous en discutez au fur et à mesure qu’il est écrit que si vous l’écrivez (ou le lisez) tout seul. Échangez régulièrement qui est conducteur et qui est navigateur.

La réaction habituelle à cette idée est « ça va prendre deux fois plus de temps ! »
En pratique, c’est généralement plus rapide que si chaque personne programme seule. La raison est que les erreurs sont détectées plus tôt, et la quantité de temps sont économisés lors du débogage plus que compense le manque de parallélisme dans l’écriture du code. En outre, le code a tendance à être mieux écrit. Ce sont les raisons pour lesquelles cette idée a été adoptée dans l’industrie.

Enregistrement en ligne

J’enregistrerai les sessions de classe tenues pendant les 2 heures sur Zoom et je posterai ces vidéos.Mon plan sera de ne pas enregistrer les heures de bureau, certainement pas en tête-à-tête, mais pas les petits groupes non plus. Si je pense qu’une question ou une réponse provenant des heures de bureau serait bonne à voir pour toute la classe, je préparerai une note ou une vidéo séparée, ou je l’inclurai dans le prochain cours. C’est ce que je fais normalement dans mes cours. Si j’organise une session de problèmes ou une heure X où toute la classe est invitée à venir préparée avec des questions, je l’enregistrerai car il s’agit essentiellement d’une session de cours. Mais je vais probablement l’éditer avant de le poster pour qu’il soit plus rapide pour vous de le revoir

Du doyen de la faculté aux étudiants concernant l’enregistrement des séances de cours :

(1) Consentement à l’enregistrement du cours et des heures de bureau de groupe

  • a) J’affirme ma compréhension du fait que ce cours et toute réunion de groupe associée impliquant des étudiants et l’instructeur, y compris, mais sans s’y limiter, les heures de bureau prévues et ad hoc et d’autres consultations, peuvent être enregistrés au sein de toute plateforme numérique utilisée pour offrir un enseignement à distance pour ce cours ;
  • b) J’affirme en outre que l’instructeur est propriétaire des droits d’auteur de son matériel pédagogique, dont ces enregistrements constituent une partie, et la distribution de l’un de ces enregistrements, en tout ou en partie, sans le consentement écrit préalable de l’instructeur, peut faire l’objet de mesures disciplinaires de la part de Dartmouth pouvant aller jusqu’à l’expulsion ;
  • c) j’autorise Dartmouth et toute personne agissant au nom de Dartmouth à enregistrer ma participation et mon apparence sur n’importe quel support, et à utiliser mon nom, ma ressemblance et ma voix en relation avec un tel enregistrement ; et
  • d) j’autorise Dartmouth et toute personne agissant au nom de Dartmouth à utiliser, reproduire ou distribuer un tel enregistrement sans restriction ni limitation pour tout objectif éducatif jugé approprié par Dartmouth et toute personne agissant au nom de Dartmouth.

(2) Exigence de consentement aux enregistrements individuels

    En m’inscrivant à ce cours, j’affirme par la présente que je ne ferai en aucun cas un enregistrement, sur quelque support que ce soit, d’une rencontre individuelle avec l’instructeur sans avoir obtenu le consentement écrit préalable de tous les participants, et je comprends que si je viole cette interdiction, je serai soumis à des mesures disciplinaires de la part de Dartmouth pouvant aller jusqu’à l’expulsion, ainsi qu’à toute autre sanction civile ou pénale en vertu de la loi applicable.

Exigences technologiques

Compte tenu de la nature en ligne de ce cours, il est requis que les étudiants aient la capacité de diffuser 1 heure ou moins de contenu vidéo chaque jour. Nous ferons de notre mieux pour planifier et accommoder toute limitation de votre accès à la technologie requise. Il nous est impossible de prévoir toutes les contraintes technologiques possibles. Par conséquent, veuillez nous informer dès que possible des obstacles que vous rencontrez pour suivre le cours en ligne. Compte tenu des perturbations actuelles dans la chaîne d’approvisionnement, nous aimerions planifier aussi longtemps à l’avance que possible.

Code d’honneur

Le code d’honneur de Dartmouth s’applique à ce cours, et les politiques de mauvaise conduite académique seront strictement appliquées. Je signalerai les cas présumés de tricherie à l’Officier des affaires judiciaires de premier cycle. Je me réserve également le droit d’attribuer une mauvaise note pour un devoir ou un examen si j’estime que le principe d’honneur a été violé, quelle que soit la conclusion du Comité des normes. Si vous avez des questions, posez-les!

Besoins d’accessibilité

Les étudiants qui demandent des aménagements et des services liés à leur handicap pour ce cours sont encouragés à planifier une réunion téléphonique/vidéo avec moi le plus tôt possible dans le trimestre. Cette conversation permettra d’établir quels soutiens sont intégrés dans mon cours en ligne. Pour que les aménagements soient autorisés, les étudiants doivent consulter les Student Accessibility Services (SAS) ; [email protected] ; site Web des SAS ; 603-646-9900) et de m’envoyer par courriel leur formulaire d’adaptation des SAS. Nous travaillerons ensuite ensemble avec les SAS si des aménagements doivent être modifiés en fonction de l’environnement d’apprentissage en ligne. Si les étudiants se demandent s’ils peuvent bénéficier d’aménagements, ils doivent contacter le bureau des SAS. Toutes les demandes de renseignements et les discussions resteront confidentielles.

Santé mentale

L’environnement universitaire à Dartmouth est stimulant, nos trimestres sont intensifs et les cours ne sont pas la seule partie exigeante de votre vie. Il y a un certain nombre de ressources disponibles sur le campus pour soutenir votre bien-être, y compris votre doyen de premier cycle, le conseil et le développement humain, et le centre de bien-être des étudiants.

Observations religieuses

Certains étudiants peuvent souhaiter prendre part à des observances religieuses qui ont lieu pendant ce trimestre universitaire. Si vous avez une observance religieuse qui entre en conflit avec votre participation au cours, veuillez me rencontrer avant la fin de la deuxième semaine du trimestre pour discuter des aménagements appropriés.

Ajout COVID-19

Alors que la pandémie de COVID-19 a déjà drastiquement perturbé ce cours, elle a le potentiel d’entraîner d’autres impacts personnels qui pourraient vous empêcher de poursuivre votre engagement dans le cours. Cela peut être dû à la contraction de la maladie par vous ou un être cher, à des responsabilités familiales accrues, à des difficultés financières ou à des impacts sur votre santé mentale/émotionnelle.

Nous avons structuré le cours de manière à ce que ces perturbations ne vous empêchent pas nécessairement de suivre ce cours avec succès. Tout d’abord, nous enregistrerons et posterons chaque cours. Cela permettra un visionnement flexible du contenu du cours. Deuxièmement, nous prévoyons des possibilités d’interaction en direct avec l’instructeur et l’assistant technique à divers moments de la semaine. Troisièmement, les laboratoires ont été repensés afin qu’ils puissent être complétés à la maison.

Dans l’éventualité où vous seriez directement ou indirectement affecté par COVID-19 d’une manière qui affecterait votre performance dans le cours, il est impératif que vous contactiez l’instructeur dès que possible. Vous pouvez également vous adresser à votre doyen de premier cycle si cela vous met plus à l’aise. Nous ne pouvons pas vous aider si nous ne savons pas qu’il y a un problème. Notre première priorité est votre santé et votre sécurité. Nous nous efforcerons de vous mettre en contact avec les ressources appropriées pour vous aider. En outre, des aménagements appropriés (par exemple : prolongation des délais et/ou heures de bureau supplémentaires) seront mis en place.

Reconnaissance

Ce cours est étroitement basé sur un cours initialement développé par le Dr Charles Palmer. Je suis profondément redevable à cet excellent éducateur pour tout son travail et son aide généreuse dans la création de ce cours.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.