トップページへ

2024 Faculty Courses School of Computing Undergraduate major in Computer Science

Advanced Procedural Programming

Academic unit or major
Undergraduate major in Computer Science
Instructor(s)
Masahito Ohue / Yin Jun Phua
Class Format
Lecture/Exercise (Face-to-face)
Media-enhanced courses
-
Day of week/Period
(Classrooms)
5-8 Mon / 5-6 Thu
Class
-
Course Code
CSC.T253
Number of credits
210
Course offered
2024
Offered quarter
2Q
Syllabus updated
Mar 17, 2025
Language
Japanese

Syllabus

Course overview and goals

This course provides the theory and practice for advanced procedural C programming, by means of lectures and exercises. The first half focuses on pointer variables, string processing, structures, and dynamic memory allocation, which lead to studying algorithms, data structures, and methodologies for producing a large program in the last half. Additionally, students are requested to fully utilize those knowledge and skills to implement large programs associated with practical information processing, such as solving puzzles and pattern recognition. It is desired that students are equipped with fundamental knowledge for C language through, for example "Procedural programming fundamentals (CSC.T243)."

Course description and aims

Students are requested to learn and use the following skills: a) producing C programs associated with pointer variables, structures, and dynamic memory allocation; b) selectively using the optimal algorithm and data structure (e.g., stacks, queues, linked lists, and tree structures) to solve the problem in question; c) programming techniques required for practical information processing tasks and debugging for large programs.

Keywords

Procedural programming, pointer variables, string processing, structures, dynamic memory allocation, stacks, queues, linked lists, tree structures, tree search, algorithms, data structures, complexity, and debug

Competencies

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

Class flow

Three-time slots in one week consist of a single slot for a [Lecture] and two slots for [Exercise] related to the [Lecture].

Course schedule/Objectives

Course schedule Objectives
Class 1

[Lecture] Pointer variables

Available during each class.

Class 2

[Exercise] Introduction to advanced programming, preparation to computer environments, and pointer variables

Available during each class.

Class 3

[Lecture] String processing, Structures

Available during each class.

Class 4

[Exercise] Pointer variables

Available during each class.

Class 5

[Lecture] Structures and dynamic memory allocation

Available during each class.

Class 6

[Exercise] String processing

Available during each class.

Class 7

[Lecture] Stacks, queues, and linked lists

Available during each class.

Class 8

[Exercise] Structures and dynamic memory allocation

Available during each class.

Class 9

[Lecture] Tree structures and tree search

Available during each class.

Class 10

[Exercise] Stacks, queues, and linked lists

Available during each class.

Class 11

[Lecture] Methodologies for producing large programs, and advanced topics

Available during each class.

Class 12

[Exercise] A program for advanced information processing: Design, research ethics

Available during each class.

Class 13

[Exercise] A program for advanced information processing: Implementation and evaluation

Available during each class.

Class 14

Achievement evaluation

Available during each class.

Study advice (preparation and review)

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.

Textbook(s)

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.

Evaluation methods and criteria

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

Related courses

  • CSC.T244 : Creative Programming Projects
  • CSC.T243 : Procedural Programming Fundamentals
  • CSC.T263 : Functional Programming Fundamentals
  • CSC.T273 : Object-Oriented Programming
  • CSC.T344 : System Programming
  • CSC.T354 : Parallel Programming
  • XCO.T490 : Exercises in fundamentals of artificial intelligence
  • XCO.T488 : Exercises in fundamentals of data science
  • LAS.I111 : Information Literacy I
  • LAS.I112 : Information Literacy II

Prerequisites

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 class.
* Students who have taken "CSC.T244: Creative Programming Projects" cannot take this class.

Office hours

Wednesday afternoon (appointment via email is required)