Enviar búsqueda
Cargar
Ruby で学ぶプログラミング入門
•
14 recomendaciones
•
2,983 vistas
R
Ryota Kameoka
Seguir
2015年4月25日に CAMPHOR- HOUSE にて行われた「Ruby で学ぶプログラミング入門」の発表スライドです。
Leer menos
Leer más
Tecnología
Vista de diapositivas
Denunciar
Compartir
Vista de diapositivas
Denunciar
Compartir
1 de 70
Descargar ahora
Descargar para leer sin conexión
Recomendados
AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説
AtCoder Inc.
プログラミング入門
プログラミング入門
Kenji Azami
AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説
AtCoder Inc.
kaetsu.js #02
kaetsu.js #02
Noritada Shimizu
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Kazuyuki Mori
AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説
AtCoder Inc.
SappoRo.R #2 初心者向けWS資料
SappoRo.R #2 初心者向けWS資料
考司 小杉
Tokyo.R #67 初心者セッション3
Tokyo.R #67 初心者セッション3
Nozomi Miyazaki
Recomendados
AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説
AtCoder Inc.
プログラミング入門
プログラミング入門
Kenji Azami
AtCoder Beginner Contest 026 解説
AtCoder Beginner Contest 026 解説
AtCoder Inc.
kaetsu.js #02
kaetsu.js #02
Noritada Shimizu
Docker基礎+docker0.9, 0.10概要
Docker基礎+docker0.9, 0.10概要
Kazuyuki Mori
AtCoder Beginner Contest 010 解説
AtCoder Beginner Contest 010 解説
AtCoder Inc.
SappoRo.R #2 初心者向けWS資料
SappoRo.R #2 初心者向けWS資料
考司 小杉
Tokyo.R #67 初心者セッション3
Tokyo.R #67 初心者セッション3
Nozomi Miyazaki
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
AtCoder Inc.
CoffeeScript
CoffeeScript
Ryo Maruyama
Nagoya.R #12 入門者講習
Nagoya.R #12 入門者講習
Yusaku Kawaguchi
実用Brainf*ckプログラミング
実用Brainf*ckプログラミング
京大 マイコンクラブ
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
Haruka Ozaki
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
Nobuaki Oshiro
JavaScriptのオブジェクト:Mathオブジェクト、Dateオブジェクト
JavaScriptのオブジェクト:Mathオブジェクト、Dateオブジェクト
Yossy Taka
JavaScript Basic 01
JavaScript Basic 01
Yossy Taka
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
Nobuaki Oshiro
Rubyist生活に欠かせないブロック構文の話
Rubyist生活に欠かせないブロック構文の話
Kohei Taniguchi
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
SAKAUE, Tatsuya
AtCoder Beginner Contest 012 解説
AtCoder Beginner Contest 012 解説
AtCoder Inc.
JavaScript Basic 02 jQuery
JavaScript Basic 02 jQuery
Yossy Taka
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
Más contenido relacionado
Similar a Ruby で学ぶプログラミング入門
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
AtCoder Inc.
CoffeeScript
CoffeeScript
Ryo Maruyama
Nagoya.R #12 入門者講習
Nagoya.R #12 入門者講習
Yusaku Kawaguchi
実用Brainf*ckプログラミング
実用Brainf*ckプログラミング
京大 マイコンクラブ
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
Haruka Ozaki
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
Nobuaki Oshiro
JavaScriptのオブジェクト:Mathオブジェクト、Dateオブジェクト
JavaScriptのオブジェクト:Mathオブジェクト、Dateオブジェクト
Yossy Taka
JavaScript Basic 01
JavaScript Basic 01
Yossy Taka
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
Nobuaki Oshiro
Rubyist生活に欠かせないブロック構文の話
Rubyist生活に欠かせないブロック構文の話
Kohei Taniguchi
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
SAKAUE, Tatsuya
AtCoder Beginner Contest 012 解説
AtCoder Beginner Contest 012 解説
AtCoder Inc.
JavaScript Basic 02 jQuery
JavaScript Basic 02 jQuery
Yossy Taka
Similar a Ruby で学ぶプログラミング入門
(13)
AtCoder Beginner Contest 015 解説
AtCoder Beginner Contest 015 解説
CoffeeScript
CoffeeScript
Nagoya.R #12 入門者講習
Nagoya.R #12 入門者講習
実用Brainf*ckプログラミング
実用Brainf*ckプログラミング
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
12-11-30 Kashiwa.R #5 初めてのR Rを始める前に知っておきたい10のこと
10分で分かるr言語入門ver2.15 15 1010
10分で分かるr言語入門ver2.15 15 1010
JavaScriptのオブジェクト:Mathオブジェクト、Dateオブジェクト
JavaScriptのオブジェクト:Mathオブジェクト、Dateオブジェクト
JavaScript Basic 01
JavaScript Basic 01
10分で分かるr言語入門ver2.14 15 0905
10分で分かるr言語入門ver2.14 15 0905
Rubyist生活に欠かせないブロック構文の話
Rubyist生活に欠かせないブロック構文の話
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
外国語教育メディア学会第54回全国研究大会ワークショップ「Rによる外国語教育データの分析と可視化の基本」
AtCoder Beginner Contest 012 解説
AtCoder Beginner Contest 012 解説
JavaScript Basic 02 jQuery
JavaScript Basic 02 jQuery
Último
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
sugiuralab
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
Último
(9)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Ruby で学ぶプログラミング入門
1.
Ruby で学ぶ プログラミング入門 2015-04-25 Ryota Kameoka @
CAMPHOR- HOUSE
2.
CAMPHOR- のご紹介 • 京都のIT系学生コミュニティー •
プログラマーとデザイナーが集まる場所 • 京大, 同志社, 京都精華, などなど • camph.net
3.
IPSJ77Now
4.
びわこ花火ガイド
5.
イベントの様子
6.
camph.net
7.
スピーカー紹介 • 亀岡 亮太
(@ryota-ka) • 京都大学経済学部 B4 • 11才でプログラミングに触れる • ちゃんとやってるのはここ1年ぐらい • 詳しくは → http://ryota-ka.me/
8.
今日の目標 • 「プログラミングおもしろい」と気付く • 「プログラミング向いてないな」気付く •
プログラミングの基本的な考え方を知る • ピザを食べて友達を増やして帰る • なにかひとつでも持って帰ってもらえれば!
9.
わからなくなったら • 恥ずかしがらずに近くの人に聞きましょう! • プログラミングできる人も混ざってます •
今のうちに隣の人と仲良くなりましょう
10.
さて, さっそくですが プログラミング #とは
11.
プログラミング #とは プログラミング言語(プログラミングげんご) またはプログラム言語(プログラムげんご)とは、 コンピュータに対する一連の動作の指示を記述す るための人工言語で、コンピュータ言語の一カテ ゴリである。この一連の指示をプログラムと呼び、 それを記述することをプログラミングと呼ぶ。 (出典 :
Wikipedia「プログラミング言語」)
12.
❓❓❓
13.
プログラミング #とは (要約) •
人間がコンピューターに行ってほしい操作の手順を伝える • 曖昧な自然言語を使うのは難しい • 画面に Hello と表示してください • Hello と画面に表示しろ • コンピューターに命令する専用の簡単な言語(プログラミン グ言語)を作って, それを用いて手順を伝える
14.
プログラミング言語 • AWK • BASIC •
Brainfuck • C • C++ • Clojure • COBOL • Erlang • Objective-C • OCaml • Pascal • Perl • PHP • Prolog • Python • R • Ruby • Rust • Scala • Smalltalk • Swift などなど • FORTRAN • Go • Haskell • HSP • Java • JavaScript • LISP • Lua
15.
プログラミング言語 愛を語るならフランス語 文学を語るなら英語 科学計算なら FORTRAN iPhone アプリなら
Swift それぞれの言語に得意分野がある
16.
Ruby ができることの例
17.
今日作るもの 英単語クイズゲーム
18.
実際に見てみよう
19.
問題を分解してみる
20.
文字を表示する 文字の入力を受け取る 正解かどうかを判定する 正解率を計算する • 辞書を用意しておく (apple はりんご,
dog は犬, book は本, …) • 登録されている単語の数だけ出題を繰り返す
21.
はじめてみよう👍 prog-8.com
22.
画面に文字を表示する
23.
画面に文字を表示する • puts “表示させたい文字列” •
文字列は (Shift+7) または (Shift+2) で囲む
24.
計算してみる • × じゃなくて
* • ÷ じゃなくて / • % は余りを求める puts 1 + 1 # => 2 puts 3 * 4 # => 12 puts 32 / 4 # => 8 puts 27 % 5 # => 2
25.
オブジェクト • 今日はあまり深く考えない! • 理屈より具体的な例を見てみよう
26.
オブジェクトとメソッド • “Progate”.length # 結果
: 7 もしもし “Progate” さん あなたの文字数は何文字ですか?
27.
オブジェクトとメソッド • 3.14.round # 結果
: 3 もしもし 3.14 さん あなた四捨五入したらどうなりますの?
28.
オブジェクトとメソッド • puts “ABC”.reverse #
答え : 画面に “CBA” と表示される じゃあこう書いたら何が起こるでしょう? もしもし “ABC” さん あなた逆から読んだらどうなりますの? • puts “CBA”
29.
変数 • データを保存しておく入れ物のようなもの x =
80 # x に 80 という値を保存 puts x + 20 # 画面に 100 と表示 x = 100 # 値を書き換えられる puts x / 50 # 画面に 2 と表示
30.
注意 • = は等式ではありません!!!!! “x
= 80” は, 「xという変数に80という値を保存しておく」 という意味です
31.
変数の再代入 • 変数の値は書き換えられる x =
100 x = x + 50 puts x # なんと表示されるでしょう? # 答え : 150 100
32.
入力された文字を受け取る • puts :
画面に文字を出力する • gets : キーボードから文字を読み取る
33.
オブジェクトの型 • 10 +
20 => 30 • “プログラミング“ + “入門” => “プログラミング入門” • 10 + “個のりんご” => ??? _人人人人人_ > エラー <  ̄Y^Y^Y^Y ̄
34.
そもそも • 10 +
“個のりんご” 数字 文字列+ => 足せるわけねえ💢💢 • 数字 + 数字 は OK • 文字列 + 文字列 も OK • 数字 + 文字列 は ダメ🙅
35.
型の変換 • 10.to_s +
“個のりんご” 10を 文字列(string)にしたらどうなるの? => “10” + “個のりんご” => “10個のりんご” ちゃんと足せました👏👏
36.
真偽値 • ある条件(命題)が正しいか, 正しくないかを表す値を 「真偽値」と呼ぶ •
正しいことを true, 正しくないことを false で表す • 高校英語の正誤問題, T とか F とかで答えましたよね?
37.
真偽値 • 30 >
20 (30が20より大きいか) => true (正しい) • 20 == 10 (20は10と等しいか) => false (正しくない)
38.
制御構造 - if •
条件によって処理を分ける (もしなら…する) 例) もし100円以上持っていれば 100円払ってりんごを買う
39.
100円を払う りんごを1つ手に入れる 100円以上持っている? Yes😄 No😫
40.
制御構造 - if •
条件によって処理を分ける (もしなら…する) もし100円以上持っていれば 100円払ってりんごを買う if money >= 100 money -= 100 apple += 1 end
41.
制御構造 - if money
= 120 if money >= 100 money -= 100 apple += 1 end money = 80 if money >= 100 money -= 100 apple += 1 end → 何も起こらない 正しい!true! 正しくない!false! → 実行される
42.
制御構造 - else •
もし(if)100円持っていれば → 100円払ってりんごを買う • そうでなければ(else) → ぼくはかなしい😢
43.
100円を払う りんごを1つ手に入れる 100円以上持っている? Yes😄 No😫 かなしい
44.
制御構造 - else if
money >= 100 money -= 100 apple += 1 else puts “お金が足りないのでつらい” end
45.
制御構造 - elsif •
もし(if)3,000円持っていれば → 3,000円払ってメロンを買う • そうでなくてもし(else + if)100円持っていれば → 100円払ってりんごを買う • そうでなければ(else) → ぼくはかなしい😢
46.
3,000円を払う メロンを1つ手に入れる 3,000円以上持っている? Yes😄 No😫 かなしい じゃあ100円以上持っている? 100円を払う りんごを1つ手に入れる No😂Yes😊
47.
制御構造 - elseif if
money >= 3000 money -= 3000 melon += 1 elsif money >= 100 money -= 100 apple += 1 else puts “お金が足りないのでつらい” end
48.
論理演算子 • 条件 P,Q
(e.g. x > 100) • P && Q => P かつ Q • P || Q => P または Q
49.
配列 • x, y,
z じゃなくて a1, a2, a3 • 添字は1じゃなくて0から • [‘Alice’, ‘Bob’, ‘Charlie’]
50.
配列 names = [‘Alice’,
‘Bob’, ‘Charlie’] puts names.size # => 3 names.push(‘Dave’) puts names[0] # => ‘Alice’ puts names[1] # => ‘Bob’
51.
配列のメリット • 変数がムダに増えない • 扱うべき変数の数を人間が知らなくてもいい •
データ自体が知っているので (size) • 他にもたくさん(割愛)
52.
ハッシュ • 配列 : names[0]
= ‘Alice’ names[1] = ‘Bob’ • ハッシュ : words[‘apple’] = ‘りんご’ words[‘dog’] = ‘犬’
53.
制御構造 - while •
条件が真である間ループを繰り返す • 例) 卒業単位が うまで1年間を繰り返す
54.
124単位以上持っている? 授業を受ける 単位を取る Yes😄 No😫 卒業🍣
55.
制御構造 - while credit
= 0 year = 1 while credit < 124 do puts “授業を受ける” year += 1 credit += rand(40) end
56.
例えばなぜか 単位が取れないとして
57.
制御構造 - while credit
= 0 year = 1 while credit < 124 do puts “授業を受けない” year += 1 # credit += rand(40) end → 無限ループ🙅
58.
124単位以上持っている? 授業を受けない 単位が取れない Yes😄 No😫 卒業🍣
59.
124単位以上持っている? 授業を受けない 単位が取れない Yes😄 No😫 卒業🍣 8回生? 退学💀 No😅 Yes😂
60.
制御構造 - break while
credit < 124 do puts “授業を受ける” year += 1 credit += rand(40) if year == 8 break end end ← ループを途中で抜ける
61.
ハッシュに対する繰り返し 1周目はapple/りんご 2周目はdog/犬 3周目はbook/本 というデータがほしい
62.
words = { ‘apple’
=> ‘りんご’, ‘book’ => ‘本’, ‘dog’ => ‘犬’ } words.each do |key, value| puts “key: ” + key puts “value: ” + value end 1周目: key: apple value: りんご 2周目: key: book value: 本 3周目 key: dog value: 犬
63.
関数 • 一定の処理・計算をまとめる • 正解率を計算する関数を定義してみよう
64.
関数 • (正解率) =
100 (正解数) (出題数) • percentage(正解数, 出題数) = 100 (正解数) (出題数)
65.
percentage 関数 def percentage(a,
b) return 100 * a / b end
66.
percentage 関数 (改) def
percentage(a, b) if b == 0 return 0 else return 100 * a / b end end
67.
できました👏👏
68.
終えてみて • プログラミングって意外と地道 • 最初は覚えることがたくさん •
思い通りに書けるようになると楽しい!
69.
最後に もうちょっと勉強したい方は 是非 CAMPHOR- に 遊びに来てください!!
70.
ありがとうございました ..
Descargar ahora