プログラミング(前期2単位)

教授 大久保 隆夫、教授 松井 俊浩

1.授業のねらい

コンピュータプログラム開発の経験に乏しい受講者を対象に、研究のためのコンピュータプログラム開発の実用的能力習得を目的とした講義を、演習を交えながら行う。
本学において研究を行う学生が習得しておくと良い言語(C、アセンブリ言語、Rust、Python)を扱う。

2.到達目標

研究に必要なコンピュータプログラム開発の概略を理解する。
プログラム言語の文法とプログラムの作成とデバッグ法、プログラム実行の仕組み、基礎的なアルゴリズムのプログラミングについて総括的に理解する。

3.授業計画(各回毎の内容)と開講形態

第1-第7回は、松井が担当する。第1回-第7回の授業は、遠隔・オンライン授業とする。
受講生は、各自のPCから、松井が準備するクラウド環境(AWS)にssh で接続して プログラム作成演習を行う。ssh の接続法は授業で解説するが、各ネットワーク環境の ファイアウォール等が外向けのssh ポートを開放している必要がある(通常は開放)。
第8-第15回の授業は、大久保が担当する。第8回ー第15回の授業は教室で行う。演習環境は各自のPCで行う。 第1回ー第15回の各授業では、Google Classroom (クラスコード=a7ynyjj) において提供する出席簿や小テストに回答する。

第1回 プログラミングとプログラム言語の概念、クラウドでのプログラミング環境構築
第2回 C言語- 構文法、式と文、定数と変数、繰り返し、コンパイル&リンク
第3回 C言語- 関数、データ型、構造体、ポインタ
第4回 C言語- πやeの計算、多倍長電卓プログラム
第5回 アセンブリ言語、バイナリデバッギング(GDB)
第6回 CのASM文、カナリア(スタックプロテクタ)、
第7回 再帰関数ー分割統治、動的計画法
第8回 Python演習1:演習環境、文法の基本
第9回 Python演習2:データ構造、文構造
第10回 Python演習3:文構造
第11回 Python演習4:関数
第12回 Python演習5:エラー処理、モジュール、パッケージ、プログラム
第13回 Python演習6:オブジェクトとクラス
第14回 Python演習6:ファイル操作、データベース
第15回 Python演習7:Webアプリケーション

4.教科書

Bill Lubanovic著, 「入門 Python3」, オライリージャパン, 2015, ISBN-10: 4873117380 学生情報サービスおよびGoogle Classroomに掲載する教材PDFを各自で予復習に用いること。
ビデオ録画できたオンライン授業については、授業ビデオを受講生の復習用に提供することがある。

5.参考書

随時、講義中に紹介する。

6.関連科目

本講義の履修前、ないし本講義と並行で履修がのぞましい科目:
・アルゴリズム基礎、情報デバイス技術、オペレーティングシステム

本講義を事前に履修しておくことがのぞましい科目:
・情報システム構成論

7.成績評価の方法と基準

各回小テスト及び中間、期末レポートにより評価する(90%)。
なお、講義への積極的な参加も評価対象とする(10%)。
成績表示は、A(優)-B(良)-C(可)-D(不可)とする。

8.その他

本授業には演習が含まれるが、演習に用いるPC(Windows10推奨)は各自準備すること。
受講する学生は、以下のような基礎的な用語についてはあらかじめ知っておくことがのぞましい。
スタック、シンタクス、オブジェクトコード、命令語、再帰、配列(ベクタ)、移植、データ型