ایجاد یک پردازنده با استفاده از ترانزیستور و گیت های منطقی
هدف ما از ایجاد این دوره، ساخت یک کامپیوتر از ابتدا است. این بخش را با طرح چند سؤال آغاز میکنیم: چرا با استفاده از یک کامپیوتر میتوانیم عکس و فیلم ببینیم، بازی کنیم و ... بیشتر
محمد قریشوندی
بهروزرسانی: ۱۴۰۵/۰۲/۱۹
آنچه در این دوره میآموزید
منظور از اطلاعات و داده چیست؟ (what is information in general)
کامپیوتر در عمیق ترین لایه چگونه عمل می کند؟ (understanding how computers work at the lowest level)
چرا ترانزیستورها مهمترین قسمت وسایل دیجیتال هستند؟ (why transistors are the main part of every digital device)
مفاهیم بیت و بایت (concept of bits and bytes)
سیستمهای عدد دهی متفاوت (different numbering systems)
ایجاد رجیسترهای 8-بیتی با استفاده از گیت های منطقی (creating 8-bit registers using logic gates)
محتوای دوره
درباره دوره
هدف ما از ایجاد این دوره، ساخت یک کامپیوتر از ابتدا است. این بخش را با طرح چند سؤال آغاز میکنیم:
چرا با استفاده از یک کامپیوتر میتوانیم عکس و فیلم ببینیم، بازی کنیم و بازی طراحی کنیم، دادههای مختلف را تحلیل و آنالیز کنیم، قیمت سهام بورس را پیشبینی کنیم، با یکدیگر ارتباط متنی، صوتی یا تصویری برقرار کنیم و بهطور کلی، چرا توانایی برنامهنویسی کامپیوتر را داریم؟
برای پاسخ به این سؤالها ابتدا باید بفهمیم «کامپیوتر چیست؟»
سؤالی که پاسخ آن میتواند در سطوح مختلفی داده شود. هرچه عمق بیشتری برای پاسخ به این سؤال در نظر بگیریم و با جزئیات بیشتری به آن پاسخ دهیم، درک ما از کامپیوتر بیشتر میشود. اما بهترین روش برای یادگیری سختافزار کامپیوتر، ساخت یک کامپیوتر است.
بهطور کلی، یک کامپیوتر را میتوان به ۳ بخش تقسیم کرد:
پردازنده
حافظه
وسایل ورودی و خروجی
پردازنده بهعنوان مغز کامپیوتر وظیفه «یادگیری» و «اجرای» دستورات را دارد. یعنی در فرایند ساخت پردازنده، ابتدا باید یک سری دستورات را به پردازنده یاد بدهیم که به آن Instruction Set Architecture یا ISA میگوییم. سپس برنامهنویس، برنامه خود را در قالب این مجموعه دستوراتی که به پردازنده یاد دادهایم، مینویسد و وارد حافظه میکند. پس از آن، پردازنده از طریق سیمهایی که بهعنوان رابط بین پردازنده و حافظه طراحی و تعبیه کردهایم، این دستورات را یکییکی میآورد (fetch)، متوجه میشود که چگونه باید آنها را اجرا کند (decode) و سپس آنها را اجرا میکند (execute).
دقت کنید که تمامی این مراحل را پیادهسازی میکنیم. یعنی در حال حاضر چیزی به نام پردازنده نداریم، بلکه ابتدا باید آن را ایجاد کنیم.
ما سعی کردهایم این دوره را بدون نیاز به هیچ پیشنیازی طراحی کنیم و همهچیز از ابتدا انجام خواهد شد. پیش از ایجاد هر چیز، ابتدا «احساس نیاز» را مطرح میکنیم؛ اینکه «چرا» به چنین المانی نیاز داریم و سپس آن را طراحی و ایجاد خواهیم کرد.
اولویت ما در این دوره، طرح و پاسخ به سؤالهای «چرا» است، نه «چطور». دقت کنید که عمده تفاوت یک برنامهنویس حرفهای با دیگری، دانش سختافزاری او است و منظور از دانش سختافزار، آگاهی از جریان اطلاعات و دستورات است؛ اینکه وقتی یک خط کد، حتی در زبانهای سطح بالا، مینویسیم، کامپیوتر چگونه آن را اجرا میکند. ممکن است یک خط کد در زبانهای سطح بالا حاصل اجرای صدها و حتی هزاران دستور سطح پایین باشد که ما آنها را به پردازنده یاد دادهایم. یعنی این دوره فقط مختص افرادی نیست که میخواهند وارد حوزه سختافزار شوند، بلکه برای همه برنامهنویسانی است که میخواهند بدانند در «پشت پرده» چه میگذرد.
اطلاعات بیشتر
گواهینامه

پس از گذراندن محتوای دوره به صورت آنلاین (بدون دانلود) در سایت مکتبخونه، در صورتی که حد نصاب قبولی در دوره را کسب و تمرین ها و پروژه های الزامی را ارسال کنید، گواهینامه رسمی پایان دوره توسط مکتبخونه به اسم شما صادر شده و در اختیار شما قرار میگیرد.
قابل اشتراکگذاری در
درباره استاد
محمد قریشوندی دارای مدرک کارشناسی ارشد الکترونیک با بیش از ۱۰ سال سابقه تدریس در پلتفرم یودمی (udemy) در بخشهای مختلف کامپیوتر شامل:
reverse engineering and exploit development
network hacking
web development
assembly and c programming
و داشتن بیش از ۱۰ ویدیو کورس و بالغ بر ۲۰۰۰۰ دانشجو است.
اطلاعات بیشتر
