"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.