UoPeople CS1104の振り返り

どうも、僕はアメリカのオンラインで学べる大学、University Of the People (UoPeople)で Computer Science の社会人学生をやっている30代のおじさんです。
UoPeopleに入学してもうすぐ一年経とうとしていますが、ちょうど来期の履修科目の選択時期に差し掛かっているタイミングもあり、普段大変大変お世話になっている、Twitter でつながった同じUoPeople学生コミュニティの皆さんの少しでも参考になればと思い、記憶が薄らいでいる中でかなりざっくりではありますが前期受講した以下のコースの振り返りをしてみようと思います。

CS1104 - Computer Systems
CS2205 - Web Programming 1


今回はひとまずCS1104について書いてみます。CS2205はこの記事が終わったら書こうかと。

CS1104 - Computer Systems

このコースはざっくり言うと、CPU やメモリについて詳しく学びます。
難易度はそこそこ高かったと記憶していますが、個人的感想ですがCS1103の方がハードル高かったように感じます。そして、THE CS 科目という印象でした。
CSを学ぶために入学した私にとって、一番ワクワクしたコースでした。
各 Unit のテキスト量はそこそこあり、70-100 ページくらいだった記憶があります。


Unit 1 - 2 あたり

論理回路の基礎について学習します。
AND、OR、NOT、XOR、NAND や加算器、減算器などの種類や、
真理表、1の補数や 2の補数、Binaryの足し算など
スタイラスペンを購入してPC上でお絵描きしながら理解に努めていました。
//NOT、AND、OR ゲート (回路) を組み合わせたお絵描きと演算の様子

画像1

//真理表のお絵描きの様子

画像8


Unit 3 - 5 あたり


クロック同期とはなんぞや、RAMの詳細、現代の基本的なコンピュータアーキテクチャとされる ノイマン型コンピュータ、
メモリやCPUのデータ処理の流れ、レジスタの種類とその役割などについて学習しました。

画像3

画像4

画像5

またこのあたりから Logisim という論理回路のデータ入力/出力のシミュレーション ツールを使った課題が出るようになり、Logisim とお友達になりました。クロック同期などのシミュレーションもでき、遊びながら学習できたのはモチベーション維持につながりました。

画像2



Unit 6 - 8 


このあたりからは、アセンブリ言語を中心に学習してきました (はずです)。
16bit レジスタをお題に、アセンブリ (.asm) ファイルを作成したり、アセンブリからアセンブラを使ってマシンコード (バイナリ) に変換したりと個人的に以前から気になっていたけどどこか違う世界の話しだと思っていたアセンブリ言語の基礎について学ぶことができました。

    //while loop をアセンブリ言語 (.asm) にせよ、に取り組む様子

画像6

このあたりからは CPU内やメモリの各レジスタのデータ処理の流れをGUIで可視化できるCPU Emulatorを多用してお遊びしていました (課題でもあります)。

//作成した .asm ファイルをCPU Emulatorで読み込んで実行している様子

画像7


終わりに

ざっくりとですがこのような流れで進んでいきました。
クラスメイトたちは超絶優秀な生徒が多く、ソフトウェアエンジニアなどプロのプログラマが多い印象でした。生徒は米国の他、イタリアなどヨーロッパの生徒が多かったです。時差的に日本の方が進んでいるのでDiscussion Forumで早めに投稿することもあったのですが、早めに投稿すると大変ありがたいコメントや違う観点からのフィードバックをもらえる機会が多々ありました。
Graded Quiz についてはSelf Quizをしっかりやってればそこそこ大丈夫だったはずで、Final Quiz を目前にしてAを狙える位置にいました。
これは余裕かなぁなんて思いながら軽い気持ちで受けたFinal Quizでやらかしてしまい、Bで着地する結果に。Self Quizで出題された内容はちゃんと理解して各Unitの復習に時間をしっかり充てることの大切さを思い知らされました。
Final Quizは残念な結果に終わり、最終GradeもBと、まぁ中途半端に終わってしまいましたが、良い教訓になりましたし、受講前と後とでは、知識量は大分増えたしスキルアップにつながったと感じています。

この記事が気に入ったらサポートをしてみませんか?