Course title
L00410003
Information System and System Programming

SUGAYA Midori
Middle-level Diploma Policy (mDP)
Program / Major mDP Goals Courses
Fundamental Mechanical Engineering F 産業界や社会の要請を把握して解決するべき課題を設定し、さまざまな工学分野の知識を関連付けながら設計生産技術を活用することで、立案した構想に従って研究を進め課題を解決することができる。 Sub
Advanced Mechanical Engineering F 産業界や社会の要請を把握して解決するべき課題を設定し、機械工学の学理を応用して異分野を含む融合分野で革新的な機能を創成することができる。 Sub
Environment and Materials Engineering B 地球環境や地域社会との調和を見据えて、さまざまな工学分野に関わる問題を解決することができる。 Sub
Chemistry and Biotechnology B 地球環境や地域社会との調和を見据えて、さまざまな工学分野に関わる問題を解決することができる。 Sub
Electrical Engineering and Robotics D 電気工学や関連する工学の技術分野を課題に適用し、社会の要求を解決するために応用することができる。 Sub
Advanced Electronic Engineering E 専門的デザイン課題について解決する能力を身に付けることができる。 Sub
Information and Communications Engineering F 社会のニーズに対して技術課題を主体的に発見し、工学分野における分野横断的な知識も活用しつつ、計画的・継続的に取り組んで課題を達成することができる。 Sub
Computer Science and Engineering B-2 コンピュータサイエンスの各分野の基礎知識とその応用能力を身に付けることができる。 Main
Urban Infrastructure and Environment G ⼟⽊⼯学における現実の問題について、⼯学・専⾨基礎知識を⽤いて理解・解決することができる。 Sub
Purpose of class
The aim of this course is to understand the concept of system calls, which are an API for the operating system, and to acquire the technical skills to use them effectively.
In order to learn the technology for constructing advanced systems, it is necessary to understand the programming that abstracts the CPU and memory of the operating system, such as files, multitasking, signals, and multithreading, which are basic software technologies. In this class, based on this understanding, we will work on implementing techniques to evaluate performance and improve it. In addition, we will develop socket programming to realise virtual networks and multitasking servers that integrate these. Through this practical training, we will aim to gain a deeper understanding of software development that achieves high-performance servers, cloud computing and middleware, by understanding how to efficiently use computer resources, such as advanced sharing of memory and CPU.
Course description
This course is a practical course in which you will learn the impact of descriptions on performance by programming using libraries and system calls, which are APIs that call the functions of the operating system (hereafter abbreviated as OS), which is the lowest layer of software, and the basic principles that support advanced and complex systems.
Those advanced and complex IT systems that support today’s information technology are supported by advanced computer systems. Computer systems are not only made up of multiple CPUs, but also various accelerators, and are becoming more advanced and complex in the form of parallel and distributed systems. The software infrastructure that supports these computer systems includes communication middleware and operating systems.
The lectures include practical exercises, and cover topics such as files that handle variable-length data, multitasking, signals, and multithreading development, as well as network socket programming that applies these techniques, and the development of multitasking servers as an integrated technology. Through these practical exercises, etc., you will understand software development that achieves advanced sharing of memory and CPUs, high-performance servers, cloud systems, etc. You will learn about the efficient use of computer resources and reliability.
Goals and objectives
  1. Understand and be able to implement the concepts of UNIX fundamentals, libraries, and system calls, which are the API of the operating system.
  2. Understand programming that abstracts the CPU and memory of the OS, such as stream processing, files, multitasking, signals, and multithreading, which are essential for advanced information processing, and be able to evaluate and improve performance.
  3. Understand network programming using socket communication and be able to design multitasking servers and clients.
  4. Design and implement multitasking servers that share variable-length data between clients in multitasking servers using socket communication.
Relationship between 'Goals and Objectives' and 'Course Outcomes'

演習レポート 最終開発課題 Total.
1. 30% 0% 30%
2. 30% 0% 30%
3. 10% 15% 25%
4. 0% 15% 15%
Total. 70% 30% -
Evaluation method and criteria
Evaluation method: 100 points for exercises and reports, with a total score of 60 points or more required to pass.
Evaluation criteria: 60 points for completing exercises and reports appropriately.
Language
Japanese(English accepted)
Class schedule

Class schedule HW assignments (Including preparation and review of the class.) Amount of Time Required
1. Introduction Overview of history, etc., setup (Ubuntu setup, starting up terminal software, using ssh, scp) 100minutes
2. Understanding of the standard C library and development environment, which are the basis for advanced programming Practical training using the distributed PDF, programming creation 150minutes
Exercise
3. What is stream processing?
Understanding of basic programming for handling variable-rate data, string manipulation, file input/output
File (high-level file)
Performance evaluation (development of analysis software)
Practical training using the distributed PDF, programming creation 100minutes
Exercise 100minutes
4. Process Control as the Basis for Multitasking
Process
- What is Multitasking?
- Process Control
Process Control as the Basis for Multitasking 100minutes
Exercise 100minutes
5. Thread control, the basis of multi-threading
Thread programming (1)
What is multi-threading?
Multi-threaded programming
Practical training using the distributed PDF, programming creation 100minutes
Exercise 100minutes
6. Thread control, the basis of multi-threading
Thread programming (2)
Avoiding deadlocks using locks and mutual exclusion
Practical training using the distributed PDF, programming creation 100minutes
Exercise 100minutes
7. Techniques for implementing asynchronous distributed programming
Time, interrupts, signals
Practical training using the distributed PDF, programming 100minutes
Exercise 100minutes
8. Basic understanding of network implementation techniques
Socket programming (1)
・Client-server communication
・Developing client programs
Practical training using the distributed PDF, programming 100minutes
Exercise 100minutes
9. Basic understanding of network implementation technology
Socket programming (2)
・Server program development
・Client-server program development
Practical training using the distributed PDF, programming 100minutes
Exercise 100minutes
10. Understanding the application of network implementation technology
Socket programming (3)
・Advanced socket programming
・Network programming (multitasking server)
Practical training using the distributed PDF, programming 100minutes
Exercise 100minutes
11. Understanding the application of network implementation technology
Discussion of ideas for multitasking server services using sockets
Design 200minutes
12. Practical Development
Multitasking server service using sockets, design and implementation
Development 200minutes
13. Practical Development
Multitasking server service using sockets, design and implementation
Development 300minutes
14. Practical Development
Multitasking server service using sockets, presentation
Presentation of the program created, submission of a report 300minutes
Total. - - 2850minutes
Feedback on exams, assignments, etc.
ways of feedback specific contents about "Other"
Feedback in/outside the class. 課題やレポートで提出した内容について,基本的には授業中,もしくは次の授業などで解説を行う.授業以外で不明なことは Slack などで対応する.
Textbooks and reference materials
1. Introduction to UNIX System Programming in C, Kiyotaka Kono, Ohmsha, 2003
2. Unix/Linux Programming: Theory and Practice, Bruce Molay, translated by Takahiro Nagao, ASCII, 2008
Reference book: ‘Magical C Programming Exercises’, Kimio Kuramitsu, Corona Shoten
Prerequisites
Introduction to Programming 1 and 2, Operating Systems
Office hours and How to contact professors for questions
  • 講義前後、あるいは電子メールで随時
Regionally-oriented
Non-regionally-oriented course
Development of social and professional independence
  • Course that cultivates an ability for utilizing knowledge
  • Course that cultivates a basic interpersonal skills
  • Course that cultivates a basic self-management skills
Active-learning course
More than one class is interactive
Course by professor with work experience
Work experience Work experience and relevance to the course content if applicable
Applicable I will convey my experience and applications in lectures from a broad perspective.
Education related SDGs:the Sustainable Development Goals
  • 9.INDUSTRY, INNOVATION AND INFRASTRUCTURE
Last modified : Sat Mar 14 14:58:24 JST 2026