コンテンツにスキップ

ソフトウェア1 (2021)

本サイトは、東京大学工学部電子情報工学科・電気電子工学科の進学内定者(2年生、A1ターム)を主たる対象としたソフトウェア1の講義ページです。C言語の基礎を勉強します。

電気系の学科のslackにて講義に関する通知を行うので、常時学科slackをチェックするようにしてください。 電気系の2年生は最初のオリエンテーションで全員slackに招待されるはずですが、もし招待されていなければ松井まで連絡してください。 3, 4年生は既に全員招待済みのはずです。電気系以外の履修者は招待されていないので、松井まで個別に連絡してください。招待します。

【2021/10/7追記】講義中に配ったslack invitation linkでslackに入った人は、slackのDMで松井まで「名前・所属・10桁ID」を教えてください。また、「ソフトウェア1」のチャンネルに入ってください。

ニュース

講義担当

工学部電子情報工学科 講師 松井勇佑 (連絡先:matsui at hal.t.u-tokyo.ac.jp)

講義の目標

  • UNIX環境におけるプログラミングの作法や基本概念を理解する。
  • C言語の基本的な文法を習得する。特に、ポインタを理解する。
  • Git/GitHubを題材に、バージョン管理の概念を習得する。

講義の時間と受講方法

  • 講義の時間
    • 毎週木曜日 3限と4限
    • 3限:13:15-14:45
    • 4限:15:10-16:40
  • 講義の形態はハイブリッドです。
    • リモートで受ける場合:Zoomに入ってください。
    • 現地で受ける場合:本郷工学部二号館4階の241教室にノートPCを持ってきてください。
  • 現地参加の場合のルール:
    • 1回目(10/4の週):学生証番号が奇数の人のみ現地参加可能
    • 2回目(10/11の週):学生証番号が偶数の人のみ現地参加可能
    • 3回目以降:【10/14更新】三回目以降は、学生証番号に依らず、現地参加したい人は誰でも参加できます
    • MOCHAで滞在予約をしてください。
  • 講義では、Zoomにて松井が本サイトの内容を解説しながら読み進めます。ところどころで実装パートがありますので、そこで受講者の皆さんには手を動かして実際にプログラミングをしてもらうというスタイルで講義を進めます。
  • ZoomアドレスはUTAS (ITC-LMS)で確認してください。講義は録画してslackに起きます。
  • 2名のTAがいます。講義中でわからないことがあれば、松井およびTAで対応します。随時発言するか、slackに書き込んでください。slackには授業時間外でもいつでも質問を書き込んでいただいて構いません。また、Zoomでは「質問部屋」というブレイクアウトルームを作っておきますので、周りに聞かれずに質問したいときはそこにTAさんにDMしてその部屋に入ってください。

プログラミング環境

  • プログラミングを行うコンピュータとして、例年は駒場の情報教育棟のマックを使ってもらってきました。今年は情報教育棟は使えないので、 受講者の皆さんには自分のコンピュータでプログラミングを行ってもらいます。タブレットやスマホでプログラミングを行うことは推奨しません。
  • Google Cloud Shell Editor というウェブ上から実行できるプログラミング環境を想定して講義を進めます。なので、標準的なコンピュータ(Windows 10/11, Mac OS, Linux)であれば特に何も準備することなく、講義を受講することが可能(なはず)です。
  • 意欲のある学生は、ローカル環境を構築しての受講をおすすめします。
  • 第一回で説明しますが、コードの提出のためにGithubアカウントを準備してもらいます。Github Classroomという仕組みでコードを提出してもらいます。

成績評価

成績は以下の二つを考慮して決めます。

  • 毎週簡単な宿題を出します。
  • 最後に最終レポートあるいは試験を行います。

スケジュール

Week 1 (2021/10/7)

ターミナル、コマンド、コンパイル、データ型、GitHubの準備

Week 2 (2021/10/14)

演算子、制御、配列、関数

Week 3 (2021/10/21)

文字列、型変換、入出力、printf詳細

Week 4 (2021/10/28)

ポインタ

Week 5 (2021/11/4)

ポインタ応用、コマンドライン引数

Week 6 (2021/11/11)

構造体、ビット演算、ライブラリツアー

Week 7 (2021/11/18)

バージョン管理(Git/GitHub)、入出力のまとめ、Cのその他の重要機能、夕方(17:30-19:00)に、希望者はGoogleオフィスバーチャル見学ツアー

教科書・参考文献

関連講義