2024年1月改定 情報オリンピック受験対策講座の内容。基本を大切に、階段を登るように実力を上げていこう!

◆2023年1月に、約8年の実施してきた情報オリンピック対策講座の使用教材と指導方法を一新しましたが、2024年1月にさらに見直して改定しましたのでご紹介します。
 以下のような内容になっております。

プログラミングコンテスト チャレンジブック 表紙 筑波大学付属駒場高校や灘高校、開成高校などの生徒さんがメダルを取ることで知られている数学オリンピックや物理オリンピック。

 この2つのオリンピックに並んで、プログラミングのコンテストである情報オリンピックがあるのはご存じでしょうか?

 札幌WEBプログラミングスクール 中学生・高校生コースでは、約10年、情報オリンピックのためのC,C++言語プログラミング講座を開講し全国の進学校に通う中高校生に受講していただき好評を得て来ました。

 現在も多数の全国の中学生・高校生が札幌WEBプログミングスクールの情報オリンピック受験対策講座を受講されています!

 2023年1月からは、今プログラム開発で最も使用されている言語となった人工知能=AIシステム開発用言語、Pythonによっても予選が受験可能となったこともあり、Python言語での受験対策授業の受講も可能となりました。

 つい最近まで情報オリンピック受験対策参考書としては『プログラミングコンテンスト チャレンジブック』しかありませんでした。

 札幌WEBプログラミングスクールでも、このテキストを中心として受験対策授業を行って来ました。

 しかし、最近はC,C++言語で例題プログラムが記述されたテキストで、『プログラミングコンテンスト チャレンジブック』の他にも情報オリンピック対策参考書が複数出版されたため、2023年1月からこちらのテキストを使用して、インターネット上の参考となるサイトも使用しながら授業を進めていきました。

競技プログラミングの鉄則 そのうちの一冊が『競技プログラミングの鉄則』です。

 この本は現役東大生で、筑波大学付属駒場高校時代にAtcoder(情報オリンピック受験生用のプログラム検査、採点サイト)のレッド・コーダー(最上級レベルプログラマ)になった米田 優峻さんが書かれた本です。

 図も豊富で一見分かりやすそうですが、けっして易しくはありません。

 この本を購入し独学で受験勉強をしている中高校生も多いと思いますが、独力で二次予選を高得点で突破できるレベルの人はどんどん読み進んでいけるでしょうけど、そうでない人は、トップクラスの進学校に通っている高校生でも読み進むのにかなり苦労すると思います。

 何より、掲載されている例題プログラムの難易度が高いのです。

 どの科目の勉強でもそうですが、いきなり難易度の高い参考書に取り組むのは間違いです。

 まずは易しい、分かりやすい参考書から学ぶべきです。

 Amazonの書評でも、「この本を読んでも実際にコーディングは出来ないと思います。なぜかと言えばコードの重要な働きの説明が抜けている箇所がまあまああるからです。
 コードはアルゴリズムのみにあらずです。理解するためには自分でコードを書いて理由を発見しなければなりません。」

 とありますが、これは例題プログラムの肝心なところ(コード)の説明がすっぽり抜けているという事でもあり、模範解答プログラムに不必要なコード=文があったりしてそれを見抜けないとプログラム全体の完全な理解が困難なのです。

 また、各課題プログラムの解法は人によって色々ですから、自分のやり方で作ってみることが何より重要ということです

 それが「コードはアルゴリズムだけにあらず」という言葉の意味で、つまり解法は本に書いてある代表的な解法だけではないという意味でしょう。

 そういう側面もありますが、情報オリンピックの二次予選を突破し、日本代表になっていくには『再帰関数』と『漸化式』などを完全に理解し、これを道具としてコーディングできなければなりません。

 そして、これらの道具を利用してマスタすべき代表的な2分野が『動的計画法』と『グラフアルゴリズム』です。

 これを基本から段階を踏んで完全に理解し、自由に使用できるようにならなくてはならないということです。

 例えば、漸化式を理解するにも、初歩から階段を登るように理解しては利用するという風にステップアップしていかないと、二次予選の四問め以降の課題を作れません。

 そこで2024年1月にメインとして使用するテキストを写真の『JOI公式テキスト Pythonで問題解決』にしました。

 このテキストはJOIが毎年主催している短期キャンプ勉強会のテキストでもあり、幸い、このテキストの全課題と解答がネット上に公開されているので、手軽に利用できます。

メインテキストとして採用した『JOI公式テキスト Pythonで問題解決』の優れている点

JOI  公式テキスト Pythonで問題解決
 このテキストは、情報オリンピックの問題を解くために基本事項を優しいものから順番に漏れなく掲載しています

 しかも、各例題の模範解答も正確で分かりやすくなっています

 基本から階段を昇るように学んでいくので、一冊を完全に理解すれば、相当なプログラミング能力が付くと思います。

 重要な点は、基本も、動的計画法などのようやや難しい分野も『完全に徹底的に理解する事』です。

 あらすじが大方理解できたというのは、0点と同じでまったく理解出来ていないのです

 理解出来ていないから、同類の課題プログラムを作れないし、応用も利かないのです。

 これは、数学や英語、理科のなどのどんな分野の学問でも同じですね。
 
 思うように予選が突破できない、中盤から後半に出題された課題が作っていけない方は、もう一度『基礎・基本』が完全にマスタされていないのではないか?と振り返ってみてください

 『漸化式』や『メモ値配列』が分からないのに動的計画法の課題プログラムを作れる訳はないのです。

 ただし、このテキストも多くの中学生・高校生が完全理解するのはかなり骨が折れると思います。

 そこで、 札幌WEBプログラミングスクールでは、『JOI公式テキスト Pythonで問題解決』に掲載されている例題や練習課題の模範解答プログラムを完全に理解できるよう、どの例題プログラムや練習課題プログラムも、どこよりも分かりやすく、かみ砕くように解説しています。

 あなたは、『JOI公式テキスト Pythonで問題解決』の全プログラムを完全理解していますか?

JOI公式テキスト課題プログラムの解説サンプルを掲載しました

 完全に理解するとはどういうことか?

 それを知っていただくサンプルとして公式テキストp114『射撃王』とp127動的計画法Ⅲ『巡回セールス問題』、p86ビット演算のJOI過去問『たくさんの数』の模範解答プログラムを完全に理解できる解説を掲載しました。

 これを見て、じっくり読んでいただければ、 完全に理解するとはどういうことか?を理解していただけると思います

 どうですか?JOI公式テキストの例題や練習課題プログラムもけっして完全に理解するのは易しくないことが充分にご理解いただけると思います。

 特に課題プログラムは情報オリンピックの過去問ですし。

 また、 札幌WEBプログラミングスクールでJOI公式テキスト掲載のどんな問題も完全理解し解説できる事を十分に理解していただけると思います。

 これは『競技プログラミングの鉄則』など、他のテキストの問題についても同じです。

 ★射撃王 問題と解説ページ

 ★巡回セールス問題 問題と解説ページ

 ★たくさんの数 問題と解説ページ

課題プログラムの作り方、解法は一つではありません。自分のやり方でプログラムを作ろう!

 先にご紹介した『競技プログラミングの鉄則』での書評にあった「コードはアルゴリズムだけにあらず」という言葉ですが、ある課題プログラムを作り方法はテキストに書かれている一種類の解法=アルゴリズムだけではありません。

 アルゴリズムとは、求めている結果を表示させる論理的な仕組みの事です。

 例えば、データを小さい順番、大きい順番に整列する方法も『基本交換法・選択法・バブルソート、クイックソート』など何種類かありますが、これらのそれぞれの方法をアルゴリズムというのです。

 その例として今紹介したJOI公式テキスト練習課題『たくさんの数』の問題を見て下さい。

 JOI公式テキストでは、『ビット演算=2進数演算』を使用してプログラムを作成する練習課題として紹介されており、ネットなどでの記事でもそのように作ることが推奨されていますが、実は単純な配列=リストとFor文による繰り返し処理で難なく作れてしまいます。

 これが『プログラムの作成方法は一つではない』という意味です。
 
 ですから、どのような課題プログラムも、まずは自分のやり方で作ってみることが重要で、そうしないと情報オリンピック2次予選、本戦の中後半、3問め以降の課題プログラムを作る得点力がついていきません。

 アルゴリズムを理解し覚える学習と、自由に制作する作業の両方をしていくことが必修となります。

たくさんの数』プログラムの模範解答と別解2つはこちらをご覧ください!

 このように、ビット演算を使用しなくても、簡単にプログラムは作れるのです。

受験はC,C++言語とPython言語のどちらを選択すべきか?

 Python言語で受験する場合、問題点は本選がC,C++言語での受験となる事です。

 さらに、一部の『競技プログラミングの鉄則』などの受験対策参考がC,C++言語で記述されていることもネックとなります。

また、今までの過去問の公表された正解プログラムや受験生が作った解答プログラムがやはりC,C++言語で書かれていることです。

 ですから、 標準となるカリキュラムでは、まずC,C++言語より圧倒的に易しいPython言語のクラスのところまで短期間でマスタしてもらった後に、C,C++言語の基本文法を完全にマスタしてもらい、その後に受験対策テキストの演習に移って行きます。

 Python言語の途中で、札プロのプログラミング指導の中核となっているプログラムの設計図である流れ図=フローチャートの学習をしていただきます。

 両言語ともに、すでにある程度学習が進んでいる方は、実力チェックのためプログラム作成課題を解いていただいて、到達度を確認しその方の実力に合わせて基本文法の学習をしてもらいます。

 受講形態は通学またはSkypeによるTV電話授業で1回80分、家庭教師と同じような1対1の個別指導です。

 本格的にオンライン授業や通学でPython言語、C言語・C++言語のプログラミングを基礎からしっかり学習できるスクールは全国でもほとんどありません

 情報オリンピックを目指す中学生・高校生の皆さん。

 高校生にBASIC言語・COBOL言語プログラミング指導をして30年、C,C++言語プログラミングの指導に20年以上の実績があり信頼性の高い札プロの無料体験授業を是非受講してみて下さい。

 札プロなら驚くほどスムーズPython言語やC,C++言語プログラミングの腕が上がって行きますよ!

 無料体験授業は3回受講できます。全国どこからでSkypeで受講できます。お気軽にお申し込み下さい。お申し込みはこちらです。

札プロに入会し、予選突破して本選で優秀な成績を収める方法は?

 
 春に入会されたプログラミング初心者の中学生・高校生、はまずPython言語を短期間でマスターし、その後本戦ではC、C++言語でプログラムを書かなければいけないので、これをマスタするか、次のステップの『JOI公式テキストを利用しての受験対策講座』を受講するのと並行してC言語をマスタしてももらいます。

 それで、ほとんどの場合、まずはその年の一次予選を受験していただき、ほとんどの生徒さんは突破して二次予選に進まれます。

 これを突破できる生徒さんと、出来ない生徒さんに分かれます。突破できなくて次の年も受験可能な場合はまた挑戦して高得点を狙っていただきます。

 1年目は2次予選で5問中2問は完答されます。
 

 この表によると予選Aランク=上位約150人になるには2問完答で、残りの3問で、1問でも完答するか、3問で部分点をどれぐらい稼ぐかによると読み取れますが、

 実際の難易度はこのサイトにあるよりは高く、3問半から4問で本戦進出となるように感じています。

 本選での金メダルなどのトップ争いは、全問完答が続出では差がつかないので、5問中4問分を得点し、そこからどれぐらい部分点を稼ぐがになるでしょう。

 これは、東大理Ⅲの数学の得点と分布と非常に似ていると思います。

東大理Ⅲの数学の合格者平均点は6問中4問半と言われて来ました。

 1問間違えて、他のもう一問で半分ぐらい部分点を取れればOKという。

 とある医学部予備校のYoutube映像では灘校からの受験生で6問完答は珍しくないそうですし、また情報オリンピック日本の金・銀・銅のメダリストが東大理Ⅲか京大医学部に進学する事はかなりあるようなので、だいたい東大理Ⅲ入試がひとつ参考になると思います。

  現在、札プロの情報オリンピック指導方法は、『JOI公式テキスト』など優れた参考書の登場もあり、2年ほど前とくらべると各段に向上してきているので、適性のある生徒さんなら十分二次予選突破ができることろに来ています

  本選に出場し最終的にどこまで到達できるか?は毎月の受講回数、適性・能力、ご本人の努力によりますが、これはどんな学習でも同様ですね

 いずれにしても情報オリンピックには特に数学のセンスが要求されるとは言えます。

 ただ、やはり高校生の大会なので東大理Ⅲ数学が東大・京大理学部数学科のレベルとはまったく違うように、情報オリンピックはやはり高校生が争うプログラミングコンテストのレベルであるとは言えるでしょう

 皆さんも札プロに入会して、是非、情報オリンピックでの高得点を狙ってみて下さい!

そもそも情報オリンピックって何?情報オリンピックに挑戦する意義は?

 無料相談会で必ず話す事に、「情報オリンピックは数学オリンピックのプログラミング版である」ということがあります。

 数学は鉛筆で数式を書きますが、情報オリンピックは数式をプログラムにします。

 ですから、数学オリンピックで優秀な成績を残せる人は、必ず情報オリンピックでも好成績を残せるでしょう。

 逆もまた然りです。

 さらに、続けてお話しするのは情報オリンピックが何のために存在するかについです。

  目的はGoogleやFacebook、MicrosoftなどのGAFAといわれる巨大IT企業にプログラマ・研究者を供給するためです

 そのための有望な中高校生を世界中で発掘しスカウトするために存在すると言って良いと思います。

 Googleが追及しているのは、少ない計算量で出来るだけ高速に、重要なキーワードでGoogleを検索した人にお勧めのホーページをお勧めの順番に表示することです。

計算量が多いほど、Googleのコンピュータセンターのコンピュータは電力を消費し熱を発します。

 それを冷却するのに、さらに電気を必要とします。

 Googleが消費する電力は、アフリカのある小国の年間消費量に匹敵します
 
 そのため、GoogleなどGAFAは世界中の天才プログラマを「結果さえ残してくれれば、水泳でもボルタリングでも何をしていても良い」という環境で、億単位の年収やストックオプション(その企業の株式を供与すること)を払って雇用しています。

   だから、情報オリンピックの課題は、計算量の少なさを求めてくるし、整列や探索の課題を多数出題するのです

 昨年は、GoogleやMicrosoftのプログラマをChatGPTを開発しているOpenAIが何百人も一人平均5億円から6億円で引き抜きました。

 イーロンマスクは2018年の講演で「世界でAI=人工知能を開発できるプログラマは23000人ほどしかいない」と言いました。

 これは、調度、各国の情報オリンピックの金銀メダリストが年に1人か2人、プログラマになった時の人数と同数です。

 どうです?大リーガーに似てませんか?

 日本から年に1人から3人ほど、大谷翔平のようにメジャーリーガーになっていますよね。
 

そもそも本当に得するのはGoogleやMicrosoftの創業者であってプログラマや社員ではない

Google Boys グーグルをつくった男たちが「10年後」を教えてくれる: ラリー・ペイジ&セルゲイ・ブリンの言葉から私たちは何を活かせるか (単行本) 単行本 – 2014/10/23 次のお話も毎回の無料相談会でお話することです。

 「ハッカーと画家」(Ohmsha)という本に、「この30年で大富豪になったのはIT関係の起業家しかしない!」と書かれていますが、ほぼその通りですよね。
 
 日本ならソフトバンクの孫正義、楽天の三木谷浩史、ZOZOも前澤友作、サイバーエージェントの藤田晋。

 その手にした資産は時に何兆円という額になります。

  競馬やパチンコ、カジノなどのギャンブルがそうですが、ギャンブルをやればやるほど、胴元、つまり主催者が一切の損失なくどんどん儲けていくのですよね

 だからGoogleもFacebookも起業したラリーページやザッガーバーグが真に儲かっているのです。

 そして創業時は自分がプログラマだったけど、早々に経営者に徹するようになった訳です。

 この事を、今の中高校生とご両親にはよくよくじっくり考えてほしいと思うのです。

 コンピュータの世界では、プログラマよりも革新的なビジネスアイデアを思い浮かべ起業する力の方が重要であると。

 ラリーページやザッガーバーグまで行かなくても、日本でも創業から2年・3年で数十億の売上を挙げるまで急成長するIT系の若手起業家がたくさん出現しています

 創業者は上場(企業の株式を証券取引所で販売できるようになった企業。一流企業になったことの一つのお墨付きになる)した場合は一夜にして数十億円の資産が転がり込んで来ます。

  しかし、大学も情報工学科に行くだけでは経営学やマーケティング、起業論を学べません

 そこで、札幌WEBプログラミングスクールの中高校生コースでは、『創造力育成 良いアイデアの出し方講座』を数回に一回全員に受講してもらい、ホームページなどのインターネットを利用して商品・サービスを販売して収益を出す方法や、基本情報技術者試験の午前試験範囲でもある マネジメント(経営・マーケティング)・ストラテジィ(経営戦略論)などの内容を楽しく学んでいただいております。

 そのため、札幌WEBプログラミングスクールの中高校生コースは退会率が非常に少なく、6年7年と長期に渡り受講される生徒さんがたくさんおられるのです
 

情報オリンピックの成績は大学の特別推薦入試の推薦条件となっています



 対象大学一覧と主な大学の推薦条件はこちらをご覧下さい

日本のプログラミング教育No1教師の授業を体験してみませんか?

 札幌WEBプログラミングスクールは2000年に創立した日本で最初に受講したい時間に自由に予約して受講できるスタイルのWEBデザイン・プログラミングスクールです

 また、日本で最初の小中高校生対象のプログラミングスクールでもあります。

 代表の横田昌彦は、北海道の公立高校教員を始めとして、小中高校生、大学生、社会人まで指導総生徒数 3940人、経験年数 33年、 授業時間数 42847時間をプログラミングとWEBデザインの授業をしてきた日本で最も豊富な教務経験を有する教育者です

 これほど、多様な学校で幅広い年齢層にIT関連教科の学習指導をしてきた人間は日本では他には間違いなくいないでしょう。

 この指導実績をご覧いただければ、札幌WEBプログラミングスクール代表の横田昌彦が『日本のプログラミング教育のパイオニアにして第一人者』を自称しても間違いないでしょう!

 経産省の基本情報技術者試験に33名、応用情報技術者試験に8名、サーティファイ認定試験に174名など合計242名ものプログラミング資格試験合格者を輩出しています

 このようなプログラミングスクールは日本には存在しません。

 札プロにご興味のある方は、まずは、気軽にご予約の上、無料相談・無料体験を受けてみて下さい

 プログラミング指導33年。札プロ授業の驚くほどの分かりやすさと、ITテクノロジーへの深く確かな知識を実感していただけると思います。

◆無料相談会・無料体験授業のお申し込みはこちらです。

 教室でも受講していただけますが、ZOOMにより全国どこでもオンラインで受講していただけます。

無料体験申込ボタン