This course provides the theory and practice for fundamental procedural C programming, by means of lectures and exercises.
In the first half, students acquire grammar knowledge on C languages such as data types, operators, control structures, functions and recursion through lectures and exercises. In the second half, students learn algorithms to solve concrete problems such as search and sorting. In addition, array, file I/O, character and string types, etc. are acquired along with the knowledge learned in the first half. In the second half exercise, students are requested to fully utilize those knowledge and skills to implement large programs for statistical analysis and searching for large amount of data.
(1) Understand data types, standard input/output, operators, control flows, functions, recursion, arrays, file input/output and character/string types of C language, and create programs utilized them.
(2) Understand multiple search algorithms and sorting algorithms, and create programs to realize them.
(3) Create programs to solve problems such as data analysis, and explain their solutions.
Procedural programming, data type, standard I/O, control flow, array, function, file I/O, recursion, sort, search, algorithm, and data analysis
|✔ Specialist skills||Intercultural skills||Communication skills||Critical thinking skills||Practical and/or problem-solving skills|
Three time slots in one week consists of a single slot for a lecture and two slots for exercises related to the lecture.
|Course schedule||Required learning|
|Class 1||[Lecture] Hardware/software, integer/real type, operator, and standard I/O||Available during each class.|
|Class 2||[Exercise] Introduction to fundamental programming and preparation to computer environments||Available during each class.|
|Class 3||[Lecture] Control flow (conditional branch, loop)||Available during each class.|
|Class 4||[Exercise] Hardware/software, four arithmetic operations, and standard I/O||Available during each class.|
|Class 5||[Lecture] Function, recursion, and scope of the variables||Available during each class.|
|Class 6||[Exercise] Control flow||Available during each class.|
|Class 7||[Lecture] Array, multi-dimensional arrays, and file I/O||Available during each class.|
|Class 8||[Exercise] Function and recursion||Available during each class.|
|Class 9||[Exercise] Array, multi-dimensional arrays, and file I/O||Available during each class.|
|Class 10||[Lecture] character and string type||Available during each class.|
|Class 11||[Exercise] Program design related to basic information processing task (statistics, measurement and control, etc.)||Available during each class.|
|Class 12||[Lecture] Search algorithm||Available during each class.|
|Class 13||[Exercise] Program implementation of basic information processing task.||Available during each class.|
|Class 14||Evaluation||Available during each class.|
To enhance effective learning, students are encouraged to spend a certain length of time outside of class on preparation and review (including for assignments), as specified by the Tokyo Institute of Technology Rules on Undergraduate Learning (東京工業大学学修規程) and the Tokyo Institute of Technology Rules on Graduate Learning (東京工業大学大学院学修規程), for each class.
They should do so by referring to textbooks and other course material.
Materials will be available during each lecture and exercise.
Brian W. Kernighan, Dennis M. Ritchie. C Programming Language (Second Ed.), Prentice Hall, 1988.
written examination (50%) and report for project-based programming (50%)
This unit is recommended for 2nd-year students from the CS department. Due to the limited space and the number of equipment, this unit may not be able to accept students from other departments. Registered students MUST attend the first lesson.
Wednesday afternoon (appointment via email is required)