茨城大学 / 工学部情報工学科
大学1年〜3年:数学, ソフトウェア, ネットワーク
「数学」「ソフトウェア」「ネットワーク」の基礎を主として学ぶ。 【数学】 ・教養数学を始めとして、解析学、代数学、幾何学全般を学習した。 ・個人的にはベクトル解析、フーリエ解析、確率論等の解析学の学習の割合が高かったと思う。 【ソフトウェア】 ・C, C++, Javaを用いたプログラミング学習が中心だった。 『C言語』 ・アルゴリズムの学習で使用した。アルゴリズム学習は主にソート及び探索を扱った。 ・ソートアルゴリズム学習では、バブルから始まり、クイック、マージ等のソート法を学習する。 ・この時、演算回数やメモリ消費量、実行時間等を計測し「どの条件の時にどのソート法が適しているか」を解いていた。 ・探索アルゴリズム学習では、線形探索に始まり、二分探索、ハッシュ探索等を学習する。最終的には平行二分探索木を学習し、それをC言語で実装した。「ポインタのポインタ」という概念に苦戦をした記憶がある。 ・ソートアルゴリズム学習と同様に、各種計測を行い「どの条件の時にどの探索法が適しているか」を解いた。 『C++』 ・ソケット通信を用いた五目並べゲームを実装した。 ・ソケットの生成、接続、切断の一通りのライフサイクルについて、サーバー側及びクライアント側のそれぞれを実装を通して学ぶ。 『Java』 ・ウィンドウ上で行うじゃんけんゲームを実装した。 ・ここではクラス、インスタンス、継承等の概念を学びオブジェクト指向に触れていった。 【ネットワーク】 ・TCP/IP, コンピュータアーキテクチャ(入出力装置, CPU, メモリ等を取り巻く設計について), 論理回路, 情報セキュリティ等の基礎を学ぶ。 ・情報セキュリティでは、共通鍵暗号方式、公開鍵暗号方式を学び基礎を押さえた程度である。