2019 Procedural Programming Fundamentals

Font size  SML

Register update notification mail Add to favorite lecture list
Academic unit or major
Undergraduate major in Computer Science
Itoh Yuta  Ohue Masahito 
Course component(s)
Lecture / Exercise     
Day/Period(Room No.)
Mon7-8(W611)  Thr5-8(GSIC 3階 312号室, GSIC Rm312 3Fl)  
Course number
Academic year
Offered quarter
Syllabus updated
Lecture notes updated
Language used
Access Index

Course description and aims

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.

Student learning outcomes

(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

Competencies that will be developed

Specialist skills Intercultural skills Communication skills Critical thinking skills Practical and/or problem-solving skills

Class flow

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

  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.

Reference books, course materials, etc.

Brian W. Kernighan, Dennis M. Ritchie. C Programming Language (Second Ed.), Prentice Hall, 1988.

Assessment criteria and methods

written examination (50%) and report for project-based programming (50%)

Related courses

  • CSC.T253 : Advanced Procedural Programming
  • CSC.T263 : Functional Programming Fundamentals
  • CSC.T273 : Object-Oriented Programming
  • CSC.T271 : Data Structures and Algorithms
  • CSC.T344 : System Programming
  • CSC.T354 : Parallel Programming
  • CSC.T362 : Numerical Analysis
  • LAS.I111 : Information Literacy I
  • LAS.I112 : Information Literacy II

Prerequisites (i.e., required knowledge, skills, courses, etc.)

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.

Office hours

Wednesday afternoon (appointment via email is required)

Page Top