IT専門分野の学生の教育プロセスにおける転覆とトラックの使用

最近、怠け者だけが、大学での学生訓練の質の低さについて語っていない。 最近、ハブをはじめ、現在開発されている現在の高等教育システムを非難する多くの記事が掲載されています。 大学に提起される主な不満は、ビジネスで使用されるテクノロジーから、実際の生活から高等教育を分離することです。 悲しいかな、多くの場合、これらの主張は根拠のないものではありません。 しかし、私は個人的な前向きな(希望する)経験、この状況がどのように屈折するかを見せたいです。



この記事では、kafの「言語およびCADソフトウェア」分野の教育プロセスの一環として、Subversionバージョン管理システムとTrac変更追跡システムを使用した経験を紹介します。 KSUP TUSUR。 教育プロセスでこれらのシステムを使用することにより、学生と教師としての私が得られる利点が示されています。



目標



大学でのトレーニングの目的は、商業会社で実際の仕事をする学生を準備することです。 その結果、市場では大卒者の能力が要求されます。 ITの分野、特にソフトウェア(ソフトウェア)開発の分野の市場は非常に多様です。つまり、ソフトウェア開発のための多くの技術とツールがあり、一方で、すべてが急速に変化しています-使用される技術、ソフトウェア開発のアプローチが変化していますプログラマーなどが使用するツール これは、ソフトウェア開発サポートテクノロジーにも適用されます。 ただし、すべてではないにしても、多くのテクノロジーとツールが使用され、いずれにせよ、ソフトウェア会社の大部分が使用しています。 この場合、次の2つのテクノロジーを意味します。



バージョン管理システム 。 今日、多数のバージョン管理システムがあります。 バージョン管理の最も人気のある無料配布システムの短いリストを取り上げたとしても、ここではcvs、git、mercurial、subversion、bazaarを思い出すことができます。 さらに、上記の無料システムよりも優れた機能または劣悪な機能を提供する独自のバージョン管理システムが多数あります。 この記事では、彼らはgitとsubversionの人気はほぼ等しいと言いますが、私は個人的にこれに完全な自信を持っていません。 原則として、職場ではSubversion(最近ではMercurial)を使用し、サードパーティ(主に無料のプロジェクト)ではgitを使用する必要があります。 他のいくつかの理由も転覆を支持しました-結局、それを必要としたのは私だけではなく、転覆は学生のために選ばれました。



変更追跡システムは、バグ追跡システム、変更要求追跡システムなど、多くのシステムの一般的な名前です。 バージョン管理システムとは異なり、このクラスのシステムには明確なリーダーはいません。 さらに、各ソフトウェア会社が独自のエラー追跡システムを開発することも珍しくありません。 このため、卒業生が会社で働くときにどのようなシステムを使用する必要があるかについて、明確な仮定を立てることは不可能です。 コインを投げるだけで、ツールとしてtracシステムが選択されました。



実験室作業



学生は、Unixの「言語およびCADソフトウェア」の分野でほとんどの実験室作業を行うことが容易であり、FreeBSDの部門サーバーにアクセスできます。 ただし、Windows上でCygwinを使用して、またはVisualStudioやその他のソフトウェア開発ツールを使用して、これを行うことができます。 実際、プロジェクトを構築するには、lex、yacc、Cコンパイラ、および何らかの自動化システムが必要です。 したがって、svnリポジトリへのアクセスは、Cathedral unixサーバーと、インターネットにアクセスできるパーソナル/ホームコンピューターを含むすべてのサーバーから提供されました。



私たちは、学生が自宅で実験室の仕事をするための部門で長い間練習をしてきたと言わなければなりません。 生徒は、課題を受け取り、次のレッスン(通常は2週間)で合格し、次の課題を同時に受けるためにのみコンピュータクラスに参加しました。 彼らは自宅で、または同じコンピューター教室で、実験室での作業時間よりも都合の良い時間にタスクを実行しました。 これにより、仕事のために...まあ、または楽しみのために自由時間を残すことができます。 (ここでは、私を含む部門の従業員のかなりの割合が日中、勤務時間後のみ-夕方18:00以降および土曜日に部門で教えることができることに括弧で注意する必要があります) 多くの学生がこれを使用し、ほんの一握りだけが定期的にコンピュータクラスに来て座っていました...時々彼らはそこに研究室を作りさえしましたが、より頻繁に彼らはただ無料でインターネットをサーフィンしました。



集中化されたソースリポジトリにより、学生はさらに独立して作業することができました。 実際、今では学生はラボを受講するためだけにコンピュータクラスに来ることができます。タスクはtracにあり、自宅で行うことができます-必要なのは結果をsvnにアップロードすることだけです。 同時に、「自宅でフラッシュドライブ/フロッピーを忘れた」などの学生の言い訳はなくなりました。すべてのソーステキストは1か所に保存され、どこからでもアクセスできます。



当然、実験室作業の締め切りはゴムではありませんでした。 たとえば、予定された実験室作業が土曜日に実行される場合、この作業の目標日を設定します-翌日(日曜日)23:59、作業が時間通りに行われなかった場合、そのために取得できる最大スコアは減少します。 そして、作品の防御は、次のレッスンの教室時間で行われました-2週間後。 生徒がsvnログを使用してリポジトリにコミットした内容と時期を正確に確認できるため、「夕方にすべてを同じ日に行い、スコアを下げないでください」などの生徒の言い訳はなくなりました。 実際、2週間前ではなく、配達の前夜に作業が行われたことがわかった場合、ポイントは減ります。 すべての主要なコミットが、配達の前夜の午前0時から6時の間に行われたケースは珍しくありませんでしたが、仕事の質とそのためのポイントは適切でした。



コラボレーション



さらに、SVNの使用により、グループの研究室での作業が可能になりました。 もちろん、グループ開発自体が実験室作業の目的でない限り、ほとんどの作業の最適なグループサイズは2〜3人であると考えています(同じコースの後半でも同様の作業を行っています)。 グループ作業では、一方で、チームで行われる実際の作業の準備が可能になります。一方で、グループのメンバー間でタスクが並列化されるため、タスクを若干複雑にすることができます。



このようなグループの典型的な役割の分布は次のとおりです。1人の生徒がメインタスクを実装し、2人目が彼女のためのテストを行います(テスト入力データと参照出力を作成します。 3人目の生徒がいる場合は、たとえば、アセンブリスクリプトを作成し、最初の2人の作業を調整できます。 SVNを使用すると、それぞれが正確に何をしたかを確認し、それに応じて各生徒の参加度を評価できます。 誰がいくつかのコミットを行ったかを確認した後、その部分について全員に尋ねることができます。 もちろん、これは万能薬ではありませんが、まだ「トレーラー」、つまり課題の実施に参加しなかった学生から少し結び付けられていますが、同時にグループフレンドと一緒に「ボール」の評価を得ることを望んでいます。



グループ作業の次のステップは、Tracを使用することです。 この場合、コースプロジェクトで生徒と通信するためにTracを使用しました。 この技術のフレームワークで私が欲しかったものすべてをまだ実装していないということを控えておきます。 もちろん、それが最終的にどのようになるかを説明します(すでに次の学期に)。

学期中のコースプロジェクトの実施は、いくつかの段階に分けられます。



これは、ロードマップ上のマイルストーンイデオロギーに非常によく適合しています。 各学生は自分のプロジェクトのチケットを作成します。 学生は、ステージでの作業が完了したと見なしたときに、このチケットを州から「TKの形成」などの「TKの確認」状態に転送し、作成されたドキュメントを添付します(テキストドキュメントまたはこのタスクが実装されているSVNリポジトリへのリンクの場合。またはへのリンクこのドキュメントが作成されるウィキ。



「検証」状態では、完了した作業を分析し、コメントがある場合は、生徒に修正のためにタスクを返します。 したがって、タスクは複数のサイクルを繰り返し実行できます。 次に、すべてのコメントが修正されたら、タスクを閉じます。 生徒は自分に新しいタスクを設定します。 マイルストーンを使用すると、時間内に閉じられたタスクと閉じられなかったタスクを制御できます。これにより、一方で評価を変更することができます。他方では、締め切りに間に合わない学生と生徒に簡単でアクセス可能な方法で表示します。



学生がグループによるコースプロジェクトを完了することを選択した場合、tracとsvnを使用した彼らの仕事は、会社での実際の仕事と非常に似たものになります。



おわりに



市場の要件に従い、この記事で示されたツールを教育プロセスに含める必要があることは明らかでした。 分野の主題には、とりわけソフトウェア開発技術が含まれているため、このコースではこれらのツールは非常に有機的に見えました。



しかし、これらの技術を使用することで教育プロセスが変更され、一方では生徒の仕事がより透明になり、それに応じて生徒がより規律付けられるようになり、一方では生徒の仕事の評価をより透明にすることが可能になりました。



All Articles