![見出し画像](https://assets.st-note.com/production/uploads/images/56002605/rectangle_large_type_2_4b5a4bf81113bc51d83700f5770a5e8a.png?width=1200)
無償のプログラミング入門講座CS50xをやってみる Week7
Week7は機械翻訳かと思ってたら今日日本語字幕来てた。ありがたい。ありがたい。
— なにがし (@72gashi) July 2, 2021
CS50 2020 Week7 SQL(日本語字幕付) https://t.co/jyClOOowZB @YouTubeより
7月2日に公開されたばかりの日本語字幕付きの動画を見ることができました。機械翻訳は少しわかり辛いのでありがたかったです。
全体(8h)
動画では、CSVをPythonでSQLite3のデータベースに読み込んだりするんですが、課題はどれもSQLを書くだけの問題だけだったのがちょっと残念でした。私は、たまにしかSQLを触らないので課題は良い練習になりました。特に課題の中でIMDbのデータセットを使った「Movies」と、ちょっとした探偵気分になれる「Fiftyville」は非常に面白かったです。そして今週で全体の2/3が終了。早いものです。
レクチャー動画(3h)
Week6が予定よりも早く終わったので、前週の金曜にNoteで予習をして、金曜に公開された動画を土日で見ることができました。動画で紹介されている好きなTV番組のCSVをダウンロードして実際に触ってみようとしたんですが、本来514レコードあるはずのファイルがダウンロードしてみたら57レコードしかなかったので諦めました。あれは一体何だったんだろう。
動画を見ているとループ一つとってもPythonのすばらしさが分かります。私は入門者にはPythonがとっつきやすいと思っているんですが、ここまで便利だと逆にローレベルなところで躓くんじゃないかと不安になるレベルです。
Lab 7 - Songs(0.3h)
曲とそれに付随する情報が入ったデータベースが提供されるので、求められる結果を表示する「SQL文」を書く問題。慣れているわけではないものの、SQLは仕事で使うこともあるので比較的簡単にできました。
もしかしたらレクチャー動画で言ってたかもしれないけど、「sqlite」から抜けるコマンドが分からなくてちょっと戸惑いました。ちなみに抜けるコマンドのは「.quit」です。
Problem Set 7 - Movies(2h)
IMDbのデータベースを使ってSQL文を書く問題、それほど映画を見るわけではないですが、IMDbにはアカウントを持っていて結構好きなサイトなので、思いのほか楽しくて関係ないクエリを書いたりしました。後半はちょっと迷う問題もあり、テーブルとSelect文の結果を内部結合とかあまり使ったことがなかったので面白かったです。
ちなみに元の文章が間違ってるんだと思うんですが、(おそらく)正しいSQLを書いても問題文に書かれているヒントの「この回答はXXX件になります」と合いませんでした。ちなみに提出は問題なく通過したのでSQLは合っているんだと思います。
Problem Set 7 - Fiftyville(2.5h)
Fiftyvilleで起こったCS50duck(下図)の盗難事件をデータベースを基に解決していく問題。
最初は犯行が行われた日付しかわかっていない状態でスタートするんですが、どんどん新しい情報が分かって犯人を突き止めるのは非常に面白かったです。これはSQLを楽しく学習できるのでCS50受けてない人にもおすすめです。特に詰まることもなく作業してたんですが、SQLに慣れていないのと、クエリの実行目的を英作文しないといけないので、2時間半ほどかかりました。クエリ自体は10クエリ書けば回答がわかりました。