To Top Page

2026 (Current Year) Faculty Courses School of Computing Undergraduate major in Mathematical and Computing Science

Programming I

Academic unit or major
Undergraduate major in Mathematical and Computing Science
Instructor(s)
Ken Wakita / Mikito Nanashima
Class Format
Lecture/Exercise
Media-enhanced courses
-
Day of week/Period
(Classrooms)
Class
-
Course Code
MCS.T224
Number of credits
210
Course offered
2026
Offered quarter
3Q
Syllabus updated
Mar 5, 2026
Language
Japanese

Syllabus

Course overview and goals

This course emphasizes the process of completing a program, as well as the analysis of the functions of a computer system and the step-by-step completion of the program, taking the appropriate steps. Students will be able to analyze the system, describe its properties, identify technical problems, and select appropriate implementation methods.

Course description and aims

This course aims to enable students to effectively use modern programming environments, such as automatic build systems, compilers, test tools, and software repositories; to understand the concept of system states and to acquire the ability to design and develop state-based programming; and to develop practical software on a certain scale.

Students who have learned the rudiments of functional programming will be introduced to the basics of state-based programming.

Keywords

Programming, Software development, Functional Programming, Scala

Competencies

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

Class flow

Lectures and exercises will be coordinated with each other.

Course schedule/Objectives

Course schedule Objectives
Class 1

Review of Scala Programming (1/2)

Learn about program execution methods

Class 2

Scala program structure and Scala development (2/2)

Learn the Scala language and its development environment

Class 3

States

Learn about states and their representations

Class 4

Exception handling

Learn about exception handling and exception handling mechanism

Class 5

Higher-order functions

Learn higher-order functions

Class 6

Objects and Classes (1/2)

Learn objects and classes as an abstraction of compound data structure

Class 7

Objects and Classes (2/2)

Learn objects and classes as an abstraction of compound data structure

Class 8

Graphs and graph algorithms

Learn algorithms for graph algorithms

Class 9

Regular expressions

Learn how to practically use regular expressions in a programming setting

Class 10

Implementation of regular expression acceptor

Learn about interfaces and implementation inheritance using classes, traits, etc.

Class 11

Game strategy and edge pruning

Learn about game strategies and edge pruning

Class 12

Concurrent computing and parallel execution (data parallelism)

Learn the techniques for data parallelism

Class 13

Concurrent computing and parallel execution (task parallelism)

Learn the techniques for task parallelism

Class 14

Student Presentation

Invite students to present their final project

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 course material.

Textbook(s)

None

Reference books, course materials, etc.

Lecture slides, exercise materials, and reference videos will be provided via T2SCHOLA and Slack. Sample code and exercise programs will be provided via GitHub.

Evaluation methods and criteria

Students should be able to develop using basic development tools, and should be able to analyze, design, and implement requirements for small-scale program development. The achievement level for in-class quizzes and the achievement level for programming assignments will be calculated using a weighted geometric mean with weights of 0.3 and 0.7, respectively.

Related courses

  • MCS.T204 : Introduction to Computer Science
  • MCS.T213 : Introduction to Algorithms and Data Structures
  • MCS.T214 : Theory of Automata and Languages

Prerequisites

Students must take MCS.T204 (Introduction to Computer Science). It is strongly recommended that students take Automata and Mathematical Linguistics (MCS.T214) and Algorithms and Data Structures (MCS.T213).

Contact information (e-mail and phone) Notice : Please replace from ”[at]” to ”@”(half-width character).

Contact the teaching staff via Slack.

Office hours

Contact the teaching staff via Slack.