見出し画像

2022 春セメスター(前半)の振り返り

2022年春セメスターももう半分が過ぎ、Mid-Term課題まで終わったので前半の振り返りをしたいと思います。

今セメスターでは
Object-Oriented Programming
Databases, Networks and the Web
Computer Security
Software Design and Development
の4科目になります。

Object-Oriented Programming

オブジェクト指向プログラミングについて理解を深める科目で言語はC++です。この科目は珍しくわかりやすく(?)割と丁寧だと思いますが、仮想通貨取引所のシュミレーターみたいなのを作っていくのでそもそも取引所がどういう仕組みなのかを知る必要があり中々大変でした。更に私自身C++は全くの未経験だったのでこの授業を受ける前にまずはUdemyコースを受けました。

このコースは初心者向けでかなり細かく説明してくれるので良かったです。授業始まる前に完走してやると思いましたがさすがに無理な量でした。授業でわからなかったり、モダンな書き方を知りたい場合に確認する辞書的な感じで使ってます。

あとはこれも授業と併用で読みましたがとてもよかったです。特にメモリやポインタの説明はこれで理解力を深めました。個人的に筆者のキレッキレなコメントも好きでした。

Mid-Termは授業で作った仮想通貨取引所のシュミレーターを元に、Advisor Botを作るという内容で、何故PythonでやるようなことをC++でやっているのだろうという疑問はありましたが、平均値や需要予測の手法を使って価格を予測するcommandを実装しました。

Databases, Networks and the Web

この授業ではwebの仕組みからNode.js、データベースの仕組み、MySQLを学びました。とても濃い内容で、雰囲気でwebをやっていた私からしたら3層アーキテクチャもなんとなくで理解していたし、DNSなんか聞いたことありますねくらいだったのでめちゃくちゃ勉強になりました。データベースは無知すぎて英語で理解することに限界を感じた時もありましたが、会社のつよつよエンジニアの方達が小テストを一緒にレビュー解説して下さり、なんとか理解することができました。圧倒的感謝🙏

Mid-Termではスマート家電を登録/削除したり、ステータスを操作できるwebアプリを作りました。要件がある程度決まってるのでそのpdfを元にデザイン、DB設計、実装を行っていきました。

デザインはFigmaで作成

これはejs/pugとExpres、MySQLを使用して開発する必要がありましたがやっぱり自分でデザインを考えてコードを書くのは楽しいなと思いました。

Computer Security

この授業ではまずマルウェアの種類や実際に起きた過去のサイバー攻撃に関する説明がありました。会社でよくあるセキュリティ研修の100倍は勉強になりました。

次は暗号化に関するトピックで、GithubのSSHなんてググって設定するだけでそもそもの公開鍵と秘密鍵が何してるかなんてよくわかってなかった私からしたらアハ体験祭りでした。RSA暗号では実際に合同式とオイラーの関数を使って簡単な数字を暗号/解読してみたりしました。個人的にここで出てくる冪剰余の計算をどうやって解くか調べてた時にバイナリ法という2進数に直して計算する方法に感動しました。思いついたやつ天才すぎでは。

Mid-Termは2パートに分かれていて、Aはセキュリティに関するレポートでBは暗号化の問題を解く内容でした。

Software Design and Development

この授業ではソフトウェアデザイン設計に関する内容でした。Module Complexity, Coupling, Cohesion (日本語だと循環的複雑度・結合度・凝集度)から始まり、ユニットテスト、テスト駆動開発(TDD)、セキュアプログラミングについて学びました。この授業は基本的にIEEEの資料を参考にするためEssential Readingが多いし、概念的なことを英語で学ぶ難しさがありました。それでも英語で専門用語を知れるのは有難いしこれは海外就職で技術的な話をする場合に大分助かるよなと無理矢理ポジティブに捉えています。

Mid-Termでは過去の授業で制作したプロジェクトを使って自分のコードをレビューしたレポートを書きました。過去の授業で制作したプロジェクトをGithubに残しておいてよかったと思いました。

最後に

初めての4科目で最初の数週間はキツすぎてどうなるかと思いましたがとりあえずなんとかなりました。実践的な内容になってきてとても楽しいですが4科目である以上それぞれに十分な時間を充てられないのが悔しいところではあります。引き続き後半も無理せず頑張りたいと思います🫶

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