# Module 1: Fundamentals

## Overview

In this module, you'll learn the core concepts of systems thinking and how they apply to software architecture modeling with Sruja.

## Learning Objectives

By the end of this module, you'll be able to:

- Define what systems thinking is and why it matters for software architecture
- Identify the five core systems thinking concepts
- Understand how Sruja supports systems thinking principles
- Recognize when to use systems thinking in your architecture work

## Lessons

- [Lesson 1: Introduction to Systems Thinking](lesson-1.md) - What is systems thinking and why it matters for architecture (2 min)
- [Lesson 2: The Iceberg Model](lesson-2.md) - Understanding events, patterns, structures, and mental models (2 min)
- [Lesson 3: Systems in Software Architecture](lesson-3.md) - Every system is a system of systems (2 min)
- [Lesson 4: Parts & Relationships](lesson-4.md) - Model components and their interactions (2 min)
- [Lesson 5: Boundaries](lesson-5.md) - What's inside vs. outside your system (2 min)
- [Lesson 6: Flows](lesson-6.md) - Visualize data and information movement (2 min)
- [Lesson 7: Feedback Loops](lesson-7.md) - How systems respond, adapt, and self-regulate (2 min)
- [Lesson 8: Context](lesson-8.md) - Capture environment, dependencies, and constraints (2 min)

## Prerequisites

- Basic understanding of software architecture concepts
- Familiarity with Sruja DSL basics

## Time Investment

Approximately 20-25 minutes to complete all lessons (8 lessons × 2-3 minutes each, including quizzes).

## What's Next

After completing this module, you'll dive into specific concepts starting with [Module 2: Parts and Relationships](../module-2-parts-relationships/module-overview.md).
