オブジェクト指向言語・同演習のホームページです。受講者はこのページを随時チェックするようにしてください。
中間試験(30%)、期末試験(40%)、毎週の課題(30%)、 で採点し、授業の目標達成が確認できた者に単位を認定する。
なお、合格/不合格の判定については、単純な加算で 60 点以上を合格とするが、 秀・優・良・可の判定については、割合を考慮して調整をすることがある。
必須課題すべてと、選択(発展)課題の平均提出率分を完璧に解けば満点とする。
個々の課題については、以下の通りとする。
演習時間(通常、木曜日 2 限)内は、原則として自分の力で解く。(TA・教員に聞くのは良い。)
(ただし、解いている問題に特有ではないプログラミング言語一般に関する質問などは許容範囲とする。)
なお、対話型の AI は、人と同等とみなす。つまり、演習時間内は使用禁止である。
なお、一部の事前に公開した課題は、演習時間開始 10 分後を締切とすることがある。
演習時間終了後は、人に相談して解いても良い。 (ただし人の解答のコピペは絶対禁止(コピーさせた側も同罪)) なお、対話型の AI は、人と同等とみなす。つまり、対話型 AI の解答のコピペも禁止である。(自分なりに理解して再構成したものはよい)
安易に訂正して再提出を繰り返すことを防ぐために、基本的に提出しなおしは1回までとする。
(つまり、最初の提出とあわせて、2回まで)
ただし、指摘を受ける前に自分で気がついて再提出するのは良い。
解答の間違いはできるだけ見つけて指摘するようにするが、 他の間違いに隠れて気付かないこともあるので、あくまでも自分の責任で問題の要件を満たしているかチェックすること。
たとえ演習終了後でも、問題を掲示板などに投稿して、不特定多数の人に相談することは禁止する。
「オブジェクト指向言語」と「オブジェクト指向言語演習」は密接に関連しています。 必ず同時に受講するようにして下さい。両科目の単位認定は連動しています。
インストールには時間がかかるので、 ソフトウェアのインストールを読んで、 実際に演習で使用するより前にソフトウェアをインストールしておいて下さい。
注意: 設定が変更されたのに、変更が反映されないときは、 いったんログアウトして、 再度アクセスを試みて下さい。
必ず各自で提出したファイルのバックアップを取っておいて下さい。 (自分のノート PC だけではなく、stfile などの大学のサーバのどこかにもバックアップしておいて下さい!!)
NG などで再提出してもらったファイルの採点は、水曜日にすることが多いですが、忙しくてできないときもあります。 再提出の採点は気長に待ってください。
これより過去の課題はありません
本日はマリンライナーの運転取りやめが予定されているため、授業を Zoom でも配信します。 Zoom URL は カダサポ で通知しています。 なお、Zoom は、対面の授業に参加できない人向けです。 遠隔参加を推奨しているわけではないので、特別な事情のない場合は、対面で参加してください。
なお、今週 (05/30) より演習時間内に提出された課題の得点に、わずかな傾斜を設けます(10:30 に提出 ⋯ 104 %、12:00 に提出 ⋯ 95 %)。 慌てる必要はありませんが、完成した課題はすぐに提出してください。
5/30 に 4 章の最後まで進まなかったので、中間試験は 6/13 に延期します。
次週 6/13 は 2 時限めの演習で補足 Ⅰ 章のプリントの内容を扱う予定です。 補足 Ⅰ 章は授業では解説しませんので、各自で読んでおいてください。
2 時限めの演習では補足 Ⅰ 章のプリントの内容を扱う予定です。
Java Servlet のコンパイル・実行
(Gradle を使うほうを推奨します。何らかのトラブルでよっぽどうまく行かないときのみ Embedded Jetty を試してください。)
> git clone https://guppy.eng.kagawa-u.ac.jp/2024/OOPL/MyServlet.git > cd MyServlet > gradle appRun
というコマンドを実行すると、(最初は JAR ファイルのダウンロードなども行うのでひじょうに時間がかかるかもしれないが)
Tomcat あるいは Jetty が実行されるので、“Press any key to stop the server.” とメッセージが出てから、ブラウザーに「http://localhost:8080/MyServlet/MyDate」というアドレスを入力すると、
実行結果を見ることができる。
6/27、7/04 7/11 に、2時限めの演習で補足 Ⅱ、
Ⅲ 章のプリントの内容を扱う可能性があります。
補足 Ⅱ, Ⅲ 章は授業では解説しませんので、各自で読んでおいてください。
(6/26 New!) 中間試験の得点を「各個人へのメッセージ」 に公開しました(はず)、確認しておいてください。(6/26 には設定ミスで公開できておらず、結局 6/27 に公開しました。)
授業評価アンケート
(08/01 10:30 公開)課題に対するコメント、
期末テストは 1 時限めに対面で実施します。
テストは都合により着席位置を指定しています。掲示された位置に着席するようにしてください。
2 時限めは授業はありません。
毎週の課題のやり直し分の提出は 8/01(木)23:59 を締め切りとします。
これ以降の予定はありません。🐻🐼
ここにリンクをはっていないファイルや、公開日前のファイルは 公開日までに変更する可能性があるので注意してください。
補足第 1 〜 3 章は 2 時限目の演習で使用します。印刷・配布はしません(書き込むところがないので)。 紙でほしい人は各自で印刷してください。
Java Servlet のコンパイル・実行方法として、ここでは 2 通りを紹介しますが、 Gradle を使うほうを推奨します。何らかのトラブルでよっぽどうまく行かないときのみ Embedded Jetty を試してください。
Gradle による Web アプリケーションの作り方
Gradle をインストールする必要はありますが、
あとは一番楽だと思われます。
Embedded Jetty の使い方
依存しているものが少ないので、本来一番トラブルの少ないやりかただと思われますが、
現行の Servlet 5.0 API に対応していませんので現状ではお勧めできません。
Git の使い方 — バージョン管理ツール Git の使い方を紹介します。
Java のソースファイルは準備の都合上 UTF-8 で保存しています。一方 Windows の JDK 17 以前
のデフォルトは Shift_JIS です。
Windows の JDK (17 以前)で、ここのファイルをダウンロードしてコンパイルするときは、
Shift_JIS で保存し直すか、次のように encoding を指定してコンパイルしてください。
なお、JDK 18 以降は Windows でも UTF-8 がデフォルトになったので、-encoding UTF-8
は不要になっています。
javac -encoding UTF-8Nantoka .java
プリント第 2 章のプログラム
Hello0(java, ),
Hello(jar,
java, ),
ColorTest(jar,
java,
),
ShapeTest(jar,
java,
),
StringExample(java,
),
ScannerExample(java,
)
プリント第 3 章のプログラム
CalendarTest(jar,
java,
),
N_gon(jar,
java,
),
Parabola(jar,
java,
),
Gradation1(jar,
java,
),
Graph(java,
),
ArrayIndexOutOfBoundsExceptionTest(java,
,
c,),
Othello(jar,
java,
),
プリント第 4 章のプログラム
MouseTest(jar,
java,
),
KeyTest(jar,
java,
),
ChangeColor(jar,
java,
),
AudioSample(java,
),
Factorial(jar,
java,
),
TryCatchTest
(java,
),
TryCatchTest2
(java,
),
Graph2(jar,
java,
),
AddTime2(jar,
java,
),
MouseDraw(jar,
java,
),
ColorName(jar,
java,
),
LeftRightButton(jar,
java,
),
LeftRightButton2(jar,
java,
),
LeftRightButton3(jar,
java,
),
FinalExample(jar,
java,
),
LeftRightButton4(jar,
java,
),
プリント第 6 章のプログラム
ThreadTest.java,
Guruguru (jar,
java)
Denko (jar,
java)
BubbleSort1(jar,
java),
BubbleSort2(jar,
java,
),
Hanoi(jar,
java,
問6.6.1 の完成イメージの jar,
JavaScript 版)
プリント第 7 章のプログラム
foo/bar/Baz.java,
abc/xyz/Main.java,
foo/Bar.java,
foo/BarTest.java,
BarTest.java,
プリント補足第 Ⅰ 章のプログラム
MyDate.java
Counter.java, GetRealPathExample.java, Counter0.java, DirIndex.java,
getRealPathメソッド,
XXXReaderクラス,
Fileクラス,
XXXWriterクラス,
Integer.parseIntメソッド,
プリント補足第 Ⅱ 章のプログラム
QueryStringTest.java,
HighLight.java
getQueryStringメソッド
Aisatsu.java, Aisatsu.html, Mitsumori.html, GuestBook.java, GuestBookInput.html,
doPostメソッド,getParameterメソッドsetCharacterEncodingメソッド,
(フィルタ
Filterで設定する方法,
AuthFilter.java),
forward メソッド,
sendRedirect メソッド
getParameterNamesメソッド,
Enumerationクラス
(Parameters.html,
GetParameterNamesTest.java)
プリント補足第 Ⅲ 章のプログラム
SessionCounter.java,
Quiz.java,
quiz.txt
getSessionメソッド,
getAttributeメソッド,
setAttributeメソッド,
invalidateメソッド ,
Filterを利用する方法
プリント第 A 章の参考プログラム
プリント第 K 章のプログラム
Hello.kt,
Twice.kt,
VarTest.kt,
Quadratic.kt,
Point.kt,
PointTest.kt,
Movable.kt,
ExtensionTest.kt,
ExtensionTest2.kt,
LambdaTest.kt,
SequenceTest.kt,
Primes.kt,
プリント未掲載の Kotlin プログラム
(GUI アプリケーション)SwingTest.kt, Gradation.kt
(サーブレット)src/main/kotlin/HelloKotlin.kt,
(Kotlin を含む Gradle プロジェクトの build.gradle.kts)
Java の故郷(英語)
TIOBE index
さまざまな検索エンジンに基づく、プログラミング言語の人気ランキング
PYPL
Google 検索に基づく、プログラミング言語の人気ランキング
Programming Languages
Influence Network
プログラミング言語同士がどう影響を与えあっているかをグラフにしたもの
GitHut
GitHub で使われているプログラミング言語のランキング