Я викладаю єдиний курс комп’ютерної архітектури у коледжі гуманітарних мистецтв. Курс необхідний для основних та неповнолітніх з інформатики. У нас немає комп’ютерної інженерії, електротехніки, інших апаратних курсів і т. Д. Моя основна мета курсу - це студенти зрозуміти до кінця до рівня воріт, як працюють комп'ютери, і я вважаю, що вони найкраще навчаються за допомогою апаратної лабораторії та не лише через підручник ( Комп'ютерна організація та дизайнГеннесі та Паттерсон). Моя вторинна мета - захоплювати їх комп'ютерною архітектурою та посилювати їхнє захоплення інформатикою. Підготувати їх безпосередньо для промисловості не є метою, хоча мотивувати їх вивчати більше комп’ютерної архітектури. Студенти, як правило, не мали досвіду будь-чого будувати або брати курс лабораторії на рівні коледжу. Зазвичай 10-15 студентів проходять курс за семестр.
Я викладаю цей курс з 1998 року таким же чином, як мене навчали комп’ютерній архітектурі та цифровій електроніці ще в кінці 1980-х років в MIT: використовуючи мікросхеми DIP TTL на електричних дошках. При першому завданні апаратної лабораторії студенти будують повний суматор. Приблизно на півдорозі семестру вони починають будувати простий комп'ютер з 8-бітовим набором інструкцій. Щоб зменшити проводку, я надаю їм друковану плату з деякою частиною електроніки (два D шльопальники, два 4-розрядні АЛУ LS 181, з'єднані між собою, щоб діяти як 8-бітний АЛУ, і три-державний буфер). У першій з цих лабораторій вони виводять (дуже прості) керуючі сигнали для двох форматів інструкцій і будують схему, вводячи вказівки на вимикачах та читаючи результати з вогнів. На другій з лабораторій вони додають лічильник програм (2 LS163) та EPROM (якиймоє первісне питання стосувалося, перш ніж переходити до того, як я повинен викладати архітектуру інтро). У підсумковій лабораторії вони додають умовну гілку інструкції. У той час як студенти витрачають досить багато часу на проводку та налагодження, я відчуваю, що там відбувається велика частина навчання, і студенти залишають справжнє відчуття успіху.
Люди на цьому форумі говорили мені, що я повинен перейти на FPGA, з якими я раніше не працював. Я інженер програмного забезпечення, а не інженер-комп’ютер, і зараз деякий час поза школою, але я здатний вчитися. Я не зміг би отримати багато грошей ( можливо, кілька тисяч доларів) за заміну наших діючих цифрових тренерів. У нас є єдиний логічний аналізатор.
З огляду на мої цілі та обмеження, чи рекомендуєте ви, що EE дотримуватись свого поточного підходу до переходу на такий, який базується на FPGA? Якщо останнє, чи можете ви дати мені будь-які вказівки на матеріали, з якими я б навчався?
Як вимагається, ось посилання на навчальні програми та завдання лабораторії .
Доповнення: Так, це теж курс цифрової логіки. Коли я потрапив до свого коледжу, від студентів вимагали взяти по одному семестру з кожної архітектури комп’ютера та цифрової логіки, і я поєднав їх в один семестр. Звичайно, це твердження про минуле, а не про майбутнє.