Kurz navazující na předmět Principy počítačů je základním kamenem pro pochopení funkce počítačů, překladačů
a operačních systémů. Dovednosti a znalosti získané na tomto kurzu jsou nezbytné pro absolvování dalších
předmětů. Nedílnou součástí kurzu jsou praktická cvičení na vhodně vybraném jednoduchém hardware či v
emulovaném prostředí.
Poslední úprava: Töpfer Pavel, doc. RNDr., CSc. (22.01.2018)
The course is a cornerstone for understanding the function of computers, compilers, and operating systems. The
skills and knowledge acquired at this course are necessary for completing other subjects. An integral part of the
course are practical exercises on suitably selected simple hardware or in an emulated environment.
Poslední úprava: Töpfer Pavel, doc. RNDr., CSc. (22.01.2018)
Podmínky zakončení předmětu -
Zápočet je získán za průběžnou práci na cvičeních, odevzdávání domácích prací a závěrečný úkol vypracovaný formou programátorského testu v labu. Povaha požadavků k zápočtu vylučuje opravné termíny (s výjimkou závěrečného úkolu v labu, na který je jeden opravný termín).
Zkouška je formou krátkého písemného testu, který se odevzdává elektronicky (v počítačové laboratoři).
Podstatná část práce k získání zápočtu probíhá doma ve spolupráci se cvičícím. Z tohoto důvodu má předmět vyšší kreditové ohodnocení.
Podrobnější informace naleznete na webu předmětu (https://www.ksi.mff.cuni.cz/teaching/nswi170-web/). V případě jakéhokoli rozporu platí informace tam uvedené.
Poslední úprava: Kruliš Martin, doc. RNDr., Ph.D. (27.06.2024)
Credit is obtained for continuous work on labs, homework, and final work (which is solved in the form of a coding test in labs). The characteristics of the credit requirements do not allow multiple attempts to fulfill them (except the final coding test which has two attempts in total).
The default form of the exam is a short closed-book written test which is conducted in digital form (submitted in PC labs).
A considerable amount of work (for the credit) comprises the completion of home assignments and their revisions supervised remotely by lab teachers. Therefore, the course is awarded higher credits than what would regularly correspond to its allocated hours per week.
Details can be found on the course web page (https://www.ksi.mff.cuni.cz/teaching/nswi170-web/). In case of any ambiguity, facts on the course web page take precedence.
Poslední úprava: Kruliš Martin, doc. RNDr., Ph.D. (27.06.2024)
Sylabus -
Úvod do jazyka C/C++ - základní konstrukce, ukazatele a ukazatelová aritmetika, komplexní datové struktury, ukazatele na funkce, dekompozice
Architektura počítače
CPU - instrukční sada, registry, zásobník procesoru
Paměť - adresování, data v paměti, zarovnání, paměťová hierarchie, cache, alokační algoritmy
Programovací jazyky - překlad a sestavení programu, paměť procedurálního programu, mechanismus volání funkce/procedury, předávání parametrů, druhy a životnost proměnných, zásobník při běhu procedurálních programů, heap, runtime, koncepty JIT a sandboxu, knihovny, přenositelnost na úrovni zdrojového kódu
Operační systémy - uživatelský režim/režim jádra, architektury OS, přerušení, výjimky, DMA, proces, vlákno, plánování, souborové systémy, virtuální paměť
Paralelní programování - synchronizace, deadlock
Poslední úprava: Töpfer Pavel, doc. RNDr., CSc. (25.05.2022)
Introduction to the C/C++ language - basic constructs, pointers and pointer arithmetic, complex data structures, pointers to functions, decomposition
Computer architecture
CPU - instruction set, registers, processor stack
Memory - addressing, data in memory, alignment, memory hierarchy, cache, allocation algorithms
Programming languages - program translation and compilation, memory organization of a procedural program, function/procedure call mechanism, parameter passing, variable types and lifetimes, stack, heap, runtime, JIT and sandbox concepts, libraries, source code portability
Operating systems - user mode/kernel mode, OS architectures, interrupts, exceptions, DMA, process, threads, scheduling, file systems, virtual memory
Parallel programming - synchronization, deadlock
Poslední úprava: Töpfer Pavel, doc. RNDr., CSc. (25.05.2022)