データ構造とプログラミング (第1回) 大岩 元 TA: 武田林太郎 SA: 明石 敬.

Slides:



Advertisements
Similar presentations
オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
Advertisements

1 情報基礎 A 第 9 週 プログラミング入門 VBA の基本文法 1 準備・変数・データの入出力 徳山 豪・全 眞嬉 東北大学情報科学研究科 システム情報科学専攻 情報システム評価学分野.
2.5 プログラムの構成要素 (1)文字セット ① ASCII ( American Standard Code for Interchange ) JIS コードと同じ ② EBCDIC ( Extended Binary Coded Decimal for Information Code ) 1.
ソフトウェア工学 知能情報学部 新田直也. オブジェクト指向パラダイムと は  オブジェクト指向言語の発展に伴って形成され てきたソフトウェア開発上の概念.オブジェク ト指向分析,オブジェクト指向設計など,プロ グラミング以外の工程でも用いられる.  ソフトウェアを処理や関数ではなくオブジェク.
アルゴリズムとデータ構造 第2回 線形リスト(復習).
ラベル付き区間グラフを列挙するBDDとその応用
Java I 第2回 (4/18)
プログラミングパラダイム さまざまな計算のモデルにもとづく、 プログラミングの方法論 手続き型 関数型 オブジェクト指向 代数 幾何.
アルゴリズムとデータ構造1 2007年6月12日
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
VBA(Visual Basic Application)を使ったプログラミングの初歩概説
オブジェクト指向プログラミング(2) OOPの三大要素 「クラス」「ポリモーフィズム」「継承」
オペレーティングシステムJ/K 2004年11月4日
情報科学1(G1) 2016年度.
アルゴリズムとデータ構造 2011年6月13日

オブジェクト指向 プログラミング 第一回 知能情報学部 新田直也.
データ構造と アルゴリズム 第八回 知能情報学部 新田直也.
オブジェクト プログラミング 第1回.
第13回 ハッシュテーブルを使ったプログラム ~高速に検索するには?~.
データベース設計 第2回 データベースモデル(1)
型付きアセンブリ言語を用いた安全なカーネル拡張
~手続き指向からオブジェクト指向へ[Ⅱ]~
ハッシュ表 データ構造とプログラミング(12)
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
プログラミング言語入門.
Nakano School of Business 経営情報ビジネス科 【 Java概論(Test5)】
社会シミュレーションのための モデル作成環境
コンピュータ概論B ー ソフトウェアを中心に ー #09 データベース (後編)
情報システムの基礎概念 (1) 情報システムとは
C#言語ソースプログラムの原型 C言語 C#言語 Hello World! Hello Students! オマジナイ! 適当なクラス名
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
復習その1+α JBuilderの使い方を思い出す。 配列とGUI
大岩 慶應義塾大学 環境情報学部 情報技術者と日本人 情報教育論2003 大岩 慶應義塾大学 環境情報学部.
アルゴリズムとデータ構造1 2005年6月24日
アルゴリズムとデータ構造 2010年6月21日
データ構造とアルゴリズム論 第4章 レコード構造を使った処理-クラスの利用
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
これからの情報教育 識字教育としての情報教育
スタックとキュー データ構造とプログラミング (第5回).
明星大学 情報学科 2012年度前期     情報技術Ⅰ   第1回
アルゴリズムとプログラミング (Algorithms and Programming)
Introduction to Soft Computing
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
アルゴリズムとデータ構造 2012年6月11日
アルゴリズムとプログラミング (Algorithms and Programming)
コレクション・フレームワーク J2EE I (データベース論) 第6回 /
コレクション・フレームワーク データベース論 第7回.
オペレーティングシステムJ/K (管理のためのデータ構造)
サブゼミ第7回 実装編① オブジェクト型とキャスト.
アルゴリズムとデータ構造1 2009年6月15日
第6回放送授業.
情報数学Ⅲ 5,6 (コンピュータおよび情報処理)
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
データ構造とアルゴリズム論 第9章 連結リスト
アルゴリズムとデータ構造 2010年6月17日
ソフトウェア工学 知能情報学部 新田直也.
オブジェクト指向言語論 第一回 知能情報学部 新田直也.
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
明星大学 情報学科 2014年度前期     情報技術Ⅰ   第1回
C#プログラミング実習 第1回.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
 タイピング  情報教育の効果を高めるために 慶應義塾大学 環境情報学部教授 大岩 元.
新しい情報教育 基礎としてのコンピュータ科学
Presentation transcript:

データ構造とプログラミング (第1回) 大岩 元 TA: 武田林太郎 SA: 明石 敬

教科書 Robert Lafore 著 岩谷 宏訳  Java で学ぶ アルゴリズムとデータ構造  ソフトバンク 1999年 

日本のIT人材不足の実態 1. 先端的研究社層が、1桁以上薄い 2. 上級技術者(高度人材)も1桁少ない 先端 ← 初級 Innovators Early Adopters Early Majority Late majority Laggards 技術レベル 先端的研究者 高度人材 ソフトウェア 開発技術者 基本情報 技術者 初級シスアド 米国 2.5% 13.5% 34% 16% 日本 0.5% 20% 45% 32% 図1 IT人材資源日米比 1. 先端的研究社層が、1桁以上薄い 2. 上級技術者(高度人材)も1桁少ない 3.  Early Majority(旧1種レベル)も少ない 4.  Late majority(旧2種レベル)は人口比に近い 5. 情報技術の素人(初級シスアド)は似たり寄ったり 表1 米国と比較した日本の技術者の現状

インド人、中国人IT技術者 日本人技術者は年収3-400万円のプログラマーしかいない 外国人技術者確保が現在の至上命令に 日本人は仕様を作れない 外国人は仕様通りしか作れない 日本語教育が問題 岩崎式日本語教育(MISJ)なら400時間の教育で十分可能

ACMプログラミングコンテスト 過去4回国内予選の優勝校は日本以外 2001年函館予選 2001年世界大会(ハワイ) 1位 復旦大 2位 東大 3位東工大 2001年世界大会(ハワイ) 1位 上海交通大 2位 マサチューセッツ工科大 3位 ウォータールー大 ……… 18位 東大

ソフト技術者の問題 いい加減な仕事でも、コンピュータでやれば役に立つ 役に立つソフトだからと金を払う人がいる かせげるからプロだと思うソフト技術者 仕事をたのむ人がしっかりする必要がある

Computer Science Body Of Knowledge(CC2001) DS. Discrete Structures (43 core hours) PF. Programming Fundamentals (38 core hours) AL. Algorithms and Complexity (31 core hours) PL. Programming Languages (21 core hours) AR. Architecture and Organization (36 core hours) OS. Operating Systems (18 core hours) NC. Net-Centric Computing (15 core hours) HC. Human-Computer Interaction (8 core hours) GV. Graphics and Visual Computing (3 core hours) IS. Intelligent Systems (10 core hours) IM. Information Management (10 core hours) SE. Software Engineering (31 core hours) SP. Social and Professional Issues (16 core hours)

大学における情報分野の アクレディテーション(JABEE) 理論・問題分析・設計ができる アルゴリズムとデータ構造 コンピュータシステムの構成 情報ネットワーク ソフトウェアの設計 プログラミング言語の諸概念 プログラミング能力 離散数学と確率・統計

ストック(体系化された知識とその応用力) 学習におけるストックとフロー ストック(体系化された知識とその応用力) フロー(取り込んだ知識) 知識 時間

情報処理能力のブーター 身体軸 タッチタイピング 論理軸 プログラミング 感性軸 図解力(発想力)

データ構造とアルゴリズムの重要性 現実世界をうまくモデル化できる 現実世界のデータを記録したり表せる プログラムをより速く実行できる アルゴリズムの選択がまずいと1秒の計算が何時間もかかる 抽象的な表現を実感できるようになる

インデクスカードの実現(例) データをどのように表現するか 枚数が数万枚になっても大丈夫か 新しいカードの挿入や不要カードの削除はどう(能率的に)実現できるか カードの探索は高速にできるか

データ構造の利害得失(例) 配列の利点 順序配列の利点 リストの利点 配列の欠点 順序配列の欠点 リストの欠点 挿入が高速 インデクスで高速アクセス 順序配列の利点 探索はより高速 リストの利点 挿入と削除は速い 配列の欠点 探索と削除が遅い 順序配列の欠点 挿入と削除は遅い リストの欠点 探索が遅い

用語 データベース レコード フィールド キー 単なるデータの集まり データベースを構成するデータ単位 レコードの構成要素 探索のためのフィールド

手続き型言語の問題点 課題を機能に分けて構成する データの管理が global と local の2つしかない 実世界を構成する仕方は、プログラマーの頭の中にしかなくて、プログラムに書き出されていない

オブジェクト 変数(フィールド)と関数(メソッド)をまとめて現実をモデル化する Global Data は使わない オブジェクトが他のオブジェクトの関数を呼ぶ(メーセージを送る)ことでプログラムが進行する

クラス オブジェクトの仕様書 オブジェクトはクラスを実体化(instantiate)したもの(instance) コンストラクタというメソッドがオブジェクトを生成する時に初期化を行なう public と private の宣言でアクセスを制御する 継承(inheritance)と多形性(polymorphism)

演習問題 Private変数に外部からアクセスすると、どのようなエラーが起こるか(p.14) 等値演算子 == と equals() の違いを説明する例題を作れ(pp.19-20) array.java の内容を整数から文字列に変更せよ(pp.35-36)