プログラミング演習Ⅱ 第1回 ガイダンス

プログラミング演習Ⅱ
第1回
ガイダンス
情報・知能工学系
山本一公
[email protected]
本演習の概要(1)
• C言語の「基礎知識」の習得
– プログラミング演習Ⅰの続き
– 配列、関数、ポインタ等
– プログラミング演習Ⅰの内容だけでは、
とてもじゃないが「C言語を勉強した」とは
言えない
– 演習Ⅱレベルの内容が分からないと、
まともなプログラムは作れない
本演習の概要(2)
• 文法的な内容に限る
– 演習Ⅰと同様
– アルゴリズム・データ構造の話は別の講義で
• 「データ構造基礎論」
• 「アルゴリズムとデータ構造」
– 計算機の構成については少し知識が必要
• ポインタの理解のためには、
メモリモデルの理解が必要
• 本演習内で必要なことだけ簡単に説明します
• 別の講義「計算機アーキテクチャ」
なぜC言語なのか?
• C言語は
– 「高級言語である!」
– 「高級言語なのに低級言語みたい!」
• 高級言語:BASIC, Pascal, C++, Java等
– 人間が理解しやすいプログラミング言語
• 低級言語:機械語、アセンブリ言語
– コンピュータが理解しやすいプログラミング
言語
なぜC言語なのか?(2)
• C言語は
– 高級言語でありながら、ハードウェアに直接
アクセス可能なコードを書くことができる!
• 例:ポインタを使うと番地指定でメモリアクセス
可能
– アプリケーションからデバイスドライバまで
書くことができる!
– 広く使われている!利用者が多い!
– 将来、つぶしがきく(と思われる)!
本演習の進め方
•
•
•
•
出欠確認
前回課題の解説
講義
課題演習(プログラム作成)
• 最後2回分は講義なしで、
応用課題をやります
スケジュール(1)
•
•
•
•
•
•
•
•
•
10/03
10/10
10/17
10/24
10/31
11/07
11/14
11/21
11/28
ガイダンス(今日)
復習、ファイル処理
配列(1)
配列(2)
関数(1)
関数(2)
データの基本型
授業予備日
授業予備日
スケジュール(2)
•
•
•
•
•
•
•
•
•
12/05 マクロ、列挙体等
12/12 文字列
冬季休業
1/09 ポインタ(1)
1/16 ポインタ(2)
1/23 文字列とポインタ(1)
1/30 文字列とポインタ(2)
2/06 応用課題(1)
2/13 応用課題(2)
教科書
• 柴田望洋著
「新版 明解C言語 入門編」
ソフトバンククリエイティブ
• プログラミング演習Ⅰと
同じです
成績について(1)
• 各回の演習課題(12回分)で50点満点
– 基本的な内容が理解できているかどうか
• 最後の2週でやる応用課題で50点満点
– 身につけたことを応用できるか、独自性を出せるか
• 合計100点で評価
• 必ず毎回出席すること
– 演習科目なので、要出席です
– レポートだけ出しても0点です
– やむを得ない理由で欠席する場合は、早めに連絡を!
成績について(2)
• 1回でも他人のプログラム・レポートを
コピーしたら最終成績を0点にします
– カンニングと同じ
– 「身につける」という目標が達成できない
• コピーを疑われるレポートが出てきた場合は、
直接口頭試問により内容の理解度を
チェックします
レポートについて
• 電子メールで提出
– 提出先は [email protected] (質問メールもここ)
– Subjectは「プログラミング演習2 課題xx(課題番
号)
学籍番号・氏名」のように書くこと
– C言語ソースファイルを添付する
– ソースファイルの頭にコメントで以下の情報を入れる
• 学籍番号・氏名
• プログラムの説明(どのように動くのか、工夫した点等)
• 実行結果(長い場合は一部)を貼る
– 提出締切は基本的に講義の1週間後の正午
– 添削してから返却します
【重要】分からなかったら
• 分かるまで質問してください!
– 最初が肝心です
– 後になればなるほど質問しにくくなります
• 「聞くは一時の恥、聞かぬは一生の恥」です
– 質問する相手は、私でもTAでもどちらでもいいです
• うやむやにしないでください
– うやむやにすると後で本当に困ります
• ( 3系のほぼ)全ての卒業研究はプログラミングを含んでいます
• 就職してプログラミングをしない人は(3系ではほぼ)いません
• 「プログラミング言語」もある種の「言語」
– 外国語みたいなもの
– 「慣れ」の部分もあるので、接している時間が重要です
– 使わないと確実に忘れます
計算機の利用について
• プログラミング演習はLinuxで行います
– 使い方は覚えていますか?
• レポートは電子メールで提出してもらうので、
作成したC言語のファイルを添付ファイルとし
て
メールを送れるようにしておきましょう
• 利用ガイドを見ましょう
– https://imc.tut.ac.jp/wiki/Guide/
計算機を使ってみよう
• ディスプレイを出して、電源を入れよう!
– 天板を手前に引いて、ディスプレイを引き出してく
ださい
– 端末本体は、机の下です
• Linuxをbootしよう!
– bootの途中でF8を押して、Linuxを選択してください
• ログインしよう!
– 共通ID・パスワードでログインできます
– 「IDが分からない」「パスワードを忘れた」
• 教員・TAは何もできません
• 情報メディア基盤センター1階のスタッフ室1に
行ってください、今すぐ
ターミナル(端末)を
出してみよう
• ターミナルを出してみてください
– 「アプリケーション」→「アクセサリ」→「端末」
• プログラミング演習Ⅰでも使ったと思います
• UNIXの基本的なコマンドを忘れちゃった人は、
演習Ⅰのことを思い出しましょう
• コンパイラの使い方も思い出しましょう
プログラムを入力して、
コンパイルしてみよう
• エディタを起動、プログラムを入力しましょう
– エディタは何を使っていましたか?
• gedit?Emacs?vim?
• 自分の使い易いものを使ってかまいません
– 試しに、p.88 List 5-1でも入力してみましょう
• 入力したプログラムをコンパイルしましょう
– コンパイラはgccです
– 実行もしてみましょう
• プログラミング演習Ⅰでやっていたのと
同じようにできましたか?
ログアウトしよう
• ログアウトしないと、自分のアカウントが
不正に使用される恐れがあります
– 自分のアカウントで悪事を行われると、
自分の責任になってしまうかもしれません
• ログアウト手順
– プログラムを全て終了しましょう
• 端末はexitコマンドで終了しましょう
– メニューバーの電源ボタンを押して「ログアウト」を選択しま
す
– 「シャットダウン」を選択します
できましたか?
• できたら今日はおしまいです
• 今日は課題はありません
• プログラミング演習Ⅰの復習を
しっかりやっておいてください
• 質問がある人は「C-515 山本」まで
– プログラミング演習Ⅰの範囲の質問でも受け付けま
す
– メールでの質問もOKです
• [email protected] または [email protected]
授業用Webサイト
• URL:
http://www.slp.cs.tut.ac.jp/~kyama/programming2/
• 課題のpdfファイルが置いてあります。
• 授業で使ったpptファイルを置いていきます。