サントシュ・ラウー・ガワンデ:
プログラミングのスペシャリストに聞く

先生の経験について詳しく教えてください

ムンバイ大学工学部卒の工学士で、エンジニアとして専門職に就いています。PMP(プロジェクトマネジメント・プロフェッショナル)認定資格のほか、プログラミングやソフトウェアアーキテクチャ、戦略的ビジネスマネジメントなど多岐にわたる分野で様々な資格を取得しています。

経歴については、まず石油精製所や化学工場のエンジニアリングオートメーションと設計の分野でキャリアをスタートさせました。後にアルゴリズム取引、資産管理、保険、電子商取引におけるシステムのソフトウェアアーキテクチャ、設計および開発の分野へとキャリア転換していきました。

革新技術の活用や、エンジニアリングとテクノロジー、アート、ゲーム、自然といった多種多様な領域での自身の経験をマッシュアップすることにより、複雑な問題を楽しみながら解決していくことを得意とします。

主に関心を寄せる分野について:

  • クラウド (AWS、MS Azure、Linux、Unix、Windows))とオンプレミスプラットフォーム上で機能するさまざまなメソドロジーとJava、J2EE、C/C++、シェル、Python、R-Programming、Objective-C、Swift、J-Query、VB、Node.js、.NET、ブロックチェーン、ロボティクス、AI、API (Swagger)、マイクロサービスといったプログラム言語を活用した企業レベルの分散システムの設計、デザイン、実装。
  • ビジネス戦略に沿った現実的なIT戦略の開発 (実行可能性調査、概念実証、費用対効果分析、調査)。
  • 社会的および経済的環境に関連した問題解決のための新しいテクノロジーや、アプリケーションの調査と実施。

担当する講座について詳しく聞かせてください

JAVA基礎 (JAV101)

JAVA基礎 (JAV101)では、Javaプログラミング言語によるオブジェクト指向プログラミング(OOP)、SDLC (システム開発ライフサイクル)、単体テストによるソフトウェア品質の測定、SwingフレームワークによるGUI開発を取り上げます。授業で学んだコンセプトは、最終的にプロジェクトワークで実践します。

コース全体の割合は、80%がJavaを使った実技演習、残りの20%がUML(統一モデリング言語) などのモデリング言語を使った設計です。

修了生は、設計技法を用いて問題点を理解し、最終的にJavaプログラミング言語を活用して実践の場における問題解決に取り組むことができます。このコースは、ソフトウェアの構築を習得しながら、自らのアイデアや創造性を深めたいと考える受講生にお勧めします。

JAVA中級 (JAV102)

JAVA中級 (JAV102)では、Javaサーバサイド・プログラミング(Servlets)とデータベース統合によるエンタープライズ・ウェブシステムの開発を主に取り上げます。開発はJava言語を中心に行いますが、基本的なデータベースのモデリングとSQLを使用したデータベースの作成についても学びます。

SDLC(システム開発ライフサイクル)のコンセプト、単体テストによるソフトウェア品質の測定、システム統合テスト(SIT)、JSP(Java Server Pages)とHTML5、CSS3によるUI開発も取り上げます。授業で学んだコンセプトは、最終的にプロジェクトワークで実践します。

コース全体の割合は、80%がJava EE (エンタープライズ・エディション)のウェブ開発技術を用いた実技演習、残りの20%がUML(Unified Modeling Language) などのモデリング言語を使った設計です。

修了生は、ウェブアプリケーションを設計し実装するだけではなく、必要なソフトウェアとサーバー*をインストールし、開発したウェブアプリケーションをデプロイし実行することができるようになります。対象となるウェブアプリケーションは、電子商取引やオンラインバンキング、航空会社発券システムやその他のウェブシステムです。

* ウェブサーバ (Apache、nginx)、アプリケーションサーバ (Jetty、Tomcat) とデータベースシステム (mySQL)

Javaなどオブジェクト指向プログラミング(OOP)言語の経験がある受講生、または、JAV101修了生を対象とするコースです。

ソフトウェアアーキテクチャ設計 (SOA101)

ソフトウェアアーキテクチャ設計 (SOA101)で特に重視するのは、システムの品質特性(QA)を理解し、ソフトウェアシステムにおける「どのように」*に加えて「どれだけ良好に」**という2つの要素について判断することです。

コース全体の割合は60%が実技演習で、残りの40%がモデリング言語を使った設計上の青写真の作成、文書化を含む統一モデリング言語(UML)のアーキテクチャと設計理論と知識の習得です。設計上の青写真はJavaプログラミング言語を使って実装され、バックエンドのウェブアプリケーションサーバとデータベース上で実行されます。

* ソフトウェアシステムの「どのように」は、主に機能要件に言及する。

** ソフトウェアシステムの「どれだけ良好に」は、主に非機能要件 (NFR)に言及する。

修了生は、性能、可用性、セキュリティ、保全性、有用性などの品質特性(QA)の適切な組み合わせ (トレードオフ分析)を選択し、高品質のエンタープライズシステムを設計することができます。

様々な設計上の決定とトレードオフ分析に基づき、高品質なシステムを構築したいと考える受講生、オブジェクト指向プログラミング (OOP)の知識がある、またはJAV102修了生にとって有益なコースです。

iPhone/iPadアプリケーション開発(1日ワークショップ)(PAD101)

iPhone/iPadアプリケーション開発(1日ワークショップ)(PAD101)では、Apple社の総合開発環境XCodeを実際に使用して、モバイルアプリケーションの開発を行うことが出来ます。

全体の割合は80%が実技で、残りの20%がオブジェクト指向設計とプログラミング、MVC (モデル・ビュー・コントローラ)のパターン、アプリケーションライフサイクル、イベント処理についての理論と知識の習得です。

修了生は、iOSプラットフォーム向けのモバイルアプリケーションを構築することができます。

iOSプラットフォーム向けモバイルアプリケーションの構築を通して、アイデア(教育、ビジネス、ゲーム)や創造性を深めたいと考える受講生が対象です。

Android(アンドロイド)アプリ開発ワークショップ(1日ワークショップ)(AND101)

Android(アンドロイド)アプリ開発ワークショップ(1日ワークショップ)(AND101)では、アンドロイドスタジオを実際に使用して、モバイルアプリケーションの開発を行うことが出来ます。

全体の割合は80%が実技で、残りの20%がオブジェクト指向設計とプログラミング、MVC (モデル・ビュー・コントローラ)アプリケーションライフサイクル、イベント処理についての理論と知識の習得です。

修了生は、Androidプラットフォーム向けモバイルアプリケーションを構築することができます。

Androidプラットフォーム向けモバイルアプリケーションの構築を通して、アイデア (教育、ビジネス、ゲーム)や創造性を深めたいと考える受講生が対象です。

どのような方が先生のコースを受講していますか。

受講生の約8割は、ラボでの実技演習やガイド付きプロジェクトワークを通じた実践トレーニングを希望する社会人の方々です。

残り2割の受講生は、大学生やソフトウェア開発分野またはAI、ロボティクスなどの新技術分野における事業拡大を望む起業家の方々です。