<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>トップ on 2024年度 発展プログラミング演習（春学期）</title>
    <link>https://ksuap.github.io/2024spring/index.html</link>
    <description>Recent content in トップ on 2024年度 発展プログラミング演習（春学期）</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja</language>
    <lastBuildDate>Wed, 13 Mar 2024 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://ksuap.github.io/2024spring/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>シラバス</title>
      <link>https://ksuap.github.io/2024spring/syllabus/index.html</link>
      <pubDate>Fri, 01 Mar 2024 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/syllabus/index.html</guid>
      <description>担当教員 授業概要 授業方法 授業内容・授業計画 準備学習等（事前・事後学習） 事前学習 事後学習 授業の到達目標 身に付く力 履修上の注意 評価方法 教材 参考書 その他 オフィスアワーについて 昨年度の講義資料について 担当教員 玉田 春昭 宮森 恒 林原 尚浩 授業概要 本演習では，1年生次に学習した基礎プログラミング演習I, II の知識を前提に，Java言語によるプログラミング の演習を行う．演習の主題は，プログラミング言語そのものではなく，プログラミング言語を使ったアプリケーショ ンの構築にある．そのため，プログラミングに関する基礎的な知識は，各自での復習／予習が必須である．
なお，この科目に先立ち，以下の科目の履修・習得を強く推奨する．
情報化社会論 コンピュータ概論 基礎プログラミング演習I, II また，この科目の内容は，以下の科目の習得に役立つ．
ソフトウェア工学I アルゴリズムとデータ構造 言語オートマトン ソフトウェア工学II プログラミング言語 プロジェクト演習 コンピュータ理工学特別研究I，IIA, IIB（研究室問わず） 応用プログラミング（Java） 応用プログラミング（Python） 応用プログラミング（C） 応用プログラミング（Web） 応用プログラミング（データ解析） 応用プログラミング（アルゴリズム） 授業方法 演習（アクティブ・ラーニング授業 （形態：反転授業）） 授業では，全体に対して細かな説明は行わない．各自のわからなかった箇所について個別に説明する． 授業内容・授業計画 この講義の授業は次の通り進行する予定である．なお，それぞれの単元が2コマ分である．
Java言語の基礎1 Java言語の基礎の基礎 コンパイル方法 実行方法 基礎文法 条件分岐 繰り返し 型 Java言語の基礎2 コメント クラス定義 変数 配列 コマンドライン引数 Java言語の基礎3 メソッド メソッドの呼び出し方． メソッドの定義方法． 仮引数と実引数． メソッド内での変数の更新． 変数のスコープ． Java言語の基礎4 配列とList 独自の型の作成 数値計算（１／２） 複素数型（独自の型の作成） 任意桁の計算（BigInteger） 数値計算（２／２） 再帰呼び出し ファイル ファイルを扱う型． 画像操作 画像の書き込み 例外機構 例外の責任転嫁 画像の変換（アフィン変換） ファイル入出力 ストリーム ReaderとWriter 連想配列（Map） 連想配列の概念 HashMap 応用１−１ 今までの学習した内容に従い，実用的な小さなプログラムを多数作成する． 応用１−２ 今までの学習した内容に従い，実用的な小さなプログラムを多数作成する． 応用２−１ 今までの学習した内容に従い，大きな一つのプログラムを作成する． 応用２−２ 今までの学習した内容に従い，大きな一つのプログラムを作成する． 最終課題 最終課題の内容説明． 試験，まとめ 準備学習等（事前・事後学習） 事前学習 授業に必要な資料は全てWebページ上に掲載するので，毎回の授業当日までに十分に読み込んでおくこと． また，必要に応じて実際に作業を行い，自分が理解できない箇所をチェックしておくこと． 特にキー入力操作が不慣れで授業中の作業時間で間に合わないと感じる場合は， 事前に作業しておくなどの準備をすること．</description>
    </item>
    <item>
      <title>講義の進め方</title>
      <link>https://ksuap.github.io/2024spring/lecture/index.html</link>
      <pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lecture/index.html</guid>
      <description>簡単なまとめ 2024年度春学期の発展プログラミング演習は対面で実施します．
発展プログラミング演習では，練習問題を多く解くことにより学習を進めていきます． 教員は小テスト，練習問題の解説を中心に行い，知識学習は各自で行ってもらいます． 各自講義資料を読み，掲載されている練習問題（課題）に取り組んでください． 今年度も昨年度に引き続き，Microsoft Teamsによるサポートを実施します． 練習問題はMoodleにて提出してください． 授業中の9:00〜12:15の間にMoodle上で小テストを実施します．各自受講してください． まとめのまとめ（皆さんが行わないといけないこと） Java環境の準備を確認し，Javaの実行環境を用意してください． 各授業開始時（9:00〜12:15）に行われる小テストに取り組んでください． それぞれの回の練習問題に取り組み，Moodle 上で提出してください． ChatGPT を使うのは構いませんが，使い方には気をつけましょう． 課題を解いてもらうために使うのではなく，次のように使いましょう． プログラムのわからない箇所を説明してもらう． バグの場所を見つけてもらう． 授業の実施形態について 実施形態 対面で実施します． これまでと同様に練習問題を解くことを中心に演習は進みます． 教員は小テスト，練習問題の解説を中心に行います． 知識学習は，オンラインで提供されている教材を読むことで各自で進めてください． わからない箇所は，挙手やMicrosoft Teamsで質問，相談してください． 質問の内容はなんでも構いません．質問の内容が成績に繋がることは決してありません． どんなにつまらないと思う内容であっても，質問内容で評価が下がることはありませんし，叱責することもありません． ただし，自分で調べて欲しい内容など，そのまま解答を伝えない場合もあります． Microsoft Teamsでのテキストチャットは時間を気にせず質問を投稿できます．ただし，授業時間中以外は迅速に返信できないことをご了承ください． チャットにおいて「質問いいですか？」のような枕詞は不要です．そのまま唐突に質問を投稿してください． ビデオ通話が必要な場合は，必要に応じてテキストチャットで接続情報を送付します． 授業中の9:00〜12:15の間にMoodle上で小テストを実施します．各自受講してください． 小テストという名前ですが，チャット，挙手などでの質問，相談はOKです． 10:00より，教員により解説が行われます． すでに提出した人は内容を確認し，不明な点を解消するようにしてください． 小テストに手も足も出ない人は，解説を確認し，書き方を学びましょう． もう少しで解決できそうだけど，なかなか解決できない人は，教員，TAに質問しましょう． 小テストの解説が終わり次第，前回の課題の解説が行われます（前回の課題の提出期限はその時間内です）． すでに提出できている人は内容を確認し，不明な点を解消するようにしてください． 提出できていない人は，解説を確認し，書き方を学びましょう． 講義資料 講義資料は，https://ksuap.github.io/2024spring に置いています． この講義資料の内容をよく読み，第０講〜第12講までの練習問題に取り組んでください． 2024-04-03現在，第12講まで公開しています． 練習問題について 完成した練習問題は，決められた期日までに次の方法にて提出してください． 提出方法 Moodle の所定の場所に提出する． それぞれの課題の次の週の12:15までに提出してください． 例えば，第１講は2024-04-11に開催されます． そのため，第１講の課題の〆切は，2023-04-18 12:15 であり，それまでに Moodle の決められた場所に提出してください． 小テストや練習問題に取り組むにあたり，友人との相談やインターネットでの調べ物は自由に行ってもらって構いません． ただし，ソースコードの丸ごとコピー&amp;amp;ペーストはだけは行わないようにしてください． コピーチェックは特に行いませんが，内容を順番に理解しないと最終課題で何も行えなくなるためです． もし，例題や練習問題，小テストに手も足もでない場合は，教員やTAに早めに相談することをお勧めします． ChatGPTについて 2022-11-30 に OpenAI が ChatGPT という非常に汎用的なチャットシステムが公開されました． 様々なブログや記事などでも提示されているように，ChatGPT にプログラムを書かせることも可能です． ただし，ChatGPT で作成されたプログラムが理解できなければ利用する意味がありません．</description>
    </item>
    <item>
      <title>授業の準備</title>
      <link>https://ksuap.github.io/2024spring/prepare/index.html</link>
      <pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/prepare/index.html</guid>
      <description> 授業に臨むにあたって タッチタイピングについて インデントについて :anchor: インストール 仮想環境を利用する方法 :whale: Dockerのインストール Visual Studio Codeのインストール 課題の進め方 注意点 ローカル環境にインストールする方法 Javaのインストール確認 Javaのインストール Sdkmanを使ったインストール， asdfを使ったインストール， Homebrewを使ったインストール インストーラを利用したインストール エディタのインストール 推奨 その他のエディタ 非推奨 各授業の開始前に行っておくこと 講義資料を読む 例題に取り組む 練習問題に取り組む わからなかったところをまとめる 授業の流れ 小テスト 小テストの時間配分について 小スト解説 練習問題 授業終了後に行うこと 成績評価 まとめ </description>
    </item>
    <item>
      <title>第０講 Java言語の基礎１</title>
      <link>https://ksuap.github.io/2024spring/lesson00/index.html</link>
      <pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson00/index.html</guid>
      <description>この講で利用するプログラム
基礎の基礎 Hello World コンパイル方法 実行方法 プログラムの解説 一番外側 main メソッド 画面に出力する方法（printf） 文字列 基礎文法 条件分岐 概要 例題 繰り返し 概要 例題 例題 改1 型 変数の宣言方法 代表的な型 各型の取りうる値 練習問題 Big &amp;amp; Small 乱数発生方法 うるう年の判定 総和を求める 九九を表示する Xの描画 まとめ </description>
    </item>
    <item>
      <title>第１講 Java言語の基礎２</title>
      <link>https://ksuap.github.io/2024spring/lesson01/index.html</link>
      <pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson01/index.html</guid>
      <description>この講で利用するプログラム
コメント 一行コメント 例 通常コメント 例 Javadocコメント 例 クラス定義 クラス定義の基本形 new演算子 変数 宣言場所 実体 参照の一致性 値の一致性 何も参照していない値null 配列 宣言方法 配列の長さ 配列の各要素 配列の例 配列の作成方法 コマンドライン引数 例題1 ArgsPrinter 例題2 コマンドライン引数とデフォルト値 練習問題 HelloWorld改 HelloWorld改2 階乗 String型からInteger型への変換 FizzBuzz Fibonacci数列 まとめ </description>
    </item>
    <item>
      <title>第２講 Java言語の基礎３</title>
      <link>https://ksuap.github.io/2024spring/lesson02/index.html</link>
      <pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson02/index.html</guid>
      <description>この講で利用するプログラム
メソッド（関数） 基本的な呼び出し方 例題１ 定義済みメソッドの呼び出し メソッドの定義方法 引数，返り値のないメソッド 引数あり，返り値のないメソッド 引数なし，返り値のあるメソッド 引数，返り値のあるメソッド 例題２ 例題３ メソッドの仮引数と実引数 メソッド内での引数の更新 変数のスコープ 暗黙の定数this 練習問題 与えられた文字列のソート 学生証番号の正当性を検証するプログラム 二次方程式の解 モンテカルロ法による $\pi$の計算 台形公式による積分計算を利用した $\pi$の計算 まとめ </description>
    </item>
    <item>
      <title>第３講 Java言語の基礎４</title>
      <link>https://ksuap.github.io/2024spring/lesson03/index.html</link>
      <pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson03/index.html</guid>
      <description>この講で利用するプログラム
配列とList Listとは Listの種類 Listの宣言方法 Listの操作 Listにデータを追加する（add） Listにあるデータを取得する（get） Listにあるデータを更新する（set） Listにあるデータを削除する（remove） Listのサイズを取得する（size） Listの要素の繰り返し（Iterator） サンプルプログラム 例題1 argsをArrayListに変換する 例題2 乱数の生成 出力例 ユーザ定義型 ユーザ定義の型を定義する Person型 PersonManager型 別の実体を作成する 独自の型をListに入れる 練習問題 乱数値100個の統計 素数の一覧 素因数分解 試験成績の分析 まとめ </description>
    </item>
    <item>
      <title>第４講 数値計算（1/2）</title>
      <link>https://ksuap.github.io/2024spring/lesson04/index.html</link>
      <pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson04/index.html</guid>
      <description>この講で利用するプログラム
ニュートン法による平方根の計算 アルゴリズム 絶対値 例題 任意桁の計算 BigInteger BigIntegerの初期化 Integer型，BigInteger型の相互変換 BigIntegerの四則演算 サンプルプログラム 例題 階乗改 ユーザ定義型2（複素数型） 複素数型の定義 複素数型を利用するプログラムの作成 例題 absolute 例題 conjugate 練習問題 線形合同法による擬似乱数列 ニュートン法による立方根の計算 Fibonacci数列（任意桁） Complexの四則演算 まとめ </description>
    </item>
    <item>
      <title>第５講 数値計算（2/2）</title>
      <link>https://ksuap.github.io/2024spring/lesson05/index.html</link>
      <pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson05/index.html</guid>
      <description>この講で利用するプログラム
再帰呼び出し (Recursive call) 再帰呼び出しとは 例題1 階乗改2 例題2 最大公約数 再帰呼び出しの失敗 練習問題 GrandTotal改 Fibonacci数列 改 最小公倍数 回文チェッカー ヒント1: 文字列のn文字目を取得する ヒント2: 部分文字列を取得する ヒント3: 考え方 まとめ </description>
    </item>
    <item>
      <title>第６講 ファイル</title>
      <link>https://ksuap.github.io/2024spring/lesson06/index.html</link>
      <pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson06/index.html</guid>
      <description>この講で利用するプログラム
ファイルを扱う型 File型 例題 1. ls コマンドの作成 ls コマンドの出力例 ls コマンドに必要な File 型のメソッド ls コマンドの作成 例題 2. File の情報を出力するプログラム 概要 情報取得のために必要なメソッド File の情報を出力するプログラムの作成 実行例 例題 3. tree コマンド 概要 ヒント 実行例 練習問題 1. ファイルを探すコマンド FileFinder 実行例 2. ディレクトリを作成するコマンド mkdir 実行例 3. ディレクトリを作成するコマンド mkdir の改良 実行例 4. ファイル，ディレクトリを削除するコマンド remove 実行例 まとめ </description>
    </item>
    <item>
      <title>第７講 画像操作</title>
      <link>https://ksuap.github.io/2024spring/lesson07/index.html</link>
      <pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson07/index.html</guid>
      <description>この講で利用するプログラム
画像の書き込み 画像生成 例題1 グラデーション画像 画像の書き出し サポートされている画像フォーマット 例外機構（Exception Architecture） 検査例外と非検査例外 例外の責任転嫁 InterruptedExceptionの責任転嫁 throws節 例題2. 画像の読み込み/書き込み 実行結果 画像の変換 例題3. アフィン変換 度数法と弧度法の相互変換 参考資料 例題4. 画像の上下反転 例題5. 画像への書き込み 練習問題 1. グラデーション2 実行例 ヒント 2. ファイルフォーマット変換 実行例 ヒント 3. グレースケール画像への変換 実行例 ヒント 4. 画像の回転 実行例 ヒント 5. 自由課題 まとめ </description>
    </item>
    <item>
      <title>第８講 ファイル入出力</title>
      <link>https://ksuap.github.io/2024spring/lesson08/index.html</link>
      <pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson08/index.html</guid>
      <description>この講で利用するプログラム
ファイルの入出力 ストリーム（Stream） ラッピング（Wrapping） Reader/Writer, InputStream/OutputStream import文 Reader型 Reader 型の利用方法 典型的なファイルからのデータの読み込み方法 １文字単位の読み込み 例題 1. Catコマンドの作成 実行例 Writer型 Writer 型の利用方法 典型的なファイルへのデータの書き込み方法 例題 2. 指定された行数を出力するコマンド 実行例 例題 3. 単純なファイルコピー 実行例 InputStream/OutputStream型 OutputStream型 InputStream型 例題 4 InputStreamを利用した Cat 例題 5 単純なファイルコピー 2 例題 6 pnm 画像の生成 練習問題 行番号付きのCatコマンドの作成 Grepコマンドの作成 文字列にある文字列が含まれているかを確認する Headコマンドの作成 Teeコマンドの作成 カエサル暗号 まとめ </description>
    </item>
    <item>
      <title>第９講 Map</title>
      <link>https://ksuap.github.io/2024spring/lesson09/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson09/index.html</guid>
      <description>この講で利用するプログラム
Map（連想配列） Mapとは Mapの種類 Mapの宣言方法 Mapの操作 Mapにデータを追加する (put) Mapにあるデータを取得する (get) Mapにあるデータを削除する (remove) Mapのサイズを取得する (size) Mapの要素の繰り返し 典型的な方法（Iterator） 拡張 for 文を使った方法 サンプルプログラム 出力例 文字列を分割する 例題 1. お弁当の料金表 出力例 練習問題 1. CSV データの格納 ヒント ベースとなるプログラム ダブルクォートの削除 出力例 2. 電話帳の作成 出力例 まとめ </description>
    </item>
    <item>
      <title>第10, 11講 応用1</title>
      <link>https://ksuap.github.io/2024spring/lesson10/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson10/index.html</guid>
      <description>2023-07-20 (Thu) 10:30 までに以下の12個のプログラムを提出してください．
この講で利用するプログラム
コマンドラインで受け取った文字列が特定の文字列かを確認する 文字列の逆順表示 yesコマンド：特定文字列を繰り返す． sortコマンド：ファイルの内容をソートする． tacコマンド：ファイルの内容を逆順に表示する． freqコマンド：与えられたテキストファイルに現れる単語の頻度を求める． tailコマンド：与えられたテキストファイルの最後の数行を出力する． シェルピンスキーのギャスケット Gzipによる圧縮 逆ポーランド記法の計算機 ２つの文字列間の類似度・距離 </description>
    </item>
    <item>
      <title>第12, 13講 応用２</title>
      <link>https://ksuap.github.io/2024spring/lesson12/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson12/index.html</guid>
      <description>2023-07-20 (Thu) 10:30 までにcpコマンドのプログラムを作成し，提出してください． 以下のステップが完成するごとに提出してください．
ただし，ステップ2のプログラムは，ステップ1を含んでいなければいけません． 同じように，ステップ6はステップ1〜5の全てが実行できなければいけません．
この講で利用するプログラム
ファイルをコピーする ヒント 実行例 参考 複数ファイルをディレクトリへコピーする ヒント 実行例 参考 オプション解析を行う ヒント1. オプション解析 ヒント2. オプション解析とヘルプの表示 ヒント3. verboseオプションが指定された場合の処理 実行例 参考 ファイルの上書きを確認する ヒント 実行例 参考 出力先のファイルが新しい場合はコピーしない ヒント 実行例 参考 ディレクトリを再帰的にコピーする ヒント 実行例 参考 </description>
    </item>
    <item>
      <title>第14講 最終課題</title>
      <link>https://ksuap.github.io/2024spring/lesson14/index.html</link>
      <pubDate>Thu, 27 Jun 2024 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson14/index.html</guid>
      <description> 最終課題に向けて 概要 目標 参考資料 課題の進め方 課題の提出方法 課題のデータ 評価項目 最終課題 ステップ0 ステップ1 [問題説明 | 実行例 | ヒント | 評価項目] ステップ2 [問題説明 | 実行例 | ヒント | 評価項目] ステップ3 [問題説明 | 実行例 | ヒント | 評価項目] ステップ4 [問題説明 | 実行例 | ヒント | 評価項目] ステップ5 [問題説明 | 実行例 | ヒント | 評価項目] ステップ6 [問題説明 | 実行例 | ヒント | 評価項目 ] </description>
    </item>
    <item>
      <title>補講A モダンな書き方</title>
      <link>https://ksuap.github.io/2024spring/advanced01/index.html</link>
      <pubDate>Thu, 13 Apr 2023 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/advanced01/index.html</guid>
      <description>ここに記した内容は，応用であり，実践しなければならないものではありません． 特に，この授業内では，ここに記す書き方をしたからといって加点するわけではありませんし， 実践しなかったからといって減点することもありません．
ただし，近年のプログラム（Javaだけでなく，PythonやJavaScriptなど）には，似たような書き方や考え方が導入されています． モダンなライブラリなどを利用する場合や，ソースコードを読む場合には，これらの書き方に習熟しておく必要があります． そのため，プログラムが得意な人は以下のような書き方に挑戦してみると良いでしょう．
この講で利用するプログラム
Optional: nullを使わない 背景 Optional 概要 作成 利用方法 あるディレクトリが保持するファイル・ディレクトリ一覧を取得する Optionalを利用しない場合 Optionalを利用する場合 参考資料 Stream: ループを使わない 背景 Stream API Streamの利用方法 Streamの生成法 Streamでできること filter map forEach collect Streamの適用例 奇数一覧 総和を求める ArgsPrinter モンテカルロ法による$\pi$の計算 参考資料 ラムダ式 $\lambda$ 概要 書き方 ラムダ式の書き方いろいろ 省略しない場合 引数の型を省略 引数の括弧を省略 メソッドの切り出し 波括弧とreturnの省略 参考資料 練習問題 1. nullチェック 2. 乱数値100個の統計（Stream） </description>
    </item>
    <item>
      <title>補講B グラフィックス</title>
      <link>https://ksuap.github.io/2024spring/advanced02/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/advanced02/index.html</guid>
      <description>シラバスでは第６講で実施する予定でしたが，以下の理由により実施しないことにしました． 講義資料はそのまま置いておきます．
グラフィックスで利用している EZ.java の配布元が配布をやめた． GitHub では公開されているようです． devcontainer を利用することになり，Docker 上の GUI をmacOS上に表示するためにトリッキーな方法を利用せざるを得ない． できることはできるようですが，ややこしいので授業としては扱いません． Macでdevcontainerを使ってX11 Forwarding この講で利用するプログラム
グラフィックス EZ.java 楕円の描画 座標系 例題 1. 楕円の描画の変更 その他の図形の描画 例題 2. 楕円以外の図形の描画 アニメーション アニメーションの基礎 例外機構（Exception Architecture） 検査例外と非検査例外 例外の責任転嫁 InterruptedExceptionの責任転嫁 throws節 例題 3. アニメーション 例題 4. 鉛直投げ上げ運動のアニメーション 練習問題 図形の描画 サイン波の描画 コッホ曲線 (Koch Curve)の描画 コッホ曲線（Koch Curve）のアニメーション描画 斜方投射 アニメーション まとめ </description>
    </item>
    <item>
      <title>Q &amp; A</title>
      <link>https://ksuap.github.io/2024spring/faq/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/faq/index.html</guid>
      <description>フォーマット記述子とは何ですか なぜ\nではなく，%nを利用するのでしょうか import文とは何ですか 可視性とは何ですか リンクリストとは何ですか インデントが面倒です 変数のスコープが短い方が良いのはなぜですか？ なぜmainメソッドに処理を書かない方が良いのでしょうか キャメルケースって何ですか？ System.exit は使わない方が良い？ ヨーダ記法は避けるべき？ なぜメソッドに分けないといけないのでしょうか どのようにメソッドに分ければ良いのでしょうか インデントを揃えているのにインデントがズレていると指摘を受けました Javaのソースコードはどこで見られますか 講義資料に間違いを見つけました フォーマット記述子とは何ですか System.out.printf に渡す%sなどの表示形式を指定するための文字列です． Java言語の場合，C言語とほぼ同じですが，Javaの場合は型がより多彩ですので，どの記述子にすべきかを注意する必要があります． 記述子が対応しない型の値を対応づけると実行時エラー（IllegalFormatConversionException）が発生します． フォーマット記述子と対応する型を以下に示します．
%c 1文字（characterの頭文字）を出力する． 対応する型：Character型 %s 与えられた値の文字列表現（stringの頭文字）を出力する． 対応する型：何でもOK． %d 整数を10進数で出力する（decimalの頭文字）． 対応する型：Integer型，Long型，Short型 %o 整数を8進数で出力する（octalの頭文字）． 対応する型：Integer型，Long型，Short型 %x 整数を16進数で出力する（hexadecimalのx）． 対応する型：Integer型，Long型，Short型 %f 浮動小数点変数を出力する（floating point numberの頭文字） 対応する型：Float型，Double型 %e 浮動小数点変数を指数表現で出力する（exponentialの頭文字）． 対応する型：Float型，Double型 %n 改行を出力する．実行環境によって改行コードが異なり，その違いを吸収するため． なぜ\nではなく，%nを利用するのでしょうか C言語では，\nで改行を表していましたが，Javaでは明示的に \n を使うことはありません． 改行のみを出力するときは，System.out.println(); とし， 改行付きで出力するときは，printlnメソッドの引数に出力したい内容を渡します． また，System.out.printf でも，\nは使わず%n を利用する方が良いとされています．
なぜなら，改行コードはプラットフォーム（WindowsやmacOSなど）で異なるためです． Windows では，改行は\r\nの２バイトで表されており，macOSやLinuxは\nで改行を表しています． 古いmacOS（MacOS 9以前）は\rで改行を表していました．
一方で，Java は，一度書けばどこでも動く（Write Once, Run Anywhere）ことを重要視しています． そのため，環境ごとの違いをどこかで吸収する必要があります． macOSでは改行されるのに，Windowsでは改行されない，のようなプログラムがあっては困るわけです． そのため，改行コードを直に書くことは避け，改行コードを表す記号を利用する方が良いとされているわけです．</description>
    </item>
    <item>
      <title>連絡事項・更新履歴</title>
      <link>https://ksuap.github.io/2024spring/announce/index.html</link>
      <pubDate>Mon, 24 Jun 2024 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/announce/index.html</guid>
      <description> 2024-06-24 最終課題を公開しました． 2024-04-13 講義の進め方，授業の流れで，解説時間に矛盾があった点を修正しました．解説の開始時刻を10:00に統一しました． 2024-03-26 第0講〜第12講の内容を公開しました． </description>
    </item>
  </channel>
</rss>