ソフトウェア1 (2023)¶
本サイトは、東京大学工学部電子情報工学科・電気電子工学科の進学内定者(2年生、A1ターム)を主たる対象としたソフトウェア1の講義ページです。C言語の基礎を勉強します。
電気系の学科のslackにて講義に関する通知を行うので、常時学科slackをチェックするようにしてください。 電気系の学生は既に全員slackに招待されるはずですが、もし招待されていなければこちらを参考に入ってください。 電気系以外の学生も、上記リンクを参考に入ってください。講義を受講する学生なら誰でも参加出来るという運用になっています。
本サイトは2023年度版です。2024年度版はこちら。
ニュース¶
- [2023.11.15] week7を追加およびバージョン管理を追加しました。
- [2023.11.08] week6を追加しました。
- [2023.11.01] week5を追加しました。
- [2023.10.25] week4を追加しました。
- [2023.10.18] week3を追加しました。
- [2023.10.11] week2を追加しました。
- [2023.10.02] HPを公開しました。
講義担当¶
工学部電子情報工学科 講師 松井勇佑 (連絡先:matsui at hal.t.u-tokyo.ac.jp)
講義の目標¶
- UNIX環境におけるプログラミングの作法や基本概念を理解する。
- C言語の基本的な文法を習得する。特に、ポインタを理解する。
- Git/GitHubを題材に、バージョン管理の概念を習得する。
講義の時間と受講方法¶
- 講義の時間
- 毎週木曜日 3限と4限
- 3限:13:00 - 14:45
- 4限:14:55 - 16:40
- 場所
- 情報教育棟 E21教室
- 講義の形態はオンサイト開催ですが、初回だけzoomなので注意してください。ZoomアドレスはUTAS (ITC-LMS)で確認してください。
- 講義では、講義室にて松井が本サイトの内容を解説しながら読み進めます。ところどころで実装パートがありますので、そこで受講者の皆さんには手を動かして実際にプログラミングをしてもらうというスタイルで講義を進めます。
- 2名のTAがいます。講義中でわからないことがあれば、松井またはTAに聞いてください。直接尋ねてもいいですし、slackに書き込んでもいいです。slackには授業時間外でもいつでも質問を書き込んでいただいて構いません。
プログラミング環境¶
- プログラミングを行う環境として、ローカル環境、オンライン環境の二通りがあります。どちらで行ってもよいです。
- ローカル環境:目の前の自分のコンピュータでプログラミングします。情報教育棟でマックを使う場合はこちらです。家で自分のコンピュータ上でプログラミングする場合もこちらです。
- オンライン環境:遠隔のコンピュータにブラウザ経由でログインしてプログラミングします。Google Cloud Shell Editor というサービスを用います。第一回授業はzoomなので、基本的に全員こちらになります。
- タブレットやスマホでプログラミングを行うことは推奨しません。
- 第一回で説明しますが、コードの提出のためにGithubアカウントを準備してもらいます。Github Classroomという仕組みでコードを提出してもらいます。
成績評価¶
成績は以下の二つを考慮して決めます。
- 毎週簡単な宿題(プログラミング課題)を出します。
- 最後に最終課題およびレポートを課します。
スケジュール¶
Week 1 (2023/10/5)¶
- ターミナル、コマンド、コンパイル、データ型、GitHubの準備
Week 2 (2023/10/12)¶
- 演算子、制御、配列、関数
Week 3 (2023/10/19)¶
- 文字列、型変換、入出力、printf詳細
Week 4 (2023/10/26)¶
- ポインタ
Week 5 (2023/11/2)¶
- ポインタ応用、コマンドライン引数
Week 6 (2023/11/9)¶
- 構造体、ビット演算、ライブラリツアー
Week 7 (2023/11/16)¶
- バージョン管理(Git/GitHub)、入出力のまとめ、Cのその他の重要機能、
教科書・参考文献¶
- B. W. カーニハン, D. M. リッチー, プログラミング言語C, 共立出版
- C言語を設計した本人による、古典的な教科書。30年以上前に出版された古い本です。現在は推奨されない方法や考え方も書かれていますが、今でもC言語のバイブルとして扱われています。いわゆるK&R本。
- この書籍を購入しなくても支障がないように講義をすすめますが、一冊買って手元に置いておいてもよいと思います。
- Cの絵本 第2版 C言語が好きになる新しい9つの扉, 株式会社アンク
- 本書は非常にわかりやすい入門書ですので、K&Rが難しければこちらを参照してください。
- C Programming: A Modern Approach, K. N. King, W. W. Norton & Company
- C99を含む包括的な本です。この一冊をマスターすれば言うことはありません。
- 詳説 Cポインタ,Richard Reese,オライリージャパン
- ポインタに関するマニアックな解説書です。ポインタで困ったときは辞書として使えると思います。
- ドットインストール
- 様々なプログラミング言語のチュートリアルを非常に短い動画で紹介しています。
- 【改訂版】組込みソフトウェア開発向け コーディング作法ガイド[C言語版]ESCR Ver.3.0, IPA, 2018.
- [web] / [pdf (無料公開)]
- C言語のコーディング作法についての辞書です。コーディングで守るとよい作法がまとめられています。組み込み向けの書籍ですが、組み込みでなくても有用です。
関連講義¶
- ソフトウェア1(2022):去年の講義ページ
- ソフトウェア2(齋藤先生):A2タームでは、ソフトウェア1の続きとしてソフトウェア2が齋藤先生により開講されます。
- プログラミング基礎演習(長谷川先生):ソフトウェア1・2とは独立に、プログラミング演習の講義が、A1およびA2タームに長谷川先生により開講されます。