おススメ書籍とブラウザ

f:id:chelseatea:20160825170222j:plain

 

この記事は

全くの初心者がオンラインジャッジを利用したプログラミング学習を進め

情報オリンピック予選やネット上のオンラインコンテストに

参加できるようになることを目標にしています。

 

 

プログラミングをするためには

1.コードの書き方

2.問題を解く考え方

の知識が必要になります。

 

 

それぞれ中学生でも理解できる敷居の低い入門書を2冊紹介します。

(簡単です! 絶対理解できます!)

 

コードの書き方

「かんたんC言語(プログラミングの教科書)」 技術評論社

かんたんC言語 (プログラミングの教科書)

かんたんC言語 (プログラミングの教科書)

 

 

最適の習得ルートを探るため

まずは従来からある定番入門書を取り寄せて読んでみたのですが、

1つ目のコードサンプルから???の連続。

もっと言えばアルファベットの文字の間のここには

半角スペースが要るのか要らないのか

そんなことからわからないんです。

 

その点この本は全く???を持つことなく

スムーズになめらかに自分だけの力で読み進めていけます。

 

f:id:chelseatea:20160825170839j:plain

たとえば最初の「コードの読み方」のページ

とても親切です。

こんな風に教えてほしいんです。

 

 

 

さて、この本でコードの内容が理解できたら

次はやっぱり なんちゃってコーディングをしてみたくなります。

 

 

以前はここでコンパイラというプログラミング言語機械語に翻訳する役割の

ソフトが必要になり 

そのダウンロードや設定に高いハードルがあったのですが、

今はとても便利なサイトがいくつかできています。

その中のひとつがこちら

 

paiza.IO

https://paiza.io/projects/new

 

f:id:chelseatea:20160826002047j:plain

paizaの画面です。

左上の言語選択ボタンで C を選ぶと

定型文的な部分は最初から表示されているので

メイン処理の内容から書き始めることができる仕様になっています。

 

 

 

 

先ほどの本の最初のサンプルコードを入力してみます。

C言語をはじめました」と表示させるコードですが

たった2行 簡単です。

(キーボードから¥を入力するとpaizaの画面上には \ (バックスラッシュ)が

表示されますがこれで大丈夫です)

 

 

f:id:chelseatea:20160826002316j:plain

 

ここまで理解できたら モチベーションアップのため

なんちゃって競技プログラマになってみましょう。

 

 

世界レベルのコーダーも利用しているオンラインジャッジシステム

AIZU ONLINE JUDGE  に遊びに行ってみましょう。

http://judge.u-aizu.ac.jp/onlinejudge/index.jsp?lang=ja

 

 

まず右上にある 登録・設定 ボタンをクリックして

必要事項を入力してアカウントを作って ログインします。

 

 

f:id:chelseatea:20160825181248j:plain

 

上部のメニューバーの

PROBLEM → Introduction → Introduction to Programming と

選択していきます。

 

 

 

f:id:chelseatea:20160825181554j:plain

 

表示された問題一覧から一番上の問題をクリックします。

 

 

 

f:id:chelseatea:20160825181639j:plain

 

Hello World」と表示させるという問題です。

さっきpaizaで書いたコードとほぼ同じタスクですね。

paiza でサクッと書いてみます。

コードが書けたら

最初の # から 最後の } までをコピーします。

 

AIZUオンラインジャッジで右上の書類マークをクリックして

コード提出画面を出します。

 

 

f:id:chelseatea:20160825181947j:plain

言語選択でC言語を選択して

Source欄に paiza からコピーしてきたコードをペーストしたら

右下の Submit ボタンをクリック!

 

 

 

 

f:id:chelseatea:20160825183908j:plain

Judgeページに結果が表示されます。

Accepted なら正解!

エラーやWrong Answer(WA) の場合はどこかが間違っているので

もう一度コードを丁寧に見直して提出しなおしてみましょう。

AC がもらえたら晴れてコーダーの仲間入りです!

 

 

上記の本なら 自分のペースでどんどん先に進めるので

実際に手を動かしてコーディングしながら

C言語を習得していけそうです。

 

 

 

2.問題を解く考え方

C言語の知識と並行して必要になってくるのが

問題を機械がわかる形にして解決していく考え方です。

こちらも 中学生から理解できる良書をみつけたので

紹介します。

 

おすすめの書籍がこちら

 

アルゴリズムをはじめよう」  インプレス 

アルゴリズムを、はじめよう

アルゴリズムを、はじめよう

 

 東京大学文学部卒の女性著者の書籍なので

とてもわかりやすい!

変数と配列から始まって

コーティングに頻出の線形探索法 二分探索法 ハッシュ探索法などの

聞いただけでは尻込みしてしまいそうな代表的なアルゴリズムの考え方が

中学生にもわかるように解説されています。

 

圧巻は最後の方に登場する

「エラストテネスのふるい」

理系男子がなぜか好む素数

その素数を求めるアルゴリズムです。

 

この章を読むのを楽しみに最初から丁寧に読み進むのも

いいかもしれません。

 

 

 

おススメした2冊の本とpaizaで

ある程度の実力がついてきたら

情報オリンピック予選への準備として

オンラインコンテストに慣れるために

ビギナー向けのコンテストに参加してみましょう。

 

 

ぴったりなのが こちら

 

AtCoder Biginner Contest 

https://atcoder.jp/

 

f:id:chelseatea:20160825224158j:plain

 

 トップページからどれでもいいので

AtCoder Biginner Contestを選択してクリックすると

 

 

f:id:chelseatea:20160825224355j:plain

AtCoderの使い方の動画を見られるページに飛びます。

やはり動画は入門者には一番ありがたい入門ツールです。

 

過去問で練習を積んで 要領がつかめたら

AtCoder Biginner Contestに リアルタイムで参加してみましょう。

 

 

初心者向けコンテストは月に何度か開催されています。

コンテストのライブ感は独特で独習とはまた違う楽しさがあり

毎回のコンテストで上下するレートは

学習のモチベーションの拠り所にもなりそうです。

 

 

プログラミングを始めるときに突き当たる高いハードル

ここまで来ればもう感じることなく 

この先のさらに奥深く楽しい世界に進んでいけることと思います。

 

 

* * * * * * *

 

プログラミングの基礎知識や状況はこれから社会に出ていく人たちには

必要不可欠の要素になっていくかもしれません。

優秀な頭脳を持つ若い人々が高校や大学入試の受験科目だけに縛られず

できるだけ頭脳の柔軟な時期にコーディングに触れる機会が増えていくことで

思いもかけないイノベーションがこの国から生まれていくと素晴らしいな~

と願っています。