ソフトウェア工学科
開講科目・研究室テーマ・卒論テーマ
Pick Up 授業
プログラミング基礎[1年次]/プログラミング応用[1年次]
プログラムの書き方や動作の意味を学ぶ授業です。動作の基本である条件分岐や繰り返し、命令を組み合わせて手続きを作る方法、データの並べ替えや探索などの応用プログラムも学びます。
システムプログラミング[2年次]
1年次のプログラミングで学んだ知識の上に、様々なソフトウェアシステムの共通基盤となるプログラミング技術 を学びます。具体的には、ソースプログラムをコンピュータが理解できる命令(機械語)に翻訳する仕組み(言語処理系・コンパイラ)や、複数のプログラムを協調して動作させる仕組み(並行プログラミング)について学びます。
計算機アーキテクチャとOS[2年次]
ソフトウェアが動作するための土台となるコンピュータのハードウェアと、コンピュータシステムの利用環境を提供するためのソフトウェアであるオペレーティングシステム(OS)について学ぶ授業です。両者を学ぶことにより、システム動作におけるハードウェアとソフトウェアの役割とそれらの関係についての理解を深めます。
アルゴリズムとデータ構造[2年次]
コンピュータ上で問題を解くための基礎的な知識として、基本的なデータ構造とアルゴリズムについて、その概念や考え方について学びます。計算モデルやアルゴリズムの評価法、基本的な設計技法などを学ぶことで、コンピュータ上で問題を効率よく解く素養を身につけます。
ソフトウェア工学基礎[2年次]/ソフトウェア工学応用[2年次]
基礎では、ソフトウェアを高信頼かつ高生産性で開発するときの課題や技術を学び、現代社会におけるソフトウェア工学の意義を理解します。応用では、家電、自動車などの様々な機器に組み込まれる組込みソフトウェアやWebアプリケーションなど、実社会に関するソフトウェアの開発方法や技術を学びます。
ソフトウェア開発技術I、Ⅱ[3年次]
ソフトウェアを開発する過程で「ソフトウェア開発者には何が求められていて、どのような作業が必要になるのか」を知り、各過程における基本的な考え方や技術、起こりうる問題に対する効果的な解決方法などについて理解します。使う人の視点から便利で使いやすいシステムを作るための方法や技術を学び、ソフトウェア開発に必要な能力をみがきます。
情報システム開発実習[2年次]
組込みシステム向けのソフトウェア開発を行います。学科科目で学んだソフトウェアを工学的に開発する技術を実践しながら体得し、ソフトウェア開発技術者としての素養を高めます。
研究室テーマ例
- 組込みソフトウェアの開発支援
- IoTアプリケーションの開発支援
- 機械学習のソフトウェアへの応用
- 機械学習のためのソフトウェア開発技術
- ソフトウェアの要求分析の支援
- ソフトウェアの運用保守の支援
- コンピュータを用いたプログラミング学習支援
卒論テーマ例
- 機械学習を用いたソースコードからの脆弱性検知に関する研究
- 侵入プロセスの特徴を利用した侵入検知のためのソフトウェアアーキテクチャ
- Javaバイトコードの比較による機能的類似コード検出手法の提案
- コード片が利用するメソッドの類似性に基づく機能的類似コード検出手法の提案
- 繰り返しを伴うバッファ操作処理におけるポインタ変数の変化の理解支援
- プログラミング学習における対話式誤り修正支援システムの提案
- 要求仕様書における曖昧語辞書作成法の研究
- スマートフォンアプリケーションのレビューの自動分類