Дизајнирање на компјутер, од нула!

Започни со градење на едноставни логички кола и комбинирај ги во посложени чипови. Резултатот е 16-битен процесор со 32KB RAM и 28 инструкции!

Од 14. октомври 2014 год. до 18. ноември 2014 год.

Секој вторник од 19.00—21.00 ч. во скопскиот хаклаб КИКА.

Курсот вклучува 12 часа (6x2) и чини 3,000 денари.

За курсот

„Дизајнирање на компјутер, од нула!“ е курс чија цел е студентите да ги запознае со суштината на компјутерските системи: едноставните фундаментални принципи на кои се базираат сите компјутери и начинот на кој човекот успеал да ги примени и апстрахира овие принципи, за на крајот да го добие компјутерот кој го имаме денес.

Во курсот, за основна градбена единка се зема NAND логичката порта и од неа се градат другите логички порти, аритметичко-логичка единица, контролни чипови - за на крајот да се добие функционален процесор, способен да извршува код напишан во assembly. Иако дизајнот на процесорот е поедноставен, концептите на кои се базира се истите на кои се базираат и модерните процесори.

Курсот е базиран на популарниот Nand2Tetris курс и ги опфаќа првите 5, од вкупно 12 глави од книгата. Секоја глава е "self-contained" и содржи вежби кои можат да се изработуваат во изолација. Сепак, бидејќи концептите од секоја глава се темелат на концептите што се учеле во претходните глави, а вежбите користат компоненти кои самите ги имаме изградено, најдобро е книгата да се поминува од почетокот накај крајот, како и што е организиран курсот.

Целна група на овој курс се студенти од техничките факултети, но и средношколци кои имаат намера да продолжуваат во таа насока. Во академски контекст, овој курс го земаат студенти на почетокот и на крајот на студиите. Тие што го земаат на почеток, добиваат слика за материјалот што ги очекува, додека на тие што го земаат на крај им нуди сумирање на сѐ што научиле до тогаш.

Цена

Курсот вклучува 12 часа (6 пати по 2 часа) и ќе чини 3,000 ден. Дел од парите ќе бидат наменети за трошоци поврзани со курсот, а останатиот дел ќе завршат на сметката на Хаклаб, за плаќање струја и кирија.

КИКА нема спонзор и се одржува во живот главно од ентузијазам, членства, курсеви и донации.

Екипата

Андреј Трајчевски

Андреј Трајчевски - ментор

Андреј е повеќегодишен член на хаклабот КИКА. Професионално работи како фриленс програмер, претежно Node.js и претежно backend. Кога не работи за пари, програмира за душа. Кога сака да научи повеќе за компјутерите, организира курсеви во Хаклаб. Чита и одговара на мејлови: andrejtrajchevski@gmail.com

Гоце Митевски

Гоце Митевски - веб-дизајн

Гоце е долгогодишен член на заедницата на Слободен Софтвер, дизајнер, како и редовен посетител на КИКА. Откако неговото видео стана дел од секоја vanilla инсталација на Ubuntu, неговиот inbox е преполн со мејлови од типот „како да си го поправам Линуксот“. Работи како веб дизајнер и е одговорен за изгледот на сајтов.

Александар Лазаров

Александар Лазаров - електроника

Алекс е човекот кој ја изгради славната LED коцка во Хаклаб. Ентузијаст за електроника и лемење, одговорен е за сѐ што излегло од Хаклаб а не е код, како и за собата преполна со ѓубришта од електроника. Негово дело е и големиот protoboard кој ќе го користиме на курсот за hands-on учење на логички кола.

Оригиналниот курс

Пријава

Како да уплатам?

За курсот ќе можете да уплатите на „нултиот“, воведен час, на 14-ти октомври во хаклабот КИКА. Алтернативно, можете директно да уплатите на сметката, подолу.

Примач:
Слободен софтвер Македонија
ул. Злате Михајловски бр. 26, 1000 Скопје
Сметка:
210057088340110
Банка:
НЛБ Тутунска Скопје
Приходна шифра:
562 (Уплати за донации)
Цел на дознака:
уплата за курс

Можете да ги користите обрасците ПП10 (уплатница) и ПП30 (налог за пренос).

Програма

Week Дата Опис
0 14 октомври интро час, last chance за пријавување и плаќање, на кратко за курсот, tools, hdl
1 21 октомври булова алгебра: составување на елементарни порти од nand, имплементација во хдл
2 28 октомври комбинациона логика: имплементирање на бинарни собирачи од логички порти и, конечно, ALU
3 04 ноември секвенцијална логика: имплементирање на меморија, flip-flops, регистри и РАМ
4 11 ноември запознавање со инструкцискиот код на процесорот, бинарно и во assembly; пишување на low-level програми и симулирање на cpu-то
5 18 ноември интегрирање на чиповите во процесор кој може да го извршува assembly кодот од week 4

Хаклаб КИКА

Хаклабот КИКА е отворен простор (под покрив) каде што се собираат ентузијасти за да пишуваат код, за да лемат или за да дискутираат на разни теми, како слободата на софтверот или таа на медиумите. Хаклабот е дом на програмерите што програмираат и после работа. Хаклабот е местото во кое луѓето претежно имаат Thinkpad со инсталиран Linux.

Луѓе во хаклаб КИКА

Официјално, КИКА постои од Октомври, 2011. Од тогаш па до сега, во континуитет, редовно се организираат настани поврзани со Linux и слободен софтвер (GNU/Linux прва помош), програмирање (Програмски јазици) и презентации на општи теми (Сподели знаење). Понекогаш, на проекторот во Хаклаб гледаме филмови, а настанот го нарекуваме „Сподели кино“.

Покрај редовните настани, во Хаклаб се одржуваат и настани како „Gnome Women Outreach“ и „Google Summer of Code“, во кои студенти активно земаат учество и работат на развивање на слободен софтвер. Исто така, пред проекторот често се собираат и членовите на Ruby и Drupal заедниците.

Хаклабот нема спонзор, во живот го одржуваат донациите на неговите членови, кои понекогаш организираат курсеви како овој. Дел од парите ги зема организаторот, а дел одат за КИКА. Додатно, придонесуваат и луѓе кои се заинтересирани просторот да постои, но не се во можност да не посетуваат. Ако си еден од нив, тука има информации како да донираш.

Редовни настани (есен, 2014)

  • Понеделник, 19ч. - GNU/Linux прва помош: ако имаш Linux и имаш некаков проблем што не можеш да го решиш, понеделник е денот кога треба да дојдеш
  • Среда, 19ч. - Собир на Drupal заедницата: и се што е поврзано со овој CMS
  • Четврток, 19ч. - Програмски јазици: веројатно најпопуларниот настан во Хаклаб; дискутираме функционално програмирање, опскурни јазици, пишуваме демо апликации и секогаш остануваме до касно
  • Сабота, 21ч. - Сподели знаење: целодневно, без агенда

Каде е КИКА?

Хаклабот КИКА се наоѓа на ул. „Васил Стефановски“ бр.8/1, во центарот на Скопје близу до поликлиниката Идадија.

Материјали

книга nand2tetris

The Elements of Computing Systems: Building a Modern Computer from First Principles

„In the early days of computer science, the interactions of hardware, software, compilers, and operating system were simple enough to allow students to see an overall picture of how computers worked. With the increasing complexity of computer technology and the resulting specialization of knowledge, such clarity is often lost. Unlike other texts that cover only one aspect of the field, The Elements of Computing Systems gives students an integrated and rigorous picture of applied computer science, as its comes to play in the construction of a simple yet powerful computer system.Indeed, the best way to understand how computers work is to build one from scratch, and this textbook leads students through twelve chapters and projects that gradually build a basic hardware platform and a modern software hierarchy from the ground up. In the process, the students gain hands-on knowledge of hardware architecture, operating systems, programming languages, compilers, data structures, algorithms, and software engineering. Using this constructive approach, the book exposes a significant body of computer science knowledge and demonstrates how theoretical and applied techniques taught in other courses fit into the overall picture.Designed to support one- or two-semester courses, the book is based on an abstraction-implementation paradigm; each chapter presents a key hardware or software abstraction, a proposed implementation that makes it concrete, and an actual project. The emerging computer system can be built by following the chapters, although this is only one option, since the projects are self-contained and can be done or skipped in any order. All the computer science knowledge necessary for completing the projects is embedded in the book, the only pre-requisite being a programming experience.The book's web site provides all tools and materials necessary to build all the hardware and software systems described in the text, including two hundred test programs for the twelve projects. The projects and systems can be modified to meet various teaching needs, and all the supplied software is open-source.“

HW simulator test script

Nand2Tetris Software Suite

The Nand2Tetris Software Suite contains all the tools and files necessary to complete all the projects described in this site and in the book.

Преземи Nand2Tetris Software Suite

HW simulator Xor

Hardware Simulator Tutorial

Hardware Simulator simulates and tests logic gates and chips implemented in the HDL (Hardware Description Language) described in the book. Used in hardware construction projects.

Преземи PDF

CPU Emulator

CPU Emulator Tutorial

CPU Emulator emulates the operation of the Hack computer system. Used to test and run programs written in the Hack machine language (in both its binary and assembly versions).

Преземи PDF

Често Поставувани Прашања

Што?

"Дизајнирање на компјутер, од нула!" е курс од областа applied computer science во кој студентите работат на дизајнирање на процесор. Пристапот е bottom-up, односно, студентите почнуваат со градење на едноставни логички кола кои во текот на курсот ги комбинираат во покомплицирани чипови. Крајниот продукт е 16-битен процесор кој е поврзан со 32KB RAM меморија и има 28 инструкции.

Кога?

  • Почеток: 14-ти октомври
  • Крај: 18-ти ноември

Во кои денови ќе се одржува?

Секој вторник од 19-21ч.

Каде?

Во хаклабот КИКА, близу до Католичка.

Колку ќе чини?

3000 денари.

Каде ќе одат парите?

Еден дел од парите ќе се искористат за трошоци поврзани со курсот, како печатење копии од книгата или купување елементи за протобордот, а другиот дел ќе завршат на сметката на КИКА, за трошоци како кирија и сметки.

Многу сакам да го посетувам курсот, но немам доволно пари. Што да правам?

Пријави се и спомни го ова во делот „Зошто сакам да го посетувам курсот“. Хаклабот го задржува правото да стипендира неколку талентирани и мотивирани студенти.

За кого е наменет курсот?

Во најширока смисла, за секој што е заинтересиран да научи како работат компјутерите. Сепак, најкорисен е за студенти на техничките факултети: да добијат генерална слика за тоа што ги чека (прва година), или пак да го сумираат добиеното знаење (апсолвенти). Еднакво е корисен и за средношколци кои планираат да студираат на технички факултет.

Што треба да знам?

Единствен hard requirement е зборување англиски јазик, заради книгата. Оригиналниот Nand2Tetris курс бара од студентите да имаат и основно познавање на барем еден програмски јазик, што е потребно за вториот дел од Nand2Tetris. Курсот ќе го опфати само првиот дел, што значи познавање на програмски јазик е корисно, но не е задолжително.

Што треба да имам?

Лаптоп.

Дали ќе треба додатно да работам сама дома?

Да. Од секој студент ќе се очекува да ја има прочитано соодветната глава од книгата пред почетокот на секој час. На часовите главно ќе ги решаваме вежбите. Ако на некој студент му останат недовршени вежби, ќе треба да ги доврши дома (или некој нареден ден во Хаклаб).

Што ќе правам на часовите?

Секој час ќе има две дела: еден пократок и еден подолг. Во пократкиот ќе ja продискутираме теоријата што се обработува во главата од таа недела. Во подолгиот, втор дел, секој студент ќе ги составува чиповите (ќе пишува HDL код во симулаторот), самостојно или во група.

Можам ли самостојно да го поминам курсот?

Да, Nand2Tetris беше еден од првите (и многу популарни!) курсеви на Coursera. Дизајниран е така што може самостојно да го следат студенти на интернет, но фигурира и како предмет на многу факултети. Еквивалент на завршување на „ДКН“ е завршување на првите 5 од вкупно 12 глави од книгата.

Дали на крајот од курсот ќе добијам вистински, физички процесор?

Не. За жал, процесот на произведување процесори е комплициран и скап.

Дали е можно процесорот што ќе го дизајнирам да се произведе и да се користи како било кој друг процесор?

Да! За инспирација: http://en.wikipedia.org/wiki/Galaksija_(computer)

Кого да исконтактирам ако имам уште прашања?

Мене, Андреј, прати ми мејл на: andrejtrajchevski@gmail.com

За медиуми

Курс за „Дизајнирање на компјутер, од нула!“ во скопскиот хаклаб КИКА

илустрација на d-flip-flop

Скопскиот хаклаб КИКА организира шест-неделен курс за дизајнирање на компјутер. Преку градење на едноставни логички кола, од 14. октомври до 18. ноември 2014 г., во КИКА, заинтересираните студенти ќе изработуваат 16-битен процесор со 32KB RAM и 28 инструкции!

Курсот е базиран на популарниот курс Nand2Tetris, еден од првите курсеви кои се појавија на Coursera. Неговата цел е да ги запознае студентите со суштината на компјутерските системи, основните принципи на кои што се базираат.

Првиот дел од Nand2Tetris, односно првите пет глави од книгата (кои се опфатени со курсот) се фокусираат на дизајнирање на процесор, додека во следните седум студентите пишуваат нивен програмски јазик, компајлер, базичен оперативен систем и - конечно - игра која ќе се извршува на инфраструктурата која самите ја изградиле.

„Дизајнирање на компјутер, од нула!“ е наменет за сите студенти на CS, но особено е корисен за две групи: оние на почетокот на студиите и оние пред самиот крај. На почетокот им нуди перспектива на темите што следуваат, додека на крајот го сумира стекнатото знаење.

Повеќе информации за курсот можете да најдете на http://dkn.spodeli.org/.

Пријавувањето е во тек!