تکنولوژی کامپیوتر

توضیحات درس

درس سه واحدی «تکنولوژی کامپیوتر» با کد درس 22844، از دروس اختیاری سبد سیستم‌های دانشکده علوم ریاضی برای رشته‌ی علوم کامپیوتر است.
عموما در این درس، با برخی از تکنولوژی‌های تولید نرم‌افزار آشنا می‌شویم.

در ارائه‌ی پیش رو، ابتدا با مفاهیم توسعه‌ی نرم‌افزار‌های سمت وب آشنا خواهیم شد.
پس از آن، به طراحی نرم‌افزار‌ها در مقیاس بالا می‌پردازیم. تمرکز اصلی ما با اپلیکیشن‌های داده محور خواهد بود که در این مسیر، مفاهیمی از داده‌های حجیم، سیستم‌های توزیع‌شده و طراحی رویداد محور خواهیم خواند.
در پایان، تعدادی نمونه از طراحی اپلیکیشن‌های بزرگ را بررسی خواهیم کرد.

پیش‌نیاز این درس، تسلط زیاد به برنامه‌نویسی و آشنایی با مفاهیم سیستم عامل و مفاهیم اولیه‌ی شبکه است.
اگر قبلا یک وب‌سایت شخصی ساخته باشید و به مباحث پایگاه‌های داده و شبکه هم مسلط باشید، این مباحث در طول درس به کمک شما خواهد آمد. اما سعی ما این است که این موارد را در طول درس پوشش دهیم.

ریز مواد درس

ریز مواد هنوز نهایی نشده است. یک پیش‌نویس کاملاً ابتدایی، در زیر قرار می‌دهم:
  • Part 1: Fundamentals of Web Programming
    • Introduction to Web Programming
    • Web APIs and Data Exchange
    • Front-End Basics and Backend Integration
    • Databases 101
    • Containerization with Docker
  • Part 2: Building Data-Intensive Applications
    • Scalability Challenges
    • Caching for Performance
    • Foundations from “Data-Intensive Applications”
    • Batch vs. Stream Processing
    • Practical Data-Intensive Patterns
  • Part 3: Distributed Systems Concepts
    • Core Distributed Systems Basics
    • Replication & Partitioning
    • Consensus & Coordination
  • Part 4: Big Data Ecosystem
    • Event-Driven Architecture with Kafka
    • Hadoop Ecosystem
    • SSTable & Cassandra
    • Spanner & Global Databases
    • Modern Big Data Tools
  • Part 5: Real World Examples

بارم‌بندی

این درس به طور همزمان مباحث تئوری و عملی پیاده‌سازی اپلیکیشن‌های بزرگ را در بر خواهد داشت. در نتیجه ارزیابی آن هم شامل آزمون‌ها/تمارین تئوری و هم پروژه‌های پیاده‌سازی خواهد بود.