わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

情報系学科の学生が在学中に学んでほしい14個のプログラミング技術(1/2)

  • リテラシー: コンピュータが使いこなせないと,他のどんな技術もスムーズに習得できませんので,「最初だから簡単」と侮ることなく,一つ一つ身につけましょう.主要なアプリケーションに対して,キーボードやマウスの操作(それらのコンビネーションも)を学び,使えるようにします.それと,同一アプリケーションでも,同じキー操作でも,「状況(コンテキスト)」に応じて,効果が異なるという事実についても理解しましょう.
  • C: 初学者向けのプログラミング言語として何がベストなのかは議論の余地がありますが,ともあれ当学科では「C」です.文法は,授業や試験勉強でできるだけ覚えましょう.忘れても,本を読んで思い出せるように,本と親しくなっておきましょう.Cの学習を通じて,「計算機の内部構造」,すなわち変数などが計算機内でどのようになっているかが,イメージできるようになってください.それと,「プログラムコード,日本語,図の相互変換」ができることを目指してください.ソースファイルのある行を見たときに,何の処理なのかを日本語で説明できること,複雑な式を構文木として図示できること,などです.はじめの段階では,紙に書いていきましょう.慣れると,言葉や図やプログラムコードが,頭の中で湧いてくるようになります.
  • データ構造とプログラミング: 教科書にある主要なデータ構造と,それをCで実現するにはどのようにすればいいかを学びます.なのですが,ここでは,「アルゴリズムの読み書き」技術を習得してください.アルゴリズムは,プログラムコードとは少し異なる作法によって書かれます.「Pascalに似た擬似言語Pascal-like pseudocode」と,「番号付き*1の日本語」の2種類が代表です.どちらも読めるようにし,卒業論文で書けるようにしたいものです.
  • 通信プログラミング: Cの入門書にあるどんな例題もプログラムにできる,となったら,次に知ってほしいのは,プロセス間の通信プログラミングです.TCP/IPを使う場合,「サーバ」と「クライアント」に分かれ,それぞれのプログラムも大きく異なるものになります.2者が連携して,一つのやりとりを行うための「プロトコル」の概念と,実行の単位となる「セッション」の概念にも,親しんでおきましょう.
  • CGプログラミング: CGは「コンピュータグラフィックス」の略です.絵を描くプログラミングです.3Dか2Dか,そして2Dについては,ラスタ型かベクトル(ベクタ)型か,に分類できます.ここでは,その技法もさることながら,「とことんまでこだわる」ことを体得してほしいものです.CGプログラミングについては,時間をかければかけるほど,こだわればこだわるほど,目に見えていいものができていくのです.
  • 論理プログラミング: 手続き型言語と異なるパラダイムで,Cばかりをやっていくと,戸惑うかもしれませんが,本などに書かれている例題を,面倒がらずに手で打っていくと,「少ない文法規則で多彩な世界」が表現できる,その合理性が理解できていくと思います.

続きは明日.

*1:「Step 1: 〜.Step 2: 〜.」のように,処理ごとに番号をつけます.この番号を参照して,制御を変える(ジャンプする)こともできます.情報セキュリティの中で,こちらの記法を使用しています.