Developing Logical Thinking Skills in the DX Era [Advanced]
C言語でモデル設計と問題解決力を鍛える

はじめに(Introduction)
あなたはすでに、プログラムの基本構造である「順次・分岐・反復(sequential, branching, looping)」を理解し、コードを書く力を身につけました。しかし、「書ける」ことと「つくれる」ことは、まったく別の力です。
この【第2部】応用編では、現実のしくみをモデル化し、状態の変化や条件に応じた動きをロジックとして設計・再現する力を育てます。たとえば、券売機や自動販売機といった身近なシステムも、実は「状態遷移(state transition)」「条件分岐(conditional branching)」「制御の流れ(control flow)」といった設計要素の組み合わせで動いています。
本編では、そうしたしくみを、以下のような視覚的な表現で捉え、C言語(C Language)で設計・実装するスキルを高めていきます。
• 状態遷移図(state transition diagram)
• フローチャート(flowchart)
• 擬似コード(pseudocode)
また、関数(function)を使ってプログラムを部品化し、再利用性(reusability)や保守性(maintainability)の高いコードを書く力も養います。これは、次のステップである演習編・実践編へとつながる、重要な基礎です。 この応用編を通じて、あなたは「コードを読む・書く人」から、「しくみを考え、設計し、動かせる人」へと進化していくでしょう。
一歩ずつ、自分の力でロジックを「つくる」楽しさと誇りを感じながら、学びを深めてください。

・標準学習コース学習時間1日:6時間×4日コース:24時間
目次(Table of Contents)
第0章 はじめに(Introduction)
第1章 モデル化とは何か(What Is Modeling?)
1.1 現実のしくみをプログラムで再現する(Reproducing Real-World Systems in Programs)
1.2 状態とイベントの考え方(Concepts of States and Events)

第2章 状態遷移を使った自販機モデルの設計
(Modeling the Vending Machine with State Transitions)
2.1 状態遷移図の基本(Basics of State Transition Diagrams)
2.2 自販機モデルの状態を設計する(Designing the Vending Machine States)
2.3 状態に応じた動作をフローチャートで表す(Visualizing Behavior with Flowcharts)

第3章 擬似コードからC言語へ(From Pseudocode to C Language)
3.1 擬似コード(pseudocode)の書き方(How to Write Pseudocode)
3.2 C言語へ段階的に変換する(Translating into C Step by Step)
3.3 部分コードと関数の設計(Designing Functions and Modules)

第4章 関数を使ったプログラムの部品化
(Modularizing Programs Using Functions)
4.1 再利用性と保守性とは(Reusability and Maintainability)
4.2 自販機モデルの関数化(Functionization of the Vending Machine Model)
4.3 モジュール設計とテスト(Module Design and Testing)

第5章 【発展演習】券売機モデルの設計
(Advanced Practice: Designing a Ticket Machine Model)
5.1 自販機との違いを考える(Comparing with Vending Machines)
5.2 券売機の状態設計とフローチャート(State and Flowchart Design for Ticket Machines)
5.3 入金・選択・発券・返金の処理設計(Designing the Process Flow)

第6章 【比較演習】2つのモデルを比較して改善を提案
(Comparative Practice: Proposing Improvements for Two Models)
6.1 状態設計と関数構造の比較(Comparing State Designs and Function Structures)
6.2 共通部品と独自機能の分離(Separating Common and Unique Components)
6.3 より良い設計を考える(Exploring Better Design Solutions)

第7章 ミニテスト&レベルチェック②(Mini-Test & Level Check ②)
7.1 ロジックの正確性をチェックする(Checking Logic Accuracy)
7.2 モジュール設計力を確認する(Assessing Modular Design Ability)

第8章 まとめ・次のステップへ(Summary & Next Steps)
8.1 GUIアプリ開発への接続(Towards GUI Application Development)
8.2 しくみを「つくる力」を実践へ(Applying the Power to Design Systems)

Introduction
You have already acquired an understanding of the fundamental structures of programming—sequential, branching, and looping—and developed the ability to write code. However, there is a fundamental distinction between the ability to write code and the capacity to design and build systems.
This Part 2: Advanced is designed to cultivate your ability to model real-world systems, and to design and implement logic that appropriately responds to changes in state and conditions.
For instance, everyday systems such as ticket vending machines and automated dispensers operate based on a combination of design elements including state transitions, conditional branching, and control flow. Understanding these elements is essential to replicating such mechanisms in code.
In this volume, you will analyze these mechanisms through the use of the following visual representations and strengthen your skills in designing and implementing them with C Language:
• State Transition Diagrams
• Flowcharts
• Pseudocode
Moreover, you will learn to employ functions to modularize your programs, thereby enhancing their reusability and maintainability. This knowledge forms a critical foundation for the subsequent stages of this course: the Exercise Part and the Practical Part.
Through this Advanced Part, you will transition from being someone who merely reads and writes code to someone capable of conceptualizing, designing, and realizing complex systems.
I encourage you to deepen your learning step by step, taking pride and satisfaction in the process of constructing logic with your own abilities.

〒569-0088
大阪府高槻市天王町4-1 広本ビル1階
株式会社ワイドブック
代表取締役 廣本寿夫
072-691-6667
080-5036-1468(携帯電話)
say@widebook.net
https://www.widebook.net/