概要
この記事は、CS分野の複数のユニークな講義内容を紹介。 各講義はソフトウェア開発やプログラミング思考に関する独自の視点を提供。 歴史的なソフトウェア、UX、パフォーマンス、心理的側面まで幅広くカバー。 実践的な事例や具体的なツールを通じて理解を深める構成。 プログラマーの行動や思考パターンまで掘り下げる内容。
CSCI 2100: オブジェクト指向プログラミングの「アンラーニング」
- オブジェクト階層 に依存しない変数の作成・利用法
- より汎用的に使える 「関数」 の概念紹介
- メソッド との違いと応用範囲
- 前提条件: 「抽象基底クラス」 を扱ったことがあること
CSCI 3300: 古典的ソフトウェア研究
- VisiCalc, AppleWorks, Robot Odyssey, Zork, MacPaint など歴史的製品の考察
- ユーザーインターフェース の進化と創造性の分析
- ハードウェア制約 が生んだ独自の工夫
- 歴史的背景と現代への影響
CSCI 4020: 遅い言語で速いコードを書く
- Python などのインタプリタ言語でのパフォーマンス最適化
- C++ に匹敵または上回る実行速度の追求
- 脆弱性の低減 と開発の楽しさの両立
- 高レベルでの パフォーマンス分析 手法
CSCI 2170: コマンドラインツールのユーザー体験
- コマンドラインプログラムにおける UX原則 の導入
- 出力の関連性・可読性・最小化 への注目
- UNIXの 「ls」ツール を事例に、過剰なオプション問題を分析
- クラスプロジェクトを通じた体験的学習
PSYC 4410: プログラマー思考の執着
- ソフトウェア開発者が陥りやすい 周辺的関心事 の特定と理解
- コード整形・分類体系・型システム・ファイル分割 などへの過度なこだわり
- 新規システム への拒否反応や批判の心理的分析
- プログラマー特有の 思考パターン の詳細研究