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
|Intercultural skills||Communication skills||Specialist 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||[Exercise] Introduction to fundamental programming and preparation to computer environments||Available during each class.|
|Class 2||[Lecture] Hardware/software, integer/real type, operator, and standard I/O||Available during each class.|
|Class 3||[Exercise] Hardware/software, four arithmetic operations, and standard I/O||Available during each class.|
|Class 4||[Lecture] Control flow (conditional branch, loop)||Available during each class.|
|Class 5||[Exercise] Control flow||Available during each class.|
|Class 6||[Lecture] Function, recursion, and scope of variable||Available during each class.|
|Class 7||[Exercise] Function and recursion||Available during each class.|
|Class 8||[Lecture] Array, multi-dimensional arrays, and file I/O||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||[Lecture] Sort algorithm||Available during each class.|
|Class 15||[Exercise] Program evaluation of basic information processing task.||Available during each class.|
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)