CS 61|データベースシステム|2020年春

, Author

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

Course description

ORC. このコースでは、大規模なデータや情報の管理について研究します。 これには、複雑な情報構造の表現、操作、保存のためのスキームと、これらの構造を効率的に処理し、それらが含む情報を検索するためのアルゴリズムが含まれます。 このコースでは、ストレージの割り当てと解放、検索(クエリー作成)、および大量の異種データの操作に関するテクニックを学習する。 具体的には、複数のコンピュータで共有される分散データベースの構成方法、ローカルおよびグローバルに処理されるトランザクション、保存データの障害に対する堅牢性の保証、不正アクセスに対するセキュリティとデータの完全性の保証、プライバシー、マルチメディアデータのオブジェクト指向スキーム、インデックス付け、ハッシュ、同時実行制御、データマイニング、データウェアハウス、モバイルデータベース、ストレージファイル構造などを学習し、データベースシステムの主要部分をプログラミングしてプロジェクトに関与することが期待されている。

学習目標 このコースの最終目標は、直感や推測で意思決定するのではなく、データを使ってデータ駆動型の意思決定ができるようになることである。 このコースを修了すると、以下のことができるようになります。

  1. 既存のデータベースに問い合わせを行い、洞察を得ることができる。 コースの最初の数週間は、構造化問い合わせ言語(Structured Query Language、別名「SQL」、「続編」)と呼ばれる標準的なデータベース問い合わせ言語を学習します。 これにより、既存のデータベースに問い合わせを行い、それらが保有するデータに対する洞察を得るために必要なツールを得ることができます。
  2. 自分で効率的なデータベースを設計する。 これから数週間かけて、自分自身のデータベースをどのように構成するか、テーブルをレイアウトし、冗長性、信頼性、速度などの要素を検討します。
  3. フードの下で何が起こっているのかを理解する。 次に、複数のユーザーが同時にデータにアクセスし、更新しても、データを迅速かつ正確に取得するデータベースの動作について探ります。 最後に、NoSQLデータベースやブロックチェーンなどの新しいデータベース技術について見ていきます。

全体を通して、この分野で活躍する専門家から数名のゲスト講師をお招きする予定です。 詳細はスケジュールページをご覧ください。

前提条件 CS 50。 また、Pythonに慣れていることを前提とします。

誰が、いつ、どこで

講師 Tim Pierson | 210 Sudikoff
オフィスアワー:ほとんどの週 火 1:30 pm – 2:30 pm, 木 1:30 – 2:30 (Canvas calendarで確認), 予約制です。 バーチャルミーティングについては、CanvasのZoomリンクを参照してください。 大学院生アシスタント Almas Abdibayev
office hours: maintained on Canvas Lectures 2-hour | MWF 2:10 pm – 3:15 pm Eastern time zone | Online Lectures will be online and recorded using Zoom – see Canvas for access details. オンラインミーティングに参加する際は、カメラとマイクをオフにしてください。 質問がある場合は、Zoomの「挙手」ボタンを押してください。 短時間のうちに私が声をかけない場合は、ミュートを解除し、カメラの電源を入れ、質問してください。 その他のルールは追々考えていきますが…。 Xアワーを定期的に使う予定はありませんが、欠席した授業や教材のキャッチアップ、例題を解くためのオプションのインフォーマルなセッションに使うことはあります。 この時間帯を使う必要がある場合に備えて、この時間帯は必ず空けておいてください。 新しいコンセプトを実際のデータベースで試すために、授業内で頻繁に演習を行います。 GoogleとStackOverflowはあなたの味方です、ためらわずに使ってください(特に指示がない限り)。 ヘルプ オフィスアワー オフィスアワーは、Zoomを使ったオンラインでも行われます。 質問がない場合でも、掲示されたオフィスアワーの間は、オンラインで対応します。 個人的な面談を希望する場合は、メールをいただければ、時間を調整します。 助けてください。 Slack 授業初日以降にSlackチャンネルに招待されることを期待しています。 そこで質問したり、答えたりすることを強くお勧めします。 アナウンスメント キャンバスで定期的にコース全体のアナウンスがあります。 教科書 データベースシステムの概念、第7版、Silberschatz, Korth, and Sudarshan著。 紙媒体ではなく、電子書籍版を強くお勧めします(紙媒体は製本すらされておらず、ルーズリーフの集合体です!)。Silberschatzの本が主な教科書で、すべての課題図書はこの教科書から読みますが、もう一つ有用な資料としてDatabase Systemsがあります。 また、CoronelとMorrisによるDatabase Systems: Design, Implementation, & Management, 13th editionも有用です。 また、https://www.mysqltutorial.orgも素晴らしいリソースです。

Assessment

このクラスの成績は、期間限定のプロジェクト、いくつかの実験課題、中間試験、そして授業への参加を組み合わせて評価されます。 合格には、合計で60%以上のスコアが必要です。

Project (40%)

学期中、他の3人の学生と共に、自分で選んだデータベース関連のプロジェクトに取り組みます。 プロジェクトの要件はこちらをご覧ください。

Labs (30%)

3つのラボ課題(単に情報を収集するラボ0は別として)があり、合計でこのコースの成績の30%を占めます。 各ラボの点数は以下の通りです。

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

ラボ提出のための条件。 ラボは授業外で完結するように設計されており、Canvasに示された期限までにCanvas経由で電子的に提出する必要があります。 また、実験に文章による演習がある場合でも、文章をファイルに打ち込むか、スキャンして電子的に提出することが求められます。 プログラムからの出力を提出する場合は、コピーペーストしたpdf形式のファイルやスクリーンショットを適宜提出すること。 テキストファイルの場合は、TextEdit、NotePad、Emacsなどのプログラム、またはWordを使用できますが、必ずpdf形式で保存してください。 スクリーンショットには、MacではPreview(”File “メニュー)、WindowsではPrntScrnボタンを使用できます。

これらのラボの課題では、1人のパートナーと一緒に作業することができます(以下の「共同作業」を参照)。 また、

  • パートナーと一緒に作業した場合は、自分の名前とパートナーの名前を記載するか、一人で作業した場合は、提出物のコメントで「パートナーなし」と記載してください。 各パートナーは同じ解答を提出する必要があります。 ソリューションは、両方のパートナーに割り当てられた同じ評点で一度評価されます。
  • パートナーと一緒に作業したが、別々のコードを書いた場合、コラボレーションを示しますが、異なる提出物を持っていることを示します。 コードと提出物の両方にそのことを明記してください。 各自が自分のソリューションをアップロードする必要があり、各自が別々の成績を得ます。
  • あなたのすべてのコードファイルを単一の zip ファイルに収集し、別々のファイルの束ではなく、その zip をアップロードします。

遅延ポリシー キャンバスの課題に記載されている日付と時刻に、キャンバス経由で提出します。 罰則があります。 < 8時間。 < 8時間:10%、< 24時間:20%、< 48時間。 40%、それ以上:ノークレジット
48時間以内の遅刻は1回までペナルティなし、言い訳は不要です。 提出時にフリーパスの使用を選択したことを明記し、選択の取り消しはできません。 フリーパスとペナルティを併用することはできません(例:48時間のフリーパスに8時間のペナルティを上乗せすることはできません)。 パートナーがいる場合は、2人分のフリーパスとしてカウントされます。 成績評価 各研究室の具体的な成績評価表が提供されます。

試験(20%)

期末成績の20%に相当する中間試験が1回あります(期末試験はありません-あなたのプロジェクトが期末試験としてカウントされます)。 試験には、8.5×11インチのノートページを使用することができますが、講師から明示的に提供されたもの、または授業で扱った内容の一部を除き、過去のCS61試験の解答やコードを含めてはいけません。

試験のスコアについて質問がある場合、または問題の再採点を希望する場合は、試験が返却された日から1週間以内にTAに相談してください。

授業への参加(10%)

ほとんどの授業では、実際のデータベース上で一連の問題を解くハンズオンが行われます。 授業の最後に、あなたの解決策を発表するためにランダムに選ばれるかもしれません(入れ替えあり)。 あなたのプレゼンテーションは以下のように評価されます。

  • 0: 特になし
  • 1: 解答に大きな作業が必要
  • 2: 正しい、または主に正しい

Zoom Live でクラスに出席できない場合、ランダムに選ばれた人は、次のクラスの授業前にキャンバスに自分のソリューションを投稿してください。 その場合、成績のこの部分の全単位を受け取ります。

コラボレーション

このコースでの学習の多くは、プログラミングの演習を行うことから生まれます。 このコースでは、学習の多くはプログラミングの練習をすることから始まります。 そのため、ラボの課題ではパートナーとの共同作業が認められています。 他の人と一緒に作業することを選択した場合、あなたとパートナーは両方の名前が記載された同じ共同課題を提出しなければならず、課題全体について同じ人と作業しなければなりません(課題のいくつかの部分について1人の人と作業し、他の部分について別の人と作業することはできません)

パートナーと作業する場合、課題全体を理解する責任がまだあります。 つまり、コーディングをバラバラに分け、自分のパートを行い、パートナーのパートを見ないというのは良いアイデアではありません。 パートナーのコードを読んで、それがどのように動くのか、正しいのか、どのように改善すればよいのかを理解することで、多くのことを学ぶことができます。

パートナーと一緒に作業するときは、多くの企業が非常に効果的だと感じているコードを書く方法であるエクストリーム・プログラミングから練習方法を借りることを提案します。 一人(ドライバー)がキーボードの前に座る。 もう一人(ナビゲーター)は、ドライバーのタイプに合わせて(仮想)スクリーンを見て、質問したり、提案したり、エラーをキャッチしたりします。 一人でコードを書く(読む)より、書きながら議論する方が、二人ともコードをよりよく理解することができます。 5090>

このアイデアに対する通常の反応は、「それだと2倍時間がかかる!」ですが、実際には各自が単独でプログラミングするよりも速いことがほとんどです。 その理由は、エラーが早く発見され、デバッグにかかる時間が短縮されるため、コード作成における並列性の欠如を補って余りあるものだからです。 また、コードもより良く書かれる傾向にあります。

オンライン録画

2時間の授業はZoomで録画し、そのビデオを掲載する予定です。 オフィスアワーでの質問や回答がクラス全体に見せた方が良いと思った場合は、別途ノートやビデオを用意するか、次の講義で取り上げる予定です。 これは私の授業で普通にやっていることです。 問題集やXアワーを開催して、クラス全員が質問を用意してくるような場合は、本来は授業なので録画します。 ただ、投稿する前に編集して、再視聴が早くなるようにすると思います

学部長より学生へ授業録画について。

(1) コースおよびグループオフィスアワーの録画への同意

  • a) 私は、このコースおよび学生と講師が関わる関連グループミーティング(予定および臨時のオフィスアワーやその他の相談を含むがこれに限らない)が、このコースで遠隔授業を行うために用いられるあらゆるデジタルプラットフォームで録画される場合があるという理解を確認します。
  • b) 私はさらに、これらの録画が一部を構成する教材の著作権は講師が所有しており、講師の書面による事前承諾なしにこれらの録画の全体または一部を配布した場合、退学を含むダートマス大学の懲罰の対象となりうることを確認します。
  • c) 私は、DartmouthおよびDartmouthを代理する者が、私の参加および出演をあらゆる媒体で記録し、かかる記録に関連して私の名前、肖像、および声を使用することを許可する。
  • d) 私は、DartmouthおよびDartmouthを代理する者が適切と考える教育目的のために、制限なくかかる記録を使用、再生、または配布することを許可する。

(2) 1対1の録音に対する同意の要件

    このコースに登録することにより、私はいかなる状況においても、参加者全員の書面による事前同意を得ることなく、講師との1対1の会議をいかなる媒体で録音しないことを確認し、この禁止事項に違反すると、適用法に基づく他の民事または刑事罰とともに、退学まで含めたDartmouthによる処罰の対象となることを理解した上で、本書を提出します。

Technology requirements

このコースはオンラインであるため、毎日1時間以下のビデオコンテンツをストリーミングできることが要求されます。 私たちは、受講生が必要な技術へのアクセスに制限がある場合、その制限に対応するために最大限の努力をいたします。 しかし、すべての技術的な制約を考慮することは不可能です。 したがって、オンラインコースを修了するためにどのような障害があるのか、できるだけ早くお知らせください。

Honor code

Dartmouth’s honor code applies to this course, and academic misconduct policies will be strictly enforcement.このコースには、ダートマスの名誉コードが適用されます。 不正行為の疑いがある場合は、学部司法担当官に報告します。 また、基準委員会の判断にかかわらず、名誉原則に違反したと判断した場合、課題や試験に不合格点をつける権利を留保します。 質問がある場合は、尋ねてください!

Accessibility Needs

このコースで障害関連の宿泊施設やサービスを希望する学生は、学期のできるだけ早い段階で私と電話/ビデオミーティングをすることをお勧めします。 この会話により、私のオンラインコースにどのようなサポートが組み込まれているかを確認することができます。 このコースの受講を許可するためには、学生は学生支援課(SAS)に相談する必要があります。 [email protected]; SAS website; 603-646-9900) と、SAS accommodation formをメールで送ってください。 その後、オンライン学習環境に基づいて、アコモデーションを修正する必要がある場合は、SASと一緒に対応します。 もし、学生がアコモデーションを受ける資格があるかどうか疑問がある場合は、SASのオフィスに連絡してください。

Mental Health

ダートマスの学問環境は厳しく、学期は集中的で、授業だけがあなたの生活の中で厳しい部分というわけではありません。 学部の学部長、Counseling and Human Development、Student Wellness Centerなど、キャンパスにはあなたの健康をサポートする多くのリソースがあります。

宗教上の行事

この学期に行われる宗教上の行事に参加したい学生もいるかもしれません。

COVID-19 addendum

COVID-19の流行は、すでにこのコースを大幅に中断していますが、さらに個人的な影響をもたらす可能性があり、クラスへの参加を続けることができなくなる可能性があります。 これは、あなたやあなたの愛する人がこの病気にかかったり、家族への責任が増えたり、経済的な問題が生じたり、精神的/情緒的な健康に影響が出たりすることが原因かもしれません。

私たちは、これらの混乱が必ずしもこのコースをうまく修了できないように、コースを構成しました。 まず、各講義を録画して掲載します。 これにより、コースの内容を柔軟に閲覧することができます。 第二に、講師やTAとのライブ・インタラクションの機会を、一週間のうち様々な時間帯に設定します。 5090>

万が一、COVID-19によって直接的または間接的に影響を受け、コースのパフォーマンスに影響を与えるようなことがあれば、できるだけ早く講師に連絡することが不可欠です。 また、より快適であるならば、学部長に連絡を取ることもできます。 私たちは、問題があることを知らなければ、あなたを支援することはできません。 私たちの最優先事項は、あなたの健康と安全です。 私たちは、あなたを支援するための適切なリソースと連絡を取るよう努めます。 また、適切な対応(例:締め切りの延長やオフィス時間の延長)を実施します。

謝辞

このコースは、もともとチャールズ・パーマー博士によって開発されたものに密接に基づいたものである。 このコースを作るにあたり、この優れた教育者の努力と惜しみない援助に深く感謝している。

コメントを残す

メールアドレスが公開されることはありません。