• 検索結果がありません。

PowerPoint プレゼンテーション

N/A
N/A
Protected

Academic year: 2021

シェア "PowerPoint プレゼンテーション"

Copied!
34
0
0

読み込み中.... (全文を見る)

全文

(1)

コーディング力向上施策

(2)

自己紹介

項目 説明 氏名 湯川 敦 役職 特になし(名前だけの取締役) 入社 2003年9月(契約社員時代含む) 前職 ゲーム会社(ぷよぷよを作った広島の会社、1997年倒産→2001 年会社再建断念)のWebサイト制作、PerlでのCGIスクリプト制作、 Javaミニゲーム制作など

(3)

1

• はじめに(3P)

2

• 紹介したいテーマ その1(5P)

3

• 紹介したいテーマ その2(7P)

4

• 紹介したいテーマ その3(7P)

(4)

はじめに

以前の帰社日で紹介された評価シート中で、1~2年目の目標として、

年間1万ステップのコーディング

とあった(と記憶)。

私の現場に配属された

新人技術者

に対しては、かなりの間、

コーディン

(5)

はじめに

新人技術者に関しては、

最初の頃はテスト担当

となることが

多く、いきなりコーディングの機会を与えられることは少ないと思

われる。

研修で色んな知識を覚えた後、仕事でコーディングさせてもら

えるまでに、

時間が空いてしまうと、コーディングの感覚を忘れて

しまう

かもしれない。

(6)

はじめに

【発表の目的】

ある程度楽しみつつ、コーディング力をつけられるようなサ

イトなどを紹介したいと思います。

【対象者】

コーディング力を向上させたい人

そういう人を教育する立場の人

(7)

1

• はじめに(3P)

2

• オンライン実行環境(5P)

3

• 紹介したいテーマ その2(7P)

4

• 紹介したいテーマ その3(7P)

(8)

オンライン実行環境

オンライン実行環境とは?

ブラウザ上で、プログラムソースをコンパイルして実行することができるサイ

トがあります。

おススメ理由

書いたコード動かすまでの労力(コスト・手間)が圧倒的に低いです。

色んな機能的制約はありますが、標準入力・標準出力は使えるので、

プログラミング言語の初歩的な学習にはかなり向いています。

(9)

オンライン実行環境

オンラインの実行環境の紹介

IDEONE ・・・有名(後で紹介します)

http://ideone.com

Paiza ・・・けっこう機能はいいが、転職サイト・・・

http://paiza.jp/

Wandbox・・・APIの制約が緩いのでいろいろカスタマイズできそう

http://melpon.org/wandbox/

Wandbox API

https://github.com/melpon/wandbox/blob/master/kennel2/API.rst

(10)

オンライン実行環境

こぼれ話

IDEONEをどこで区切るかで、みんな迷っている? ideoneで検索すると第二検索ワードに「読み方」が出てくる  IDEONEで切って「アイディーイーワン」が正解らしい。 http://b.hatena.ne.jp/entry/242177283/comment/sh19910711

(11)

オンライン実行環境

IDEONEの機能紹介

ここにソースコードを入力 ここに標準入力として与えら れる文字列を入力 言語が選択できる (めっちゃ多い) 実行ボタン→コンパイルして実 行→標準出力の結果が表示

(12)

オンライン実行環境

IDEONEで利用可能な言語

■popular Bash C (gcc-5.1) C# C++ 5.1 (gcc-5.1) C++14 (gcc-5.1) Haskell Java Java7 Objective-C (gcc-5.1) Pascal (fpc) Pascal (gpc) PHP ■others Ada Assembler (gcc-5.1) Assembler (nasm-2.11.05) AWK (gawk) AWK (mawk) bc Brainf**k C (clang3.7) C++ (clang3.7) C++ (gcc4.3.2) C99 strict (gcc-5.1) CLIPS D (ldc 0.14) D (gdc 5.1) D(dmd) Elixir Erlang F# Factor Falcon Fantom Forth Fortran Go Groovy Icon Intercal JavaScript (rhino) Node.js Objective-C (clang 3.7) Ocaml Octave Oz Perl 6 PicoLisp Pike Prolog (gnu) Prolog (swi) Python (Pypy) R Rust Scala Scheme (chicken) Scheme (guile)

(13)

1

• はじめに(3P)

2

• オンライン実行環境(5P)

3

• オンラインジャッジサイト(7P)

4

• 紹介したいテーマ その3(7P)

(14)

オンラインジャッジサイト

オンラインジャッジサイトとは?

サイト上で、プログラミングに関する問題が出題され、回答として、プログ

ラミング言語を提出し、評価を受ける形式のサイト。

初歩的な学習向けの問題から、高度なアルゴリズムを駆使する問題ま

で、様々なレベルのものがある。

おススメ理由

初心者は学習用として、経験者は腕試しとして、色んなスキルの技術

(15)

オンラインジャッジサイト

オンラインジャッジサイトの紹介

AIZU ONLINE JUDGE(日本で有名)(後で紹介します)

http://judge.u-aizu.ac.jp/onlinejudge/

PKU ONLINE JUDGE(北京大学)(世界的に有名)

http://poj.org/

Code-IQ

【転職サイトなのであまり・・・】 https://codeiq.jp/

Paiza

【転職サイトなのであまり・・・】 http://paiza.jp/

(16)

オンラインジャッジサイト

Aizu Online Judgeの機能紹介

 会津大学で開発されたオンラインジャッジシステム。色んな書籍で取り上げられており、 日本では一番の有名どころ。無料ユーザ登録のうえ、ログインが必要です。  問題セット・・・あらかじめ用意された問題に解答していくことができます。  ランキング・・・ユーザの回答数ランキングが閲覧できます。  ステータス・・・ログインすれば他の方の投稿状況・ソースコードが見れます。  コンテスト・・・定期的にプログラミングコンテストも開催されているようです。  コース・・・コース別の問題がまとめられています。こちらから始めるのが吉。

(17)

オンラインジャッジサイト

 問題の例1(初心者向けの最初の問題) http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ITP1_1_A 問題文 (前略) "Hello World" と標準出力にプリントするプログラムを作成してください。 (後略) 入力 この問題に入力はありません。 出力 "Hello World" と一行に出力してください。

(18)

オンラインジャッジサイト

 問題の例2(初歩的な問題から抜粋) http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=ITP1_4_A 問題文 2つの整数 a と b を読み込んで、 以下の値を計算するプログラムを作成して下さい: a ÷ b : d (整数) a ÷ b の余り : r (整数) a ÷ b : f (浮動小数点数) 入力 1行に2つの整数 a, b が与えられます。 制約 1≦a, b≦109 入力例 3 2 出力例

(19)

オンラインジャッジサイト

 問題の例3(パソコン甲子園2003より) http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=0009&lang=jp 問題文 6 桁以下の正の整数 n を入力し、n 以下の素数がいくつあるかを 出力するプログラムを作成して下さい。ただし、素数とは 1 と 自分自身でしか割り切れない正の整数のうち 1 をのぞいたものを いいます。例えば 10 以下の素数は、2, 3, 5, 7 です。 入力 複数のデータセットが与えられます。各データセットに n (1 ≦ n ≦ 999,999) が1行に与えられます。入力の最後まで 処理して下さい。データセットの数は 30 を越えません。 出力 入力例 10 3 11 出力例 4 2 5

(20)

オンラインジャッジサイト

 その他、先に紹介したPaizaでは、ゲームコンテンツもあります。 ゲームの傾向にやや偏りがありますが、興味のある方はどうぞ。  プログラミングで彼女をつくる(オンラインジャッジ中級クラスの問題まであるよう なので、それなりに手ごたえはありそうです) https://paiza.jp/poh/ando  恋するハッカソン(やってないからわからないけど、プログラミングで彼女を作る、 に近い感覚のようです) https://paiza.jp/poh/hatsukoi

(21)

1

• はじめに(3P)

2

• オンライン実行環境(5P)

3

• オンラインジャッジサイト(7P)

4

• プログラミングコンテスト(7P)

(22)

プログラミングコンテスト

プログラミングコンテストとは?

オンラインジャッジサイトと同様の形式で数問出題され、問題

ごとの配点と、トータルの時間制限がつく形が一般的です。

技プログラミング

と呼ばれ、一つのジャンルを形成しています。

上級者向けすぎるようにも思うかもしれませんが、易しいレベル

のコンテストもあります。

(23)

プログラミングコンテスト

おススメ理由

スポーツでいうと、文字通り、競技会、大会のようなもの。 レーティングなど実績が数値化されるので、スポーツのような感覚で楽しめる上、自 身の成長が実感しやすい。 制限時間内に問題を解くことが、プレッシャーのある中で冷静かつ迅速に最適な方 法を考える訓練になり、障害対応力や問題解決力の向上に役立つ。 高度なものになると、アルゴリズムの専門知識や計算量を意識することが必要で、こ んなの業務で使うことあるのか?というほど難易度が高くなるが、コーディング力向上 の訓練としては非常に役立つ。

(24)

プログラミングコンテスト

プログラミングコンテストサイトの紹介

TOPCODER (英語)

https://www.topcoder.com/ ・・・参加者は成績をもとに6段階に格付けされる。 「Wihite」「Gray」「Green」「Blue」「Yellow」「Red」 最高位のRedCoderの称号は全会員の上位0.1% 日本人RedCoderは10人程度、ほぼ東大らしい。 回答後に、他人のコードのバグを指摘すると得点がもらえるという フェーズがあり、ユニークだが緊張感がある。

CODEFORCES(英語)

http://codeforces.com/

AtCoder(日本語) (後で紹介します)

https://atcoder.jp/

(25)

プログラミングコンテスト

AtCoderの紹介

 日本語なので、入りやすいと思います。平均週に1回(外部主催を含め)な

んらかのコンテストが開催されています。AtCoder主催のコンテストは3種類。

1. AtCoder Beginner Contest

1・2問目は初級者にも十分解ける。3・4問目は中級向け、問題によっ ては手ごわい

2. AtCoder Regular Contest

中~上級向け。十分時間があれば解けそうだが、限られた時間で全問解答 するには、傾向と対策が万全でないと無理。

(26)

プログラミングコンテスト

 問題の例1(AtCoder Beginner Contest 046 の1問目)

http://abc046.contest.atcoder.jp/tasks/abc046_a 問題文 シカのAtCodeerくんは、ペンキをこれまでに3つ買いました。おととい買っ たペンキの色は a , 昨日買ったペンキの色は b , 今日買ったペンキの色 は c です。各ペンキの色は1以上100以下の整数で表されます。 AtCodeerくんはわすれんぼうなため、同じ色のペンキを買ってしまってい ることがあります。 AtCodeerくんが買ったペンキの色の種類の個数を 教えてあげてください。 入力 入力は以下の形式で標準入力から与えられる。 入力例1 3 1 4 出力例1 3 入力例2 3 3 33 出力例2 2 制約 1≦a, b, c≦100

(27)

プログラミングコンテスト

 問題の例2(AtCoder Grand Contest 007 の6問目)

http://agc007.contest.atcoder.jp/tasks/agc007_f 問題文 シックの仕事はコピー取りです。ある日、シックは上司から英小文字からなる長さ N の文字列 S0 を受け取 りました(この日を 0 日目とします)。これ以降、i 日目の仕事は、文字列 Si−1 を Si にコピーすることです。 以下、Si の j 番目の文字を Si[j] と表します。 シックはまだこの仕事に慣れていません。毎日、文字列を先頭の文字から順に書き写していくのですが、正 しい文字の代わりに誤って直前に書いた文字と同じ文字を書いてしまうことがあります。すなわち、Si[j] は Si−1[j] または Si[j−1] のどちらかと等しくなります。(ただし、文字列の先頭の文字を書き間違えることはあ りません。すなわち、Si[1] は必ず Si−1[1] と等しくなります。)

(28)

プログラミングコンテスト

 前ページのつづき 制約 1≦N≦1,000,000 S0 と T の長さはともにNである S0 と T の長さはともに英小文字のみからなる 入力 入力は以下の形式で標準入力から与えられる。 N S0 T 出力 入力例2 5 abcde abcde 出力例2 0 ※湯川補足: 最初から一致 している 入力例3 5 acaa aaca 出力例3 2 ※湯川補足: S0=acaa S1=acca 入力例1 5 abcde aaacc 出力例1 2 S0=abcde, S1=aaccc, S2=aaacc の

(29)

プログラミングコンテスト

参加する場合のポイント(初級)コーディング自体に慣れるため、たくさんの問題をやってみましょう(中級)要求を解釈してコーディング内容に落とし込む訓練になります(上級)アルゴリズム・計算量も踏まえた最適コーディングを素早く見つける戦 いになります。腕に覚えのある人は挑んでみましょう(きっと上には上がいること が自覚できるでしょう)。 共通のポイント  現場でのコーディングルール(適切なコメントや可読性)をなるべく外さないよ う意識しましょう。時間制限に引っ張られて汚いコードを書くのでなく、時間制 限があるからこそ、整理してコードを組むことが重要です。

(30)

1

• はじめに(3P)

2

• オンライン実行環境(5P)

3

• オンラインジャッジサイト(7P)

(31)

おわりに(総括)

ここに挙げたサイト以外にも、いろんな類似のサイトで面白そうなものも

あるようなので、興味のある人はいろいろ探してみるのもいいかと思います。

いろいろ見て、オンラインジャッジや、競技プログラミングは、

大学生が

中心層

なのかな、という印象を受けました。ただ、Code-IQやPaizaなど、

転職系サイトでもこの仕組みを利用したものがありますし、

社会人向けと

しても学習・スキルアップ等で活用できる余地がありそう

に思います。

個人的実感では、私の前職

ゲーム会社のプログラマはシステム屋の比

にならない程コーディング力が高い

と感じます。それは、

書くコード量

、あと

いかに楽しみながらやれるか

がポイントなのかな?と思います。

(32)

おわりに(個人的妄想)

Wandbox APIなどを使えば、独自の簡易オンラインジャッジサイトを

作れそう?

Web系SE向けに特化したオンラインジャッジサイト作ると面白いかも?

(すでにあったらごめんなさい)

問題例1:与えられた入力(英文字列)をURLエンコードして出力せよ。

問題例2:与えられた入力(英文字列)がメールアドレスとして正しいけ

ればTrue、そうでなければFalseと出力せよ。メールアドレスの妥当性は

(33)

おわりに(個人的妄想のつづき)

前ページの仕組みを社内向けのサイトとして作れないだろうか?

社員・研修生は誰でも問題投稿、回答(ソース)提出、および他者の回答の閲 覧およびレビューが可能な、技術交流サイトっぽくできないか? 汎用的に業務で使えそうな処理を問題化して社員にソースコードを競わせて、一番 早くて見やすいソースを全社員が共有・流用できると技術者にも会社にも有益? 現場のソースコードのコピペ等、機密情報の漏洩のリスクを考えると、現実的には現 場の技術者が回答者として参画するのは危険か? 回答は研修生のみ、現場の技術者は問題考案とレビューのみ、という形なら、研修 生にとっては、現場の技術者のレビューが受けられるサイトとしていいかも。

(34)

参照

関連したドキュメント

●Gartner Magic QuadrantにてクラウドHCM Suiteにおけるリーダーの評価.. Copyright © 2022 Nomura System Corporation Co, Ltd. All Rights Reserved.. Copyright © 2022 Nomura

支援要請入力詳細 13ページ 患者受入入力詳細 14ページ 支援可能スタッフ3.

and Kristjan Vassil (2010) Internet voting in Estonia : a comparative analysis of four elections since 2005 : report for the Council of Europe”Report for the Council of Europe.

2021年1月15日にHa Tay Pharmaceutical Joint Stock Company(

がん化学療法に十分な知識・経験を持つ医師のもとで、本剤の投与が適切と判断さ

日医かかりつけ医機能研修制度 令和 年度応用研修会 「メタボリックシンドロームからフレイルまで」 飯島勝矢 Tamakoshi A ら. Obesity

(Immuno Checkpoint Inhibitor Proper use Support team

剣道部 柔道部 硬式野球部 卓球部 水泳部 ラグビー部 ソフトテニス部 テニス部 ハンドボール部 サッカー部 バドミントン部