シラバス情報

科目授業名称(和文) Name of the subject/class (in Japanese)
電子計算機実習1
科目授業名称(英文) Name of the subject/class (in English)
Exercises on Computer Programming 160
授業コード Class code
9976192
科目番号 Course number
76PIINP102

教員名
(担当未登録)
Instructor
Risa Kobayashi

開講年度学期
2026年度後期
Year
2026年度
Semester
②Second semester
曜日時限
月曜1限、月曜2限
Class hours
Monday, 4-5th Period

開講学科・専攻 Department
創域理工学部 社会基盤工学科

Department of Civil Engineering, Faculty of Science and Technology
単位数 Course credit
1.00単位
授業の方法 Teaching method
演習

Seminar
外国語のみの科目(使用言語) Course in only foreign languages (languages)
-
授業の主な実施形態 Main class format
① [対面]対面授業/ [On-site] On-site class

概要 Description
汎用プログラミング言語 Python を用いて,工学的問題を計算機で解くための基礎力を体系的に養成する演習科目である.
Pythonの基本文法の習得から始め,科学技術計算ライブラリ(NumPy),データ分析(Pandas),可視化(Matplotlib),画像処理(OpenCV),空間情報処理(GeoPandas)へと段階的に学習範囲を広げる.
さらに,線形代数(行列演算・アフィン変換・最小二乗法)の計算機実装やオブジェクト指向プログラミング(クラス設計)にも取り組み,上級科目や卒業研究で必要となる計算力の土台を構築する.
目的 Objectives
本授業の目的は以下の通りである.
  1. 計算論的思考(Computational Thinking)の獲得:工学的な問題を「分解」「パターン認識」「抽象化」「アルゴリズム設計」のプロセスで捉え、計算機で解決可能な形に変換する思考力を養う.
  2. Pythonによる実装力の養成:Python の基本文法および主要な科学技術計算ライブラリを習得し,与えられた課題を自力でプログラムとして実装できる力を身につける.
  3. 土木工学への応用力の涵養:測量データ処理,構造計算,画像によるインフラ点検,GISを用いた空間分析など,土木工学の各分野で求められるデータ処理・分析スキルの基礎を築く.
  4. AI時代のプログラミングスキルの獲得:コーディング環境が急速に変化する中で,基礎的な構造を理解し,的確なプログラム設計と保守・改良ができるようになる.
到達目標 Outcomes
1)基礎的なプログラムの設計と実装:変数・制御構文・関数を用いて,与えられた工学的問題を分解し,Pythonプログラムとして実装できる.
2)データの処理と可視化:NumPy・Matplotlib・Pandasを用いて,土木分野の実データを読み込み,加工し,グラフや表として可視化できる.
3)問題解決のためのプログラミング的思考:工学的な課題に対して,適切なデータ構造やアルゴリズムを選択し,自力で解決策をプログラムとして構築できる.


*社会基盤工学科が定める学習・教育目標との関連
上記到達目標は、下記の「主として関連する学習・教育目標」に基づいている。

主として関連する学習・教育目標:
目標(A):土木技術に必要な数学、物理、情報技術などの基礎知識を習得するとともに
      応用できるようになる。
卒業認定・学位授与の方針との関係(学部科目のみ)
リンク先の [評価項目と科目の対応一覧]から確認できます(学部対象)。
履修登録の際に参照ください。
​You can check this from “Correspondence table between grading items and subjects” by following the link(for departments).
https://www.tus.ac.jp/fd/ict_tusrubric/​​​
履修上の注意 Course notes prerequisites
・各自のPCを使用して講義を進めます.必ず持参してください.
・OSは問いませんがJupyter Notebook を使用するため,学内でのオンライン接続​​​​環境を整えてきてください.

アクティブ・ラーニング科目 Teaching type(Active Learning)
実習 Practical learning
-

準備学習・復習 Preparation and review
準備学習:e-Learningシステム(LETUS)を用いてpythonの基礎を参照・予習し、授業に反映させる
復習:実際にコードを書いてみて復習する 11回までに最終プロジェクトのテーマを考えてくる
成績評価方法 Performance grading policy
・到達度評価試験60%+プロジェクト課題40%

[フィードバックの方法]
・解答例は、LETUSに掲載。
学修成果の評価 Evaluation of academic achievement
・S:到達目標を十分に達成し、極めて優秀な成果を収めている
・A:到達目標を十分に達成している
・B:到達目標を達成している
・C:到達目標を最低限達成している
・D:到達目標を達成していない
・-:学修成果の評価を判断する要件を欠格している

・S:Achieved outcomes, excellent result
・A:Achieved outcomes, good result
・B:Achieved outcomes
・C:Minimally achieved outcomes
・D:Did not achieve outcomes
・-:Failed to meet even the minimal requirements for evaluation

教科書 Textbooks/Readings
教科書の使用有無(有=Y , 無=N) Textbook used(Y for yes, N for no)
N
書誌情報 Bibliographic information
-
MyKiTSのURL(教科書販売サイト) URL for MyKiTS(textbook sales site)
教科書および一部の参考書は、MyKiTS (教科書販売サイト) から検索・購入可能です。
​https://gomykits.kinokuniya.co.jp/tokyorika/​​​

It is possible to search for and purchase textbooks and certain reference materials at MyKiTS (online textbook store).
​​https://gomykits.kinokuniya.co.jp/tokyorika/

参考書・その他資料 Reference and other materials
LETUS上に適宜アップロードするJupyter Notebook とスライド

授業計画 Class plan

第I部:Python基礎(第1〜4回)

第1回:イントロダクション・環境構築

  • 講義:Pythonとは何か.土木分野での活用事例(構造解析の自動化、GISデータ分析、インフラ点検画像処理など).計算論的思考(Computational Thinking)の紹介.
  • 演習:Jupyter Notebook(またはGoogle Colab)の導入と基本操作.変数・型・print・四則演算.簡単な計算プログラムの作成.
  • キーワード:Python, Jupyter Notebook, 変数, 型, 演算子

第2回:データ型と制御構文(if文)

  • 講義:数値型・文字列・リスト・辞書。条件分岐(if / elif / else).比較演算子・論理演算子.
  • 演習:コンクリートの配合設計で条件に応じた判定を行うプログラム.
  • キーワード:int, float, str, list, dict, if, elif, else

第3回:繰り返し処理(for / while)

  • 講義:for文・while文・range。break・continue.リスト内包表記の導入.
  • 演習:測量データの連続処理,数値の集計,収束計算(例:ニュートン法の簡単な導入).
  • キーワード:for, while, range, リスト内包表記

第4回:関数とデバッグ

  • 講義:関数の定義と呼び出し,引数と戻り値,スコープ.デバッグの基本手法(print文デバッグ、エラーメッセージの読み方、try/except).
  • 演習:断面二次モーメントの計算関数を自作する,意図的にバグを含むコードを修正する演習.
  • キーワード:def, return, スコープ, try, except, デバッグ

第II部:データ分析ライブラリ(第5〜7回)

第5回:NumPyの基礎

  • 講義:ndarray の生成・演算・インデクシング・スライシング.ブロードキャスト.ベクトル化計算とfor文の比較(計算速度の実演).
  • 演習:測量座標データの一括変換.大規模データに対するベクトル化計算の効果を体験.
  • キーワード:ndarray, reshape, ブロードキャスト, ベクトル化

第6回:Matplotlibによるデータ可視化

  • 講義:折れ線グラフ・散布図・棒グラフ・ヒストグラム.軸ラベル・凡例・タイトル・サブプロット.図の保存.
  • 演習:河川流量データや地震波形のグラフ化.複数データの比較可視化.
  • キーワード:plot, scatter, bar, hist, subplot, savefig

第7回:Pandasによるデータ分析

  • 講義:DataFrame / Series の基本操作.CSV/Excelファイルの読み書き.フィルタリング・ソート・groupby・欠損値処理.
  • 演習:オープンデータ(例:交通量調査、気象データ)を使った集計・分析・可視化.
  • キーワード:DataFrame, read_csv, groupby, merge, fillna

第III部:画像処理と線形代数(第8〜10回)

第8回:OpenCVによる画像処理

  • 講義:画像の読み込み・表示・色空間変換.フィルタリング(ガウシアンフィルタ・エッジ検出).二値化(大津の方法)・輪郭検出.画像処理の土木分野での応用事例.
  • 演習:航空写真からの特徴抽出.
  • キーワード:cv2.imread, cvtColor, GaussianBlur, Canny, threshold, findContours

第9回:線形代数とプログラミング(1)— 行列演算とアフィン変換

  • 講義:ベクトル・行列の基本操作(NumPy).行列の積・転置・逆行列.連立一次方程式の求解(np.linalg.solve).同次座標によるアフィン変換(回転・拡大縮小・平行移動)の行列表現.
  • 演習:測量座標のアフィン変換.トラス構造の節点変位を連立方程式で解く.
  • キーワード:np.dot, np.linalg.solve, np.linalg.inv, アフィン変換行列, 同次座標

第10回:線形代数とプログラミング(2)— 最小二乗法とアフィン変換応用

  • 講義:最小二乗法(np.linalg.lstsq).対応点からのアフィン変換パラメータ推定.cv2.warpAffine との接続.
  • 演習:測量データへの回帰直線フィッティング.画像のアフィン変換(NumPyで計算したパラメータをOpenCVで適用).
  • キーワード:np.linalg.lstsq, cv2.getAffineTransform, cv2.warpAffine, 回帰分析

第IV部:オブジェクト指向と空間データ(第11〜13回)

第11回:クラスとオブジェクト指向

  • 講義:クラスの定義,__init__・メソッド・属性.なぜクラスを使うのか(データと振る舞いの一体化).継承の基礎.特殊メソッド(__str__, __repr__).
  • 演習:「断面(Section)」クラスを作り,矩形断面・円形断面の面積・断面二次モーメントを計算するプログラム.継承を使って新しい断面型を追加.
  • キーワード:class, __init__, self, 継承, メソッド, 属性
  • 最終プロジェクトのテーマの提出

第12回:GeoPandas入門(1)

  • 講義:GISの基本概念.ベクタデータ(ポイント・ライン・ポリゴン).シェープファイルの読み込み.地図の描画.座標参照系(CRS)と座標変換.
  • 演習:国土数値情報から行政区域データを読み込んで地図表示.CRSの変換を実践.
  • キーワード:GeoDataFrame, read_file, plot, CRS, to_crs

第13回:GeoPandas入門(2)

  • 講義:空間結合(sjoin).バッファ・交差判定・ディゾルブなどの空間演算.コロプレスマップ(属性値による色分け地図).
  • 演習:被害想定の簡易マップ作成.
  • キーワード:sjoin, buffer, intersection, dissolve, choropleth

第V部:総合演習(第14〜15回)

第14回:最終プロジェクト作業日

  • 内容:自由テーマによるプロジェクト制作。テーマ例の提示と個別サポート。最終プロジェクトは期日までに提出

第15回:到達度評価


担当教員の実務経験とそれを活かした教育内容 Work experience of the instructor
教育用ソフトウェア Educational software
-
-

備考 Remarks
最終プロジェクトについて,コードの共有・参考は推奨するが,提出物は自分の言葉とコードで記述すること.
コーディングやデバッグにおいて生成AIの利用は許可するが,利用した場合はプロンプトを提出すること.

授業でのBYOD PCの利用有無 Whether or not students may use BYOD PCs in class
Y
授業での仮想PCの利用有無 Whether or not students may use a virtual PC in class
N