乗り越えよう!初級プログラミング!

こんにちは、東京通信大学3年のみゅーらです。
2年次編入して今年の1学期2学期で初級プログラミングI・IIを終え、今はプログラミング演習Iを進めています。

Javaの初級プログラミングI・IIを!!!乗り越えた人です!!!!

いや、特に自慢にはなりませんが。

東京通信大学情マネの第一の関門と言っても良い初級プログラミング。皆さん乗り越えられましたか?私は乗り越えたもののしこたまキツかったです。
とはいえ必修科目なので、これを乗り越えないとどうにもなりません。これを乗り越えないと受けられない授業も結構あった気がする。そんなになかった気もする。どっちだろ。新カリキュラムの人はそんなんでもないかもしれない。
で、この授業、必修だけにめちゃくちゃ受講者が多い(毎回800人くらいいるらしい)上に脱落者もめちゃくちゃ多いらしいと聞きました。
中には「ふええ、今まで文字入力くらいにしかPC使ったことないよぉ><」という方もけっこういるとかいないとか。
大変だね!!!!周りに気軽に聞けないもんね!!!!でもそろそろ第4回の必須課題提出期限が迫ってきてるよね!!!!ピンチ!!!!!

ということで、今更聞けないというポイントや、まずはここから把握しておこう!というポイントを書いておこうと思います。
環境はWindowsを前提としています。Mac使ってる人はわたしよりPC使えるよ。問題ないよ。
あと、私は初プロをなんとかかんとかしてクリアした程度の人なので、「このプログラムが動かないんです~><」って聞かれても「大変ですよね~~~~~><」としかお返しできないです。ごめんね。
どんなことを書いてるかの概要は目次で確認してね。
もう知っとるわそんなこと、という場合は先を読む必要はないので、いいねだけ押しておいてください。
役に立ったよ、という場合はいいねを押しておいてください。


基本のキの手前

プログラムは半角英数字で書こう

これ!!!!!!!!!大前提です!!!!!!!!!!!これを覚えたらだいぶエラーが起こらなくなるはずです。たぶんね。
プログラムって基本的に(少なくとも我々が学ぶJavaとかCとかPythonとか)外国でというか英語で開発されたものです。日本語で書けるものもあるけど、それはとりあえず忘れておいてください。
で、英語で開発されたってことは半角英数字モードで書かないといけないんです。
全角文字のABCDEFG…みたいなのって日本の中でしか通用しないんですよ。少なくとも我々が学ぶJavaとかCとかPythonとかのプログラム言語でプログラム部分を書く時には使えません。使ったらエラーになります。
なんかどっか他の授業でやると思うんですけど、A(半角のエー)とA(全角のエー)はコンピュータの中の処理では全く別の文字だ、ということです。
なので、プログラムは半角英数字で書きましょう。
日本語とか全角の記号を入力して良いのは、""で囲った中だけです。
とりあえず今はそう覚えておけばいいです。

「ええ~~、でも、今書いてるのが半角なのか全角なのかなんてわかんなくない??」
わかるー、あるよねそういうこと。
まずは入力モードを変えておきましょう。

下の図はGoogle日本語入力と標準のIMEのモードです。
「あ」ってなってたら、キーボードの「半角/全角」ってキーを押してAに変えてください。だいたい左上にあります。
これで直接入力というモードに変更できます。
いちいち文字を変換する必要もありませんし、全角入力事故が起こらなくなります。やったね。

スペース(空白)も半角で入力しよう

全角スペースは我々の敵です。これもエラーが起きます。
全角でスペースを入力する人とExcelのセルを結合する人は、今からでも遅くないので悔い改めてください。
とはいっても、入力しちゃったかもしれない全角スペースを探し出して直すのって大変ですよね。だって見えないし。だいたいエラーの文章見ればどこがおかしくなってるのかはわかりますけど、英語のエラー見るだけで鳥肌立っちゃいますよね。わかるー。もうエラー見たくなくなっちゃう。

見分け方としては、サクラエディタとかの簡易エディタにコピペしちゃうのがわかりやすいっちゃわかりやすいです。

メモ帳だとこんな感じです。CODEROOMもおんなじ感じなのかな?見分けづらいですね。
画像見づらかったらクリックして拡大してね。

サクラエディタで見ると、全角スペースにはうっすら四角の枠を表示してくれます。あら便利。

ここにコード載せるとこんな感じ。

↓全部半角スペース

public class sample {
    public static void main(String[] args) {

        System.out.println("ここは日本語で入力しても良い");
        System.out.println("This is a space where you can write in English or Japanese.");
    }
}

↓全部全角スペース

public class sample {
    public static void main(String[] args) {

        System.out.println("ここは日本語で入力しても良い");
        System.out.println("This is a space where you can write in English or Japanese.");
    }

サクラエディタだと見つけやすいってことがわかりましたね。一歩前進だ。
でも、見つけたからって一個一個直すのは大変ですよね。
置換しましょう。
とりあえずメモ帳でのやり方ですが、サクラエディタでもおんなじことできるよ。

編集から置換を選択します。

検索する文字列に全角のスペースを
置換後の文字列に半角スペースを入力しましょう。
画像はわかりにくいですがもう入力してあります。

ドラッグするとわかる。わかるね。
わかったら「すべて置換」を押しましょう。

そうするとあら不思議、文中の全角スペースを全て半角スペースに直してくれます。やったね、これでエラーが減るよ。

半角スペースいっぱい入力するのめんどいじゃん

たぶんあれですね、画像の赤矢印みたいにインデントする時のですよね。

初級プログラミングIの3回4回になってくると、forの中でforを書いたりし始めるので、いちいち空白を4回とか8回とか打ってられんわ!!!!てなったりすると思います。
CODEROOMはインデントした状態でEnterすると次の行もインデントした状態にしてくれたりと地味に便利ではありますが、「インデントでスペースいっぱい打つのが面倒くさいから全角スペース使ったのに><」って方もいるんじゃないでしょうか?いないかもしれない。いるかもしれない。
困ってる人に向けての魔法の技です。
Tabキーを使いましょう。

キーボードによりますが、だいたい左端の上の方~真ん中の方にあるはずです。妙にでかいTabって書いてあるキーです。CODEROOMでこのTabを1回押してみましょう。画像はサクラエディタですが、CODEROOMでもおなじことができます。

10行目でTabキーを押します

デデン

Tabキーを1回押しただけでインデントできました!!!!!もうこれで半角スペースキーを4回とか8回とか12回とかしなくて済むんですよ!!!!よかったね。これであなたのプログラムは完璧です。


先生に質問したい

全角半角問題も乗り越えた。Tabキーでインデントもできる!
でもコンパイルしたらエラーが出ちゃった…
コンパイルできたけど実行したらエラーが出ちゃった…
そんな時ありますよね。クソほどあると思います。
CODEROOMの機能として先生へ質問ができるのですが、「望む回答が得られなかった」ために挫けてしまう方もいるんじゃないでしょうか?

まず前提として認識しておきたいのですが、先に述べたようにこの授業はIでいうと800人くらいが受講しています。IIでは400人弱でした。どうやってわかるかというと、CODEROOMの課題提出状況から同士の数を推し量ることができます。すっごく多いね!
補助の方もいらっしゃると思いますが、先生はこの800人を相手にしてるわけです。
もちろん800人全員が先生へ質問しているわけではないと思いますが、それでも凄まじい数の質問を日々受けていることになります。しかも、先生は課題に対する回答を直接言うことはできません。「ここで困ってるのかな…だとしたら答えに結びつくためにはこの資料を見てもらえば…」という、直接答えを伝えるより数段高度な技を駆使しているわけです。
「自分が望む回答が得られない」のがむしろ普通なのです。

でも先生なんだから教えてよ!!!!!!!!!

そうだね。困ってるんだもんね。
ということで、「学生側も質問の仕方を工夫してみましょう」。

たとえば
「この課題でプログラムを書いてみたんですけど、エラーが出て解消できないんです><」
と書いても、先生側としては「?????????????」となるだけです。そりゃそうだよ、超能力者じゃないんですよ先生は。

どう質問するのかが正解なのかはわかりませんが、確度を上げるとしたら以下のような感じで書くと良いのではないでしょうか?

●●先生
お世話になっております。質問があります。
この課題で以下のようにプログラムを書きました。

public class sample {
    public static void main(String[] args) {

        System.out.println("ここは日本語で入力しても良い");
        System.out.println("This is a space where you can write in English or Japanese.");
    }
}

コンパイルしたところ、以下のようなエラーが出ました。

Example_01_01.java:1: error: illegal character: '\u3000'
public?class?Example_01_01?{
      ^
Example_01_01.java:1: error: illegal character: '\u3000'
public?class?Example_01_01?{
            ^

そこで、■■資料の▲ページ目を確認し、以下のように変更してみました。

public class  Example_01_01 {
    public static void main(String[] args) {

        System.out.println("ここは日本語で入力しても良い");
        System.out.println("This is a space where you can write in English or Japanese.");
    }

ですが、やはり以下のようにエラーが出てしまいます。

Example_01_01.java:1: error: illegal character: '\u3000'
public?class??Example_01_01?{
      ^
Example_01_01.java:1: error: illegal character: '\u3000'
public?class??Example_01_01?{
            ^

このエラーを解消するためには、どの資料のどのあたりを再度見てみるのが良いでしょうか?お忙しい中恐縮ですがご教示くださいますようお願いいたいます。

という感じです。
自分がこの課題にとりくんで

  • 何を書いたか

  • どういうエラーが出たか

  • エラーをもとに何を確認したか

  • どう直してみたのか

  • 直した結果、どういうエラーが出たのか

を記載し、その上で「講義資料のどこを振り返ればよいのか」を聞いてみましょう。
たぶんこれだけでもだいぶ望んだ回答が得られやすいんじゃないかなと思います。私は教授じゃないんでわかりませんけど。


もう何がわからないかわからなくて無理無理の無理

詰まるとそうなりますよね。解決方法はいくつかあります!

とりあえず寝ましょう

睡眠不足は理解力の最大の敵です。寝ましょう。15分とか30分だけでも効果があります。
寝て起きたらなんかしらんけどどこが間違ってるかわかって正解できたわ、神がおりてきたわ。とかあるあるです。寝ても大丈夫なように、授業と小テストだけは余裕を持って進めておきましょう。

ご飯を食べましょう

空腹は理解力の第二の敵です。食べましょう。
私は空腹のまま書いてて、問題文のコマンドライン入力と標準入力を読み間違えて40分無駄にしたことがあります。食べてください。摂取カロリーをある程度制限するのが老化防止策として有効だそうですが、プログラミングの課題をこなすために多少老化してでも食べましょう。ご飯を食べても大丈夫なように、授業と小テストだけは余裕を持って進めておきましょう。

気晴らしをしましょう

といっても、気晴らししたまま課題をやらなくなってしまったら意味がありません。スプラとかソシャゲの周回とかは避けて、近所のコンビニへ行ってコーヒーを買ってくるとか、お皿を洗ってみるとか、洗濯物の下着だけ畳むとかしてみてください。脳って他のことをやるとなんかいい具合にカチっとはまることがあるんです。嘘じゃないです。気晴らしする程度の時間が確保できるように、授業と小テストだけは余裕を持って進めておきましょう。

プログラミングワークショップへ参加しましょう

上の3つをやったけどだめじゃん!!!!質問してもどうにもならんよ!!!!!という時は、毎週火曜日の夜開催されているプログラミングワークショップへ参加しましょう。
おそらくお知らせにも学期はじめに案内が届いていると思います。

ということで、続編では「プログラミングワークショップへの参加方法」を案内したいと思います。できるかな。できたらいいな。

よろしければサポートをお願いします! あなたのサポートが私の筋肉になります(プロテイン代)。