دوستان عزیز جهت دستری به فایل ها و ویدئوهای آموزش مجازی می توانند به جدول زیر مراجعه کنند.
| ردیف | عنوان | نوع فایل | توضیحات |
|---|---|---|---|
| 1 | نظریه زبانها و ماشین ها | Book Video1 Video2 Video3 Video4 Video5 Video6 Video7 Video8 Video9 Video10 Video11 Video12 Video13 Video14 Video15 Video16 Video17 Video19 Video20 Video21 Video22 Video23 Video24 video25 Video26 Video27 | این درس یکی از مبانی نظری علوم کامپیوتر است و به **ساختارهای ریاضی پشت زبانها، اتوماتا و محاسبات** میپردازد. محورهای اصلی آن معمولاً شامل موارد زیر است: – آشنایی با انواع زبانها: منظم، مستقل از متن، وابسته به متن و قابل بازگشت – مطالعهی ماشینهای محاسباتی: FA ،NFA ،PDA ،Turing Machine – رابطهی بین زبانها و ماشینها و محدودیتهای هر مدل – گرامرهای رسمی و چگونگی تولید زبانها – مباحثی مثل تصمیمپذیری و مسائل حلنشدنی هدف درس این است که دانشجو بفهمد **کدام مسائل قابل حل هستند، با چه نوع ماشین یا الگوریتمی، و تا چه حد پیچیده**. این پایهی بسیاری از مباحث پیشرفتهتر علوم کامپیوتر است. |
| 2 | اصول طراحی کامپایلر | Video1 Video2-1 Video2-2 Video3 Video4 Video5 Video6-1 Video6-2 Video7-1 Video7-2 Video8-1 Video8-2 Video8-3 Video9-1 Video9-2 Video10-1 Video10-2 Video10-3 Video11-1 Video11-2 Video11-3 Video12 Video13 Video14 Video15 Video16 Video17 Video18 Video19 Video20 Video21 Video22 Video23 Video24 Video25 Video26 Video27 | کامپایلر برنامهای است که کد منبع (Source Code) نوشته شده به یک زبان برنامهنویسی سطح بالا (مانند C++, Java, Python) را دریافت کرده و آن را به کد معادل در یک زبان سطح پایینتر (معمولاً زبان ماشین یا اسمبلی) ترجمه میکند تا پردازنده بتواند آن را اجرا کند. درس اصول طراحی کامپایلر به بررسی مراحل و تکنیکهای این فرایند ترجمه میپردازد. مراحل اصلی یک کامپایلر (معمولی): تحلیل لغوی (Lexical Analysis / Scanning): کد منبع به توکنها (Tokens) شکسته میشود. توکنها کوچکترین واحدهای معنادار در زبان هستند (مانند کلمات کلیدی، شناسهها، عملگرها، اعداد). این مرحله معمولاً با استفاده از ماشینهای حالت متناهی (Finite Automata) پیادهسازی میشود. تحلیل نحوی (Syntax Analysis / Parsing): ساختار کلی کد منبع بر اساس قواعد گرامری زبان بررسی میشود. این مرحله اغلب منجر به ساخت یک درخت نحو انتزاعی (Abstract Syntax Tree – AST) میشود که ساختار منطقی برنامه را نشان میدهد. روشهایی مانند تحلیل بالا به پایین (Top-Down Parsing) و پایین به بالا (Bottom-Up Parsing) در این بخش استفاده میشوند. تحلیل معنایی (Semantic Analysis): معنای کد بررسی میشود تا اطمینان حاصل شود که از نظر منطقی صحیح است (مثلاً مطابقت انواع داده در عملیات، تعریف شدن متغیرها قبل از استفاده). اطلاعات لازم برای مراحل بعدی جمعآوری میشود. تولید کد میانی (Intermediate Code Generation): یک نمایش میانی و مستقل از زبان ماشین از برنامه تولید میشود (مانند کد سهآدرسی Three-Address Code). این کد سادهتر از کد اصلی و راحتتر برای بهینهسازی است. بهینهسازی کد (Code Optimization): کد میانی یا کد نهایی برای افزایش سرعت اجرا، کاهش مصرف حافظه، یا کاهش مصرف انرژی بهینهسازی میشود. |
| 3 | برنامه سازی پیشرفته(زبان سی پلاس پلاس) | Video1 Video2 Video3 Video4 Video5 Video6 Video7 Video8 Video9 Video10 Video11 Video12 Video13 Video14 Video15 Video15-2 Video16 Video17 | معرفی مختصر درس برنامهسازی پیشرفته (C++) هدف اصلی این درس، فراتر رفتن از مفاهیم پایهای برنامهنویسی و آشنایی دانشجویان با قابلیتهای قدرتمند و پیچیدهتر زبان C++ است. این زبان به دلیل کارایی بالا، کنترل سطح پایین بر حافظه و سختافزار، و همچنین پشتیبانی از پارادایمهای مختلف برنامهنویسی (مانند شیءگرایی، جنریک و رویهای) بسیار محبوب است. سرفصلها و مفاهیم کلیدی: مروری بر مفاهیم شیءگرایی (Object-Oriented Programming – OOP): کلاسها (Classes) و اشیاء (Objects). کپسولهسازی (Encapsulation)، وراثت (Inheritance)، و چندریختی (Polymorphism). مدیریت حافظه پیشرفته: اشارهگرها (Pointers) و اشارهگرهای هوشمند (Smart Pointers) برای مدیریت ایمنتر حافظه. تخصیص و آزادسازی حافظه پویا (Dynamic Memory Allocation) با new و delete. قالبها (Templates): قالبهای تابع (Function Templates): نوشتن توابعی که میتوانند با انواع دادههای مختلف کار کنند. قالبهای کلاس (Class Templates): نوشتن کلاسهایی که میتوانند با انواع دادههای مختلف کار کنند (مانند std::vector یا std::map در کتابخانه استاندارد C++). اضربارگذاری عملگرها (Operator Overloading): تعریف مجدد رفتار عملگرهای استاندارد (مانند +، -، ==) برای انواع داده سفارشی. کلاسهای انتزاعی (Abstract Classes) و رابطهای مجازی (Pure Virtual Functions): ایجاد ساختارهای سلسله مراتبی قویتر برای چندریختی. استثناها (Exceptions Handling): مدیریت خطاها به صورت ساختاریافته با استفاده از try, catch, throw. کتابخانه استاندارد C++ (Standard Template Library – STL): آشنایی با کانتینرها (Containers) مانند vector, list, map, set. آشنایی با الگوریتمها (Algorithms) مانند sort, find, copy. آشنایی با تکرارکنندهها (Iterators). برنامهنویسی با جریانها (Streams): ورودی/خروجی با استفاده از cin, cout, fstream و… اهمیت درس: تسلط بر C++ و مفاهیم برنامهسازی پیشرفته، دریچهای به سوی توسعه نرمافزارهای سیستمی، بازیسازی، پردازش گرافیکی، سیستمهای نهفته (Embedded Systems)، و کاربردهایی که نیاز به عملکرد بالا دارند، باز میکند. بسیاری از کتابخانهها و فریمورکهای قدرتمند در این زبان نوشته شدهاند. |
| 4 | طراحی زبان های برنامه سازی | Video1-1 Video1-2 Video2-1 Video2-2 Video3-1 Video3-2 Video4 Video5 Video6 Video7 Video8 Video9 Video10 Video11 Video12 Video13 Video14 Video15 Video16 ویدئوی رفع اشکال | این درس معمولاً در مقطع کارشناسی رشتهی کامپیوتر ارائه میشود و هدفش آشنا کردن دانشجو با **مفاهیم بنیادی طراحی، ساخت و اجرای زبانهای برنامهسازی** است. محتوای درس معمولاً شامل چند بخش کلیدی است: – بررسی ساختار زبانها (نحوی، معنایی، انواع داده، مدلهای اجرا) – آشنایی با روشهای طراحی نحو (گرامرها، BNF، درخت نحو) – مباحث تجزیه (Parsing) در دو سطح *Lexical Analysis* و *Syntax Analysis* – بررسی مدلهای ارزیابی عبارات و مدیریت حافظه – اصول پیادهسازی مفسرها و کامپایلرهای ساده – آشنایی با ویژگیهای مختلف زبانها (تابعی، شیگرا، منطقی و …) خروجی این درس معمولاً این است که دانشجو درک عمیقتری از اینکه «زبانهای برنامهنویسی چگونه کار میکنند» پیدا کند و بتواند یک مفسر یا زبان ساده را طراحی و پیادهسازی کند. |
| 5 | سیستم عامل | Video1 Video2 Video3 Video4 Video5 Video6 Video7-1 Video7-2 Video8 Video9 Video10 Video11 | سیستم عامل نرمافزاری حیاتی است که به عنوان واسط (Interface) بین سختافزار کامپیوتر (CPU، حافظه، دیسکها و دستگاههای ورودی/خروجی) و کاربر (یا برنامههای کاربردی) عمل میکند. هدف اصلی آن مدیریت مؤثر منابع کامپیوتر و ارائه یک بستر (پلتفرم) مناسب و انتزاعی برای اجرای برنامهها است. سرفصلها و مفاهیم کلیدی: مدیریت پردازنده (Process Management): فرایند (Process): مفهوم اجرای یک برنامه. نخ (Thread): واحدهای کوچکتر اجرای درون یک فرایند. زمانبندی CPU (CPU Scheduling): الگوریتمهایی (مانند FCFS، SJF، اولویت، گردشی یا Round Robin) که تعیین میکنند کدام فرایند در هر لحظه از زمان CPU را استفاده کند تا کارایی سیستم به حداکثر برسد. همگامسازی و بنبست (Synchronization & Deadlocks): روشهایی برای جلوگیری از تداخل بین فرایندهایی که منابع مشترک را استفاده میکنند (مثل سمافورها و مونیتورها) و نحوه تشخیص و رفع بنبستها. مدیریت حافظه (Memory Management): چگونگی تخصیص حافظه اصلی (RAM) به فرایندها. صفحهبندی (Paging) و بخشبندی (Segmentation): روشهایی برای مدیریت فضای آدرس منطقی و فیزیکی. حافظه مجازی (Virtual Memory): تکنیکی برای اجرای برنامههایی که بزرگتر از حافظه فیزیکی موجود هستند، از طریق انتقال دادهها بین RAM و دیسک (Page Fault). مدیریت فایل (File System Management): سازماندهی، ذخیرهسازی، بازیابی و حفاظت از دادهها روی حافظههای ثانویه (مانند هارد دیسک). ساختارهای دایرکتوری و تخصیص فضا روی دیسک. مدیریت ورودی/خروجی (I/O Management): نحوه تعامل سیستم عامل با دستگاههای جانبی (مثل کیبورد، پرینتر و شبکه). اهمیت درس: این درس پایهای برای دروسی مانند شبکههای کامپیوتری، سیستمهای توزیعشده، و برنامهنویسی سیستمی محسوب میشود و درک عمیق آن برای تبدیل شدن به یک مهندس نرمافزار یا سختافزار مسلط ضروری است. |
| 6 | معماری کامپیوتر | Video1 Video2 Video3 Video4 Video5 Video6 Video7-1 Video7-2 Video8 Video9 Video10 | این واحد به بررسی نحوهٔ طراحی و سازماندهی داخلی یک سیستم کامپیوتری میپردازد؛ یعنی از لحظهای که دستور اجرا میشود تا سطح سختافزار چه اتفاقی میافتد. محورهای اصلی آن معمولاً شامل موارد زیر است: ساختار واحد پردازنده (CPU)، اجزای آن مانند ALU، ثبتکنندهها و واحد کنترل انواع معماریها مانند RISC و CISC نحوهٔ اجرای دستورات و خط لولهسازی (Pipeline) حافظهها: RAM، Cache، حافظهٔ مجازی نحوهٔ آدرسدهی و مجموعهدستورات (Instruction Set) ورودی/خروجی و باسها مفاهیم کارایی پردازنده و بهینهسازیها هدف درس این است که دانشجو بفهمد رایانه در سطح پایین چگونه کار میکند و بتواند عملکرد سیستمها را تحلیل یا بهبود دهد. |
| 7 | مدارمنطقی | Video1 Video2 Video3 Video4 Video5 Video6 Video7 Video8 Video9 Video10 Video11 Video12 Video13 Video14 Video15 Video16 جلسه رفع اشکال | درس «مدار منطقی» یکی از پایهایترین واحدهای رشتهٔ کامپیوتر است و مفاهیم بنیادینی را آموزش میدهد که زیرساخت طراحی سختافزار و حتی بخشهایی از معماری کامپیوتر را تشکیل میدهند. معرفی مختصر: در این درس یاد میگیری که چگونه سیستمهای دیجیتال با استفاده از 0 و 1 ساخته و تحلیل میشوند. مباحث اصلی شامل جبر بول، گیتهای منطقی، سادهسازی مدارها، فلیپفلاپها، ثباتها، شمارندهها و مدارهای ترکیبی و ترتیبی است. هدف درس این است که بتوانی مدارهایی طراحی کنی که عملیات منطقی و محاسباتی انجام میدهند؛ چیزی که در نهایت پایهٔ پردازندهها، حافظهها و سیستمهای دیجیتال را تشکیل میدهد. این درس هم تئوری دارد هم حلمسئله و طراحی مدار. |
بهترین استاد تاریخ بشریت