世の中には様々なプログラミング言語が存在し、それぞれが様々な特徴を持っている。この授業では、そのようなプログラミング言語の背後にある共通の概念についてとりあげる。具体的には、形式文法、データ型、プログラミング・パラダイム、 並列プログラミング、プログラムの検証、意味論などの概略を紹介し、コンピュータ・サイエンスの専門的な研究を行うための広範囲の基礎知識を得ることを目的とする。あくまで理論的な理解を主眼としており、具体的なプログラミングの演習ではないことに注意。