情報とコンピュータ 静岡大学工学部 安藤和敏 2004.10.04.

Slides:



Advertisements
Similar presentations
プログラミング Ⅱ 第2回 第1回(プログラミングⅠの復 習) の解説. プログラムの作り方 いきなり完全版を作るのではなく,だんだ んふくらませていきます. TicTa cToe1.
Advertisements

プログラミング論 第八回数字の計算,整数の入出力. 本日の内容 前回の課題(続き) 前回の課題(続き) 数字の計算をする 数字の計算をする – 加減乗除を行う – インクリメント演算子とデクリメン ト演算子.
情報とコンピュータ 静岡大学工学部 安藤和敏 1章 プログラミング入門 ― 決定木のコーディング.
1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
1 情報基礎 A プログラムやソフトウエアの 構造 徳山 豪 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
情報処理3 アプリケーション プログラミング 今井孝明.
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
情報とコンピュータ 静岡大学工学部 安藤和敏
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
Java I 第2回 (4/18)
プログラミング入門 (教科書1~3章) 2005/04/14(Thu.).
第1回プログラミング入門 (教科書1~3章).
FORTRAN 科学技術計算用 数値演算精度を重視したシステム K=0 DO 10 I=0,N,1 K=K+I 10 CONTINUE
数値計算及び実習 第3回 プログラミングの基礎(1).
データ構造と アルゴリズム 理工学部 情報システム工学科 新田直也.
プログラミング基礎I(再) 山元進.
情報とコンピュータ 静岡大学工学部 安藤和敏
Lispとは ゲーム理論 minimaxアルゴリズム αβアルゴリズム ソースコードの一部
プログラミングとは Q.プログラムとは何か? A.コンピュータを制御するための,コンピュータに対する命令(指示)の集まり.
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
情報科学1(G1) 2016年度.
データ構造と アルゴリズム 知能情報学部 新田直也.
情報工学科 二宮 洋・鈴木 誠 小林 学・高畠俊徳 火曜日 1コマ目
トキのカタチ2016 電子工作(Arduino)講習
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
【プログラミング応用】 必修2単位 通年 30週 授業形態:演習.
計算物理学基礎 第1回 UNIXの基礎 C言語の基本.
繰り返し計算 while文, for文.
FlexとBison+アルファ -実習編-
プログラミング入門 電卓を作ろう・パートIV!!.
プログラミング言語入門.
コンピュータに計算させる命令を確かめよう!
情報とコンピュータ 静岡大学工学部 安藤和敏
データ構造とアルゴリズム論 終章 専門科目におけるプログラミング
情報とコンピュータ 静岡大学工学部 安藤和敏
情報とコンピュータ 静岡大学工学部 安藤和敏
情報とコンピュータ 静岡大学工学部 安藤和敏
コンピュータ概論B ー ソフトウェアを中心に ー #02 システムソフトウェアと アプリケーションソフトウェア
VBで始めるプログラミング こんにちは、世界。 /28 NARC.
東京工科大学 コンピュータサイエンス学部 亀田弘之
Fortranについて 高エネルギー加速器研究機構 平山 英夫.
プログラミング基礎a 第8回 プログラムの設計 アルゴリズムとデータ構造
環境システム科学演習(後半) FORTRAN & C(以降FORTRANと省略して呼びます)は富士通
情報処理Ⅱ 第2回:2003年10月14日(火).
アルゴリズム論 (第12回) 佐々木研(情報システム構築学講座) 講師 山田敬三
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
情報とコンピュータ 静岡大学工学部 安藤和敏
11.再帰と繰り返しの回数.
C言語 はじめに 2016年 吉田研究室.
情報とコンピュータ 静岡大学工学部 安藤和敏
データ構造とアルゴリズム 第11回 リスト構造(1)
2013年度 プログラミングⅠ ~ はじめてのプログラミング ~.
コンパイラ 2012年10月1日
補講:アルゴリズムと漸近的評価.
データ構造とアルゴリズム (第5回) 静岡大学工学部 安藤和敏
情報基礎Ⅱ (第1回) 月曜4限 担当:北川 晃.
データ構造とアルゴリズム論 終章 専門科目におけるプログラミング
ガイダンス 電子計算機 電気工学科 山本昌志 1E
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語 1.
情報とコンピュータ 静岡大学工学部 安藤和敏
情報とコンピュータ 静岡大学工学部 安藤和敏
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
情報とコンピュータ 静岡大学工学部 安藤和敏
ピクロスのプログラミング 発表者 07A1075 八尋貴文.
1.2 言語処理の諸観点 (1)言語処理の利用分野
printf・scanf・変数・四則演算
情報処理Ⅱ 2006年10月20日(金).
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります.
情報とコンピュータ 静岡大学工学部 安藤和敏
Presentation transcript:

情報とコンピュータ 静岡大学工学部 安藤和敏 2004.10.04

この講義でなにを教わるのか? コンピュータ科学 (=コンピュータ・サイエンス =情報科学) コンピュータ・リテラシ(エクセル,ワードの使い コンピュータ科学 (=コンピュータ・サイエンス =情報科学) コンピュータ・リテラシ(エクセル,ワードの使い 方等)については,教えない.(そういうことは,専門 学校のパソコン教室や静岡大学の別の講義で教え られているかも知れない.)

コンピュータ科学とは何か?

コンピュータ科学とはなにか? アルゴリズムとデータ構造 プログラミング言語 コンピュータ・アーキテクチャ 数値および記号計算 オペレーティング・システム ソフトウェアの方法論と工学 データベースおよび情報検索システム 人工知能とロボティクス 人間とコンピュータの関係 ACMコンピュータ科学特別調査委員会報告書,1988

アルゴリズム ― コンピュータ科学における最も重要な概念 ― アルゴリズム ― コンピュータ科学における最も重要な概念 ― アルゴリズム=コンピュータ・プログラムに書き直すことに適した,問題を解くための方法を記述したもの. 料理のレシピにも似ているが,レシピはコンピュータ・プログラムに書き直すことには適していない. NHK教育「ピタゴラスイッチ」と言う番組で「アルゴリズムたいそう」というのがあった.

カレーのレシピ 1.なべにサラダ油を大さじ1杯そそいで熱する. 2.みじん切りにしたたまねぎを炒める. 3.一口サイズに切ったジャガイモとニンジンと肉を炒める. 4.中火で煮て沸騰したら,アクを取る. 5.中火で材料がやわらかくなるまで煮る. 6.一旦火を止めて,カレーのルーを割りいれる. 7.さらに,10分くらい弱火で煮込む.

アルゴリズムの例 二つの整数の最大公約数を求めるアルゴリズム 1.2つの整数のうち,小さい方を y とし,大きいほうを x とする. 2.y が 0 ならば,終了.答えは,x である.そうでなければ,次の3に進む. 3.x に y を代入して,y に x を y で割った余りを 代入する. 4.2へ戻る.

ユークリッドの互除法のPascalプログラム program prog1(input, output); var a,b,x,y,amari : integer; begin a :=51; b :=30; x := a; y := b; while(y <> 0) do amari := x mod y; x := y; y := amari; end; writeLn(x); end.

アルゴリズムのコード化 アルゴリズムをC言語,Pascal,Java 等の言語に書き直すことをコード化という. コンピュータ・プログラム アルゴリズムをC言語,Pascal,Java 等の言語に書き直すことをコード化という. コード化 コンピュータ・プログラム アルゴリズム コードとも呼ばれる プログラミングとも呼ばれる

テキスト A.W.Biermann著「やさしいコンピュータ科学」アスキー出版社,1993年 A.W.Biermann著「やさしいコンピュータ科学」アスキー出版社,1993年  (A.W.Biermann: Great Ideas in Computer Science. MIT Press, 1990. の翻訳) 本の帯「MIT(マサチューセッツ工科大学)で使われている教科書「Great Ideas in Computer Science」の日本語版です。専門家のみならず、コンピュータ科学に興味を持つすべての方々にコンピュータの深遠な概念をやさしく解説します。 」

このテキストの特徴 数学的なアプローチをとらない. プログラミング中心ではなくて,コンピュータ科学の概論 しかし,プログラミングが全くないわけではなくて,実際はある程度プログラミングについて字数を割いている.(14章のうち4章くらい.) プログラミング言語はPascalを用いている.

この講義を履修するために必要なもの パソコン(プログラミングのため) Pascal の処理系:HelloPascal http://coconut.sys.eng.shizuoka.ac.jp/ic/ に置いてあるので各自ダウンロードしてください.

1章 プログラミング入門 ―決定木のコーディング 1章 プログラミング入門 ―決定木のコーディング

例1:図書推薦の決定木 D.Cooper, M.Clancy: Oh! Pascal. プログラミングに興味がありますか,それとも理論に興味がありますか? プログラミング D.Harel: Algorithmics. yes 理論 数学的なアプローチをとりますか? プログラミング中心の本が良いですか,それともコンピュータ科学の概論を知りたいですか? プログラミング P.Pattis: Karel the Robot. no A.Biermann: Great Ideas in Computer Science. 概論

例2:医療アドバイスの決定木 アスピリンを飲むとよいでしょう. はい 軽い頭痛がたまに起こる程度ですか? 頭痛 医者に診てもらいなさい. いいえ 朝 どこがわるいのですか? 胃痛 その痛みはよく起こるのですか? どのようなときに痛みますか? 夕 お酒を飲んでいますか? 食後 咳とくしゃみ 何か心配事でもあるのですか? いつからこの状態が続いてますか?

例3:カモメの分類の決定木 翼の色は何色ですか? 黒 くちばしは何色ですか? ミツユビカモメ 赤 黄色 足の色は何色ですか? 胸に白い斑点がありますか? 黒 肌色

例4:ニム ・ 2人で遊ぶゲーム. ・ 上の図のような7つのマス目を描き, ・ 最初の人は×を左端から1~3個書き込める. ・ 2人で遊ぶゲーム. ・ 上の図のような7つのマス目を描き, ・ 最初の人は×を左端から1~3個書き込める. ・ 相手はそれに続けて○を同じく1~3個書き込め る. ・ これを繰り返していって,一番右端のマスに書き込んだ人の勝ち.

例4:ニムの決定木 いまの状態は×, 私は○を2個入れて×○○とします.あなたは? × いまの状態は××, 私は○を1個入れて××○とします.あなたは? あなたの手は? ×× いまの状態は×××, 私は○を1個入れて×××○とします.あなたは? ×××

例4:ニムの決定木(続き) いまの状態は×○○×, 私は○を3個入れて×○○×○○○として,私の勝ち. × いまの状態は×○○××, 私は○を2個入れて×○○××○○として,私の勝ち. いまの状態は×, 私は○を2個入れて×○○とします.あなたは? ×× いまの状態は×○○×××, 私は○を1個入れて×○○×××○として,私の勝ち. ×××

例4:ニムの決定木(続き) いまの状態は××○×, 私は○を3個入れて××○×○○○として,私の勝ち. × いまの状態は××○××, 私は○を2個入れて××○××○○として,私の勝ち. いまの状態は××, 私は○を1個入れて××○とします.あなたは? ×× いまの状態は××○×××, 私は○を1個入れて××○×××○として,私の勝ち. ×××

例4:ニムの決定木(続き) いまの状態は×××○×, 私は○を3個入れて×××○×○○として,私の勝ち. × いまの状態は×××○××, 私は○を1個入れて×××○××○として,私の勝ち. いまの状態は×××, 私は○を1個入れて×××○とします.あなたは? ×× いまの状態は×××○×××. あなたの勝ち. ×××

プログラミングをはじめるには コンピュータ・プログラムとは,コンピュータに実行させるコマンド(命令)を並べたもの. コンピュータ・プログラムは,コンピュータ上で走らせ(run)たり,実行する(execute)ことができる.

プログラムを実行するために必要なもの コンピュータ(MacよりもWidowsが望ましい) Pascalを処理させるためのソフトウエア・システム(HelloPascal) コンピュータを正しく起動・動作させるためのマニュアル コンピュータをよく知っている人

機械語 実は,コンピュータ・プログラムはそのままでは,実行できない. アルゴリズム コンピュータ・プログラム 機械語プログラム コード化 コンパイル コンピュータ・プログラム 機械語プログラム コンパイラと呼ばれるソフトウェアを用いる

Pascalのコンパイラ テキストにはTurboPascalというコンパイラが紹介されているが,この講義ではHelloPascalというコンパイラを用いる.

はじめてのPascalプログラム program FirstCode(input, output); begin writeLn(' Great Ideas '); writeLn(' in '); writeLn(' Computer Science '); end.

プログラムの書式 Pascalプログラムは,ヘッダ,キーワード begin, セミコロン(;)で終わる一連の文,キーワード end からなる. program FirstCode(input, output);  begin writeLn(' Great Ideas '); writeLn(' in '); writeLn(' Computer Science '); end. ヘッダ begin 文 end.

文 プログラムにおける文とは,コンピュータに指示する個々のコマンド(命令)のことで,英語の命令文に相当する. 例えば, writeLn(' Great Ideas '); という文は, 「画面に“ Great Ideas “という文字を書き出せ」 というコンピュータに対する命令である.

プログラムの実行 プログラムは,特別な文で指示しない限りは,コンピュータによって上から下に向かって,1文ずつ実行される. program FirstCode(input, output);  begin writeLn(' Great Ideas '); writeLn(' in '); writeLn(' Computer Science '); end.

文の意味と構造 = + 文 writeLn(' Great Ideas '); writeLn(''); Great Ideas 構文 データ

構文は正しくないといけない(1) { FirstCode } program FirstCode(input, output); begin writein(' Great Ideas '); writeLn(' in '); writeLn(' Computer Science '); end.

構文は正しくないといけない(2) { FirstCode } program FirstCode(input, output); begin writeLn(' Great Ideas '); writeLn(' in ') writeLn(' Computer Science '); end.

構文は正しくないといけない(3) { FirstCode } program FirstCode(input, output); begin please writeLn(' Great Ideas '); writeLn(' in ') writeLn(' Computer Science '); end.

データは間違っていてもプログラムは実行される(1) { FirstCode } program FirstCode(input, output); begin writeLn(' Grit Iders '); writeLn(' on '); writeLn(' askdjfak%%768df'); end.

こういう書き方をしても実行される (けど,読みにくいのでやめましょう.) { FirstCode } program FirstCode(input, output); begin writeLn (' Great Ideas '); writeLn(' in '); writeLn(' Computer Science '); end.

Secod Code { SecondCode } program SecondCode(input, output); begin Secod Code { SecondCode } program SecondCode(input, output); begin writeLn('*************************'); writeLn('* *'); writeLn('* Decision Trees *'); writeLn('* 決定木 *'); end.