- ベストアンサー
プログラミングの手順・設計方法
人にプログラミングの基礎というか、 手順みたいなものを教える事に成ったのですが、 私自身、プログラムを良く知らないので、どういう風に教えたら良いのか 分りません(流れ図を書くと良い、ぐらいはなんとなく分る)。 実際にプログラムを書くところまで出良いので、 良いページ等をご存知でしたら、教えては頂けないでしょうか?
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。itohhといいます。 新人研修は大変ですものね。頑張ってください!! 事情はだいたい呑み込めました。 次回のテーマを設けてそれまで各自予習をしてきて貰うってのはどうでしょうか? 社会人になったのだから、「教えて貰っていないからできない」という言い訳はできないと いうことも判って貰うためにも自分で調べることも身につけて貰いましょう。 ご自身が去年研修を受けたときを振り返ってみてください、1年たつとそのときの研修の良い点 悪い点が見えてきませんか? それをふまえて、これだけは憶えて欲しいことを講義されてみてはいかがでしょうか? なんか、精神論みたいになってきてしまったのでこのへんで... また、いくつかHPを見つけてみました、参考にしてみてください。 めざせプログラマー! http://hp.vector.co.jp/authors/VA000124/index.htm ここは、結構希望にあっているかもしれませんね。 gooやgoogleなどで検索してみては如何ですか? 上記のHPもgoogleで「フローチャートの書き方」としたら結構な数がヒットしました。
その他の回答 (6)
- itohh
- ベストアンサー率45% (210/459)
こんにちは。itohhといいます。 1時間ですか? 毎日、1時間じゃないのですよね?1時間こっきりってことですよね? ちょっと、厳しいですね(^^; プログラム概論などを説明して、後は各自勉強するようにってとこですかね? ちょっと、サイトを思い出しましたので記しておきます。 参考になるでしょうか? プログラミング「超」入門 http://www.skills.co.jp/~koba/programming/index.html IT業界人のためのリンクサイト http://www.itnavi.com/ Studio C http://www.nt.sakura.ne.jp/~miwaki/
- kent-milds
- ベストアンサー率22% (14/63)
えっと、プログラムを初めに書く事を考えてみれば、教え方もわかってくるのではないでしょうか? 単に新しい言語を覚えたい、と言う方なら、その言語だけを教えれば良いのですが、全く何もわからない方にとっては、プログラム、命令、変数などを理解するのも難しいと思います。 C言語で有名なのが「Hello World」ですね。 ただ単に、「Hello World」と出力させるだけです。 プログラムは・・・ #include <stdio.h> void main() { printf "Hello World"; } ですね。 これをちゃんと理解するのがまず第一歩だと思います。 フローチャートが必要なプログラムを書くのは、その後で良いのではないでしょうか?
補足
回答ありがとうございます。 プログラミング言語としての基礎というより プログラミング自体の基礎という事で 教えたいのですが、 例えば、フローチャートの書き方(記号の意味) その他として、ということなんです。 よろしくお願いいたします。
- itohh
- ベストアンサー率45% (210/459)
こんにちは。itohhといいます。 どのような人たちに教えることになるのでしょうか? 1.御社の新人に教える。(御社がソフトハウス) 2.御社の新人に教える。(御社はソフトハウスではない) 3.パソコンスクールなどで講師となった。 (それに、小学校で児童に教えるってパターンもあるかも) 教える環境(生徒の数、年齢なども...)によって進め方も変わってくるのではないでしょうか? 例えば、プログラミングが出来るようにするといっても 御社の営業の人にExcelのマクロが組める程度までと、 新人の研修で教えるのだけど御社の仕事はJavaがメインである場合は、 教え方もレベルも変わってくるのではないでしょうか? また、研修の期間も大きく関わってきますよね。 整理してみると。 1.生徒の人数 2.研修期間(専門学校では1~3年で教えていますよね) 3.生徒の年齢(スクールの場合、10代もいれば、50代もいる) 4.どのレベルまで教えるのか 5.ご自身は専属なのかあるいは実務と兼業なのか(結構、重要だと思います) 上記のような事項も考慮してみてください。 それによっては、何をどのくらい教えるのかが決まってきませんか? (教える範囲は、情報処理試験レベルからExcelのマクロまたはJavaレベルまで?) >良いページ等をご存知でしたら、教えては頂けないでしょうか? 残念ながら見あたらないですね。 書籍でも「VC++でプログラミング」、「VBでプログラミング」などの書籍は見かけますが... 言語を特定しないテキストはなかなか見つからないですね。(あるのでしょうけど)
補足
ありがとうございます。 ソフトハウスで後輩の新人に教えます。大雑把に1時間ぐらいで講義は終わり。 基本的には新人に教えます。ただ、周りでは先輩も聞いています。 人数は、新人3人、先輩10人ぐらいです。 私は、去年入社したばかりです。 基本的には、新人研修なのですが、私の実力テストも兼ねている みたいな感じなのですが、私もほとんど初心者と変わらないので、 よろしくお願いいたします。
- shigatsu
- ベストアンサー率26% (511/1924)
無知な人に教えるというのは、ある意味プログラムですよね。 私の経験上ですが、まずはプログラムというのがどういうものなのかを教えるために身近にある事象を例にして説明します。 多分一番判りやすいのが料理かなと思っています。素材の用意や調理方法、そして目的がはっきりしている点。 素材が変数ですかね、下準備:初期化、味見:入力と条件分岐、盛り付け:出力って感じでしょうか。この辺のイメージができればプログラムって難しく考える必要ないということが判ると思います。 説明無しにいきなり「卵焼きの作り方を書け」って課題出すと面白いかもしれませんね。もちろん素材の用意から盛り付けまでできるだけ細かくという条件で。 その課題から実はプログラムを作るときも同じなんだというふうに説明すれば印象として強く残るんじゃないでしょうか? 高校の時、数学の教師に「2×3=6」を覚えておくと便利だと言われました。最初はそんなの九九で覚えたよ って思ってたんですが、2=6÷3 2分の6=3 とか式を簡単にするといろいろ展開しやすいって事でした。 実は物事を単純に身近なものに置き換えるという教えでした。
補足
フローチャートとか流れをイメージさせるのに 料理とかの例えを使うというのは良い考えですね。 参考にさせていただきます。
- toysmith
- ベストアンサー率37% (570/1525)
「コードを書くところまで」と言う事なので勝手に“下流工程”を想定します。 なぜ言語(というかパラダイム)が大切かというとプログラムの動作原理と構造が違ってくるからです。 一般的な手続き型(=C,既に一般的で無くなっている可能性もありますが)のプログラミングでは「手続きの流れ」が唯一の制御となります。 処理の流れは「基本3構造(=順次、条件分岐、繰返し)」のみで記述可能であり、流れ図で示す事が出来ます。 対して、新しいパラダイムであるオブジェクト指向(=C++,既にさして新しくも無いのですが)では手続きの流れ以外に「メッセージによる制御」が加わります。 単純に言うと「実行ボタンのクリック」は「ユーザイベント(マウスクリック)」からのメッセージでありこれは“手続きの流れ”とは関係無く発生します。 結果として、“手続きの流れ”を記述する流れ図で表す事は(無理とは言いませんが)難しくなります。 制御の流れではなくプログラム構造の観点から考えた場合、手続き型のプログラミング言語では「処理」と「機能的な連携(または共通性)を持った処理の集合体(=ライブラリ)」を設計します。 対してオブジェクト指向ではクラス(データとデータ処理の集合体)を設計する必要があります。 ***このクラスの説明は不充分過ぎて正しくありません。正しい解釈は文献を参照して下さい*** 手続き型のプログラミングであれば「ソフトウェア作法」(ISBN4-320-02142-8 共立出版)という良書があります。 オブジェクト指向の場合は(C++的な)クラスとは何か?などの「設計の前段」から講義する必要があるので総合的な資料は皆無です。 Javaやsmalltalk向けはありますがC++のオブジェクト指向があまりに特殊である為応用が利きません。 イベントと処理の関連やイベント処理によるデータの状態変化を図式化するには「イベント/ステートマトリックス」や「イベント/ステートチャート」が優れており、クラス設計はUMLが優れています。 「UML モデリングのエッセンス」(ISBN4-7952-9630-8星雲社)はこの2つを解説している良書ですがやはりC++向けではない為、C++の講義に活用するなら講師による解説と注意が不可欠となります。 「Webページを」とのリクエストですが残念ながら包括的に解説された良いページが見つかりませんでした。 書籍を推薦しておきます。
補足
講義は口頭ではなく、文章でと思っていたので Webページを探していたのですが。 書籍を参考にさせていただきます。 ありがとうございました。
- toysmith
- ベストアンサー率37% (570/1525)
設計といっても受講者のレベルによって求められる設計フェーズが変わるのでは? また、具体的な設計法(機能設計以降)は言語(正確にはパラダイム)で違ってきます。 最終工程はコーディング→デバッグ→テストで決まりなのですが、設計に関してはシステム段階(いわゆる上流)からコード前段(いわゆる下流)があり、下流フェーズは前述のようにパラダイムに依存します。 CなのかC++なのか。 下流フェーズのみか? 以上2点を明確にして下さい。
補足
プログラム全般という事でCだとかC++だとか 定めないで、本当に基礎として教えたいのですが、 そういう教え方自体が間違っているのでしょうか? やっぱり、言語を決めた方が良いのでしょうか? 教えるのは、前半と後半に分れていて、 デバック及び、テストが後半部分だと聞いたので、 それ以前の分だと思って、コードを書くところまでとしたのですが。 よろしくお願いいたします。
補足
たびたび、ありがとうございます。 どうも、私の補足自体が言葉足らずの様で、ご迷惑をおかけしてます。 新人さんには、4月からC言語の勉強をしてもらって、 5月からはOJTでやってもらっています。 それと同時に、就業後に週に2回ぐらい学習会として行っています。 その講師となったわけです。 学習会はOSの基礎やCPU・メモリの基礎、インターフェースなどを経て プログラミングの基礎(デバック前までの前編)を教える事に成ったわけです。 どうも、順番的におかしい(言語覚えた後に基礎?!)と思っては、 いるのですが・・・ よろしくお願いいたします。