シラバス情報

科目授業名称(和文) Name of the subject/class (in Japanese)
プログラミングとアルゴリズム1(プログラミングC)
科目授業名称(英文) Name of the subject/class (in English)
Programming and algorithm 1
授業コード Class code
994321G
科目番号 Course number
43ICPRO102

教員名
新井 麻希、山口 順之
Instructor
Nobuyuki Yamaguchi, Maki Arai

開講年度学期
2023年度後期
Year/Semester
2023 Second Semester
曜日時限
火曜2限
Class hours
Tuesday 2nd period

開講学科・専攻 Department
工学部 電気工学科

Department of Electrical Engineering, Faculty of Engineering
単位数 Course credit
2.0単位
授業の方法 Teaching method
講義

Lecture
外国語のみの科目(使用言語) Course in only foreign languages (languages)
-
授業の主な実施形態 Main class format
対面授業

概要 Description
プログラミング言語Cとアルゴリズムの基礎的な知識・技術を,ハードウェアとソフトウェアが両面から習得する。
This course covers to acquire basic knowledge and skills of programming language C and algorithms from both sides of hardware and software.
目的 Objectives
C言語の基本的な文法を習得し,様々なプログラムを作成できるようにする。特に,可読性が高くプロセッサに依存しない抽象度の高い高水準言語としてのC言語の特色を生かして,基本的なアルゴリズムを処理するプログラムを作成できるようにする。加えて,ハードウェア寄りの低水準言語としてのC言語の特色を生かしたメモリ操作を行うプログラムも作成できるようにする。
The objective of this course is to learn the basic grammar of C language and to be able to create various programs. In particular, the students will be able to create programs that process basic algorithms by taking advantage of the features of C language as a high-level language that is highly readable and has a high degree of processor-independent abstraction. In addition, it will also be possible to create programs that perform memory operations that take advantage of the features of C language, which is a low-level language closer to hardware.
到達目標 Outcomes
1.C言語の文法について理解し,プログラムが作成できる。
2.基礎的なアルゴリズムを理解し,活用できる。
3.高水準言語と低水準言語の違いを理解し,説明することができる。
Based on satisfactory completion of this course, students should be able to:
1. understand the C language grammar and create programs.
2. understand and utilize basic algorithms.
3. understand and explain the differences between high-level and low-level languages.
卒業認定・学位授与の方針との関係(学部科目のみ)
基礎学力
履修上の注意 Course notes prerequisites
・基礎情報工学で学んだ事項を習得していることを前提としていますので,よく復習しておいてください。
・実際にプログラムを作成します。プログラムを作成する課題もあります。
・It is assumed that a student has learned the items learned in Fundamentals of Information Technology, so please review carefully.
・The program is actually created. There is also the task of creating a program.
アクティブ・ラーニング科目 Teaching type(Active Learning)
小テストの実施 Quiz type test/実習 Practical learning
-

準備学習・復習 Preparation and review
・講義に加え,事前自習・事後自習もしっかり取り組んでください。
・講義中の指示に加え,LETUSなどの指示にも注意してください。
・In addition to the lectures, be sure to work on pre-study and post-study.
・In addition to the instructions given during the lecture, be careful of instructions on such as LETUS.
成績評価方法 Performance grading policy
講義ごとに出題される課題(プログラム作成を含む)(約40%),中間試験(約30%),到達度評価試験(約30%)で評価します。

学修成果の評価 Evaluation of academic achievement
・S:到達目標を十分に達成し、極めて優秀な成果を収めている
・A:到達目標を十分に達成している
・B:到達目標を達成している
・C:到達目標を最低限達成している
・D:到達目標を達成していない
・-:学修成果の評価を判断する要件を欠格している

・S:Achieved outcomes, excellent result
・A:Achieved outcomes, good result
・B:Achieved outcomes
・C:Minimally achieved outcomes
・D:Did not achieve outcomes
・-:Failed to meet even the minimal requirements for evaluation

教科書 Textbooks/Readings
教科書の使用有無(有=Y , 無=N) Textbook used(Y for yes, N for no)
Y
書誌情報 Bibliographic information
アルゴリズムとデータ構造 第2版/藤原暁宏/森北出版
MyKiTSのURL(教科書販売サイト) URL for MyKiTS(textbook sales site)
教科書および一部の参考書は、MyKiTS (教科書販売サイト) から検索・購入可能です。
It is possible to search for and purchase textbooks and certain reference materials at MyKiTS (online textbook store).
https://gomykits.kinokuniya.co.jp/tokyorika/​​​

参考書・その他資料 Reference and other materials
すっきりわかるC言語入門 第2版/中山清喬/インプレス

授業計画 Class plan
第1回: C言語概論,BYODの設定
第2回: 変数,ファイル入出力概要,制御文
第3回: 構造体,配列,データ構造
第4回: 関数,計算量
第5回: アドレス・ポインタ,メモリアクセス
第6回: ファイル入出力
第7回:中間試験
第8回: 分割統治法,大きな整数の掛け算
第9回: 分割統治法,マージソート
第10回:プリプロセッサ・コンパイル・ライブラリ・リンカ
第11回: グリーディ法
第12回: 動的計画法
第13回: バックトラック法
第14回: 分枝限定法
第15回: 到達度評価試験と解説

Unit 1: Introduction to C language, BYOD settings
Unit 2: Variables, file I / O overview, control statements
Unit 3: Structures, arrays, data structures
Unit 4: Function, computational complexity
Unit 5: Address pointer, memory access
Unit 6: File input / output
Unit 7:Midterm exam
Unit 8: Divide-and-conquer method, multiplication of large integers
Unit 9: Divide-and-conquer law, merge sort
Unit 10: Preprocessor compilation library linker
Unit 11: Greedy method
Unit 12: Dynamic programming
Unit 13: back track method
Unit 14: Branch-and-bound method
Unit 15: Achievement evaluation test and explanation

授業担当者の実務経験 Work experience of the instructor of the class
-
教育用ソフトウェア Educational software
-
-

備考 Remarks
-