シラバス

担当教員

  • 玉田 春昭
  • 宮森 恒
  • 林原 尚浩

授業概要

本演習では,1年生次に学習した基礎プログラミング演習I, II の知識を前提に,Java言語によるプログラミング の演習を行う.演習の主題は,プログラミング言語そのものではなく,プログラミング言語を使ったアプリケーショ ンの構築にある.そのため,プログラミングに関する基礎的な知識は,各自での復習/予習が必須である.

なお,この科目に先立ち,以下の科目の履修・習得を強く推奨する.

  • 情報化社会論
  • コンピュータ概論
  • 基礎プログラミング演習I, II

また,この科目の内容は,以下の科目の習得に役立つ.

  • ソフトウェア工学I
  • アルゴリズムとデータ構造
  • 言語オートマトン
  • ソフトウェア工学II
  • プログラミング言語
  • プロジェクト演習
  • コンピュータ理工学特別研究I,IIA, IIB(研究室問わず)
  • 応用プログラミング(Java)
  • 応用プログラミング(Python)
  • 応用プログラミング(C)
  • 応用プログラミング(Web)
  • 応用プログラミング(データ解析)
  • 応用プログラミング(アルゴリズム)

授業方法

  • 演習(アクティブ・ラーニング授業 (形態:反転授業))
    • 授業では,全体に対して細かな説明は行わない.各自のわからなかった箇所について個別に説明する.

授業内容・授業計画

この講義の授業は次の通り進行する予定である.なお,それぞれの単元が2コマ分である.

  1. Java言語の基礎1
    • Java言語の基礎の基礎
      • コンパイル方法
      • 実行方法
    • 基礎文法
      • 条件分岐
      • 繰り返し
  2. Java言語の基礎2
    • コメント
    • クラス定義
    • 変数
    • 配列
    • コマンドライン引数
  3. Java言語の基礎3
    • メソッド
      • メソッドの呼び出し方.
      • メソッドの定義方法.
      • 仮引数と実引数.
      • メソッド内での変数の更新.
      • 変数のスコープ.
  4. Java言語の基礎4
    • 配列とList
    • 独自の型の作成
  5. 数値計算(1/2)
    • 複素数型(独自の型の作成)
    • 任意桁の計算(BigInteger
  6. 数値計算(2/2)
    • 再帰呼び出し
  7. ファイル
    • ファイルを扱う型.
  8. 画像操作
    • 画像の書き込み
    • 例外機構
    • 例外の責任転嫁
    • 画像の変換(アフィン変換)
  9. ファイル入出力
    • ストリーム
    • ReaderWriter
  10. 連想配列(Map
    • 連想配列の概念
    • HashMap
  11. 応用1−1
    • 今までの学習した内容に従い,実用的な小さなプログラムを多数作成する.
  12. 応用1−2
    • 今までの学習した内容に従い,実用的な小さなプログラムを多数作成する.
  13. 応用2−1
    • 今までの学習した内容に従い,大きな一つのプログラムを作成する.
  14. 応用2−2
    • 今までの学習した内容に従い,大きな一つのプログラムを作成する.
  15. 最終課題
    • 最終課題の内容説明.
  16. 試験,まとめ

準備学習等(事前・事後学習)

事前学習

授業に必要な資料は全てWebページ上に掲載するので,毎回の授業当日までに十分に読み込んでおくこと. また,必要に応じて実際に作業を行い,自分が理解できない箇所をチェックしておくこと. 特にキー入力操作が不慣れで授業中の作業時間で間に合わないと感じる場合は, 事前に作業しておくなどの準備をすること.

事後学習

授業終了後に資料のWebページおよび授業中に取ったノートや演習成果物を見直し,学習内容を確認して理解を深めること.

本演習で扱う知識は基礎的なものであり,いずれが欠けても今後の学部の専門授業の多くに支障を来す. そのため,理解不十分なまま放置しないこと.

授業の到達目標

  • Java言語の基礎知識を身に付け,簡単なJavaプログラムが書けるようになる.
  • 与えられた仕様に従って,簡単なJavaプログラムが書けるようになる.
  • 基礎的なアルゴリズムが理解できる.
  • 基礎的なアルゴリズムが利用できる.

身に付く力

  • プログラムを書くことによる,論理的思考力(創造力,論理的分析力,総合的判断力)
  • プログラムの内容を説明することによる,コミュニケーションスキル(傾聴力,発信力)
  • 演習に参加することによる,態度・志向性(規律性,ストレスコントロール力)

履修上の注意

  • Java言語とC言語は異なる言語であるものの,基礎プログラミング演習I, IIで学習したC言語の内容理解は必須である. この内容理解が不十分であれば,本科目の習得は難しい.特に,関数,変数のスコープ,型,配列について,各自しっかりと復習しておくこと.
  • タイピング速度は習熟度に大きく影響する. タッチタイピングは必須であり,1分間に120字程度(日本語入力で60字程度)が入力できるようにしておくこと. 入力速度が120字/分以下の場合は,単位を認めない場合もある.タイピング速度は,次のサイトで測定できる.
  • 演習資料は事前によく読んでおくこと.また,演習資料中の例題は必ずコンパイル・実行すること.
  • 疑問点は積極的に質問すること.
  • レポートを課す場合がある.講義中の指示に従って,提出期限までに提出すること. レポートとして提出するすべてのプログラムに,必ず指名,学生証番号,課題番号を記載すること. これらが記載されていない場合,未提出として扱う.

評価方法

  • 最終課題(30~70%),筆記試験(30%~70%)を総合して評価する.
  • 講義中に随時行う課題(小テスト,練習問題)を評価(0%~40%)に加える場合もある.
  • 詳細は講義中に説明する.
  • 課題は提出期限終了後,模範解答とともに解説を配布する.

教材

参考書

Javaで学ぶオブジェクト指向プログラミング入門

その他

オフィスアワーについて

玉田のオフィスアワー

  • 木曜日3時限目
    • 第2実験室棟3階 68研究室
      • 上記の時間でなくても,在室中は基本的に質問を受け付ける.
        • 他の用事で不在の場合もあるので,在室を確認してから訪ねてくると良い.
        • メールアドレス:tamada-f@ke-cc.kyoto-su.ac.jp (-f@ke-をアットマーク(@)に置き換えること)
    • Microsoft Teamsのチャットにて問い合わせても良い.

昨年度までの講義資料について