トップページへ

2025 (Current Year) Faculty Courses School of Computing Undergraduate major in Computer Science

Parallel Programming

Academic unit or major
Undergraduate major in Computer Science
Instructor(s)
Suguru Saito / Youmi Ma
Class Format
Lecture/Exercise (Face-to-face)
Media-enhanced courses
-
Day of week/Period
(Classrooms)
3-4 Tue (W9-323(W932)) / 3-4 Fri (W9-323(W932))
Class
-
Course Code
CSC.T354
Number of credits
110
Course offered
2025
Offered quarter
2Q
Syllabus updated
Mar 31, 2025
Language
Japanese

Syllabus

Course overview and goals

Parallel programming is an indispensable technique to use a recent computer efficiently. In this lecture and exercise, you will learn the basic knowledge and practical skills for parallel programming.
In a parallel program, problems not occurring in a non-parallel program happen. The reason why those happen and methods to avoid them are explained in lecture. Actual programming is experienced in exercise. Therefore please acquire programming knowledge in advance.
Java language is adopted in this class.

Course description and aims

The goal of this class is to learn several knowledge parts to build a right parallel program, such as right data resource sharing, synchronization, appropriate calculation power distribution, deferred execution and so on through java code.

Topics are:
1) understanding where a data instance is stored
2) thread programming
3) event-driven programming
4) GPU programming

Keywords

Thread programming, GPU programming, GUI programming, Visibility, Synchronize, Monitor, Atomicity

Competencies

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

Class flow

lecture terms are in classroom and exercise terms are in computer room of our faculty.

Course schedule/Objectives

Course schedule Objectives
Class 1

Introduction, Event-driven programming

event and event handler

Class 2

exercise 1

JavaFX program

Class 3

Event-driven programming(2)
Thread

event transfer
thread, monitor

Class 4

exercise 2

JavaFX program 2

Class 5

Thread safe
review: data and its stored way

unshared, immutable, synchronize
shallow copy and deep copy, real and reference

Class 6

exercise 3

review of data and pointer, use of polymorphism
race condition

Class 7

thread and complex synchronization
atomic

wait, join, and notify
starvation

Class 8

exercise 4

concurrent server

Class 9

deferred execution
stream

stream, lambda expression, thread pool

Class 10

exercise 5

lambda expression and stream

Class 11

GPU programming

OpenCL

Class 12

exercise 6

OpenCL

Class 13

GPU programming image processing

data parallel execution

Class 14

exercise 7

image processing
integrated application

Study advice (preparation and review)

To enhance effective learning, students are encouraged to spend approximately 100 minutes preparing for class and another 100 minutes reviewing class content afterwards (including assignments) for each class.
They should do so by referring to textbooks and other course material.

Textbook(s)

None

Reference books, course materials, etc.

Handout will be uploaded on T2SCHOLA.
Data and sample codes will be uploaded on a web site.

Evaluation methods and criteria

Scored by submitted reports.

Related courses

  • CSC.T263 : Functional Programming Fundamentals
  • CSC.T273 : Object-Oriented Programming
  • CSC.T344 : System Programming
  • CSC.T363 : Computer Architecture

Prerequisites

If there are students exceed the number of computers, the students of computer science will be given priority to.