ARCHITEKTURA KOMPUTERÓW

"Zanurkujemy" bardzo głęboko do wnętrza komputera i zobaczymy ten świat z całkiem innej perspektywy niż perspektywa "zwykłego" użytkownika, sprowadzająca komputer do czarnej skrzynki, która w magiczny sposób, brzęcząc, trzeszcząc i wirując, tworzy efekt w postaci jakiegoś działania widocznego (bądź nie) na ekranie. Po tych zajęcia prawie wszystko w zakresie działania komputera stanie się proste, jak dwa podstawowe stany: 0 i 1 ;)



Co obejmuje ten przedmiot:


  • Historia komputerów

Zaczynamy od historii komputerów a skończymy na superkomputerze FUGAKU. Omawiamy, co to jest maszyna von Neumanna, architektura harwardzka oraz przejdziemy przez podstawowe elementy komputera: procesor, rodzaje pamięci, rejestry procesora, pamięć cache, pamięć RAM i dyski.


  • Systemy liczbowe 

Poznamy systemy liczbowe. Nauczymy się podstawowych działań na liczbach binarnych. Później zostawimy to dla komputera, ale jak on to robi, musimy wiedzieć.


  • Bramki logiczne

Nauczymy się rozpoznawać je w zapisie graficznym, oraz jaki stan otrzymamy na wyjściu poszczególnych bramek w zależności od danych wejściowych. Poznamy najprostsze układy zbudowane na bramkach oraz powiemy trochę o ALU — jednostce arytmetyczno-logicznej. 


  • Arduino, czyli systemy wbudowane

Poznasz budowę Arduino, czyli gdzie co jest, umówimy też podstawowe pojęcia z elektrotechniki, oraz elementy, z którymi będziemy mieli kontakt na początku. Zapoznamy się miernikiem oraz omówię z grubsza składnię języka, którym będziemy się posługiwać przy programowaniu płytki Arduino.


  • Tinkercad

Jest to program, dzięki któremu będziemy mogli symulować układy oparte na Arduino. W tym materiale omówię również część pojęć, o których wspomniałem wcześniej na przykładach, opartych już o wirtualne układy.


  • PWM

Co to jest PWM, dowiemy się jak sterować wyjściami w sposób “płynny”. Ta metoda daje dużo możliwości i jest podstawą do sterowania bardziej zaawansowanego układami Arduino.


  • Realne budowanie zestawu Arduino

Pracowaliśmy na wirtualnych zestawach, warto jednak pokazać, jak to wszystko wygląda w realnych zestawach. Pokazuję na przykładowych projektach, jak zmontować układ i oprogramować go w realu.


  • Procesy, wątki i programowania współbieżne

Przedstawiam i wyjaśniam pojęcia procesów i wątków w naszych komputerach. Następnie pokazuję, dlaczego potrzebne jest nam programowanie współbieżne. Dodatkowo, pokazuję na prostych programach napisanych w C++, że to, co mówię, jest faktem. Czyli zwykły program napisany w C++ i uruchomiony na 20-rdzeniowym procesorze wykorzysta tylko 5% mocy naszego komputera.


  • Teoria układów wbudowanych

Omówię tutaj trochę pojęć z teorii układów wbudowanych. Wiedza ta dotyka tylko podstaw, ale świadomość pewnych zagadnień jest bardzo ważna, bo wcześniej czy później się z tym zetkniemy w pracy jako programista.