SubjectsSubjects(version: 879)
Course, academic year 2020/2021
Computer Systems - NSWI170
Title: Počítačové systémy
Guaranteed by: Department of Software Engineering (32-KSI)
Faculty: Faculty of Mathematics and Physics
Actual: from 2019
Semester: summer
E-Credits: 5
Hours per week, examination: summer s.:2/2 C+Ex [hours/week]
Capacity: unlimited
Min. number of students: unlimited
State of the course: taught
Language: Czech, English
Teaching methods: full-time
Additional information:
Guarantor: RNDr. Jakub Yaghob, Ph.D.
Co-requisite : NSWI120
Annotation -
Last update: doc. RNDr. Pavel Töpfer, 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.
Course completion requirements -
Last update: RNDr. Jakub Yaghob, Ph.D. (25.05.2020)

Credit is obtained for continuous work on labs, homework and final work. Conditions may be specified by the lab teacher.

The exam is a short written test and a programming task for Arduino in a lab.

Due to the current state measures for COVID-19 and the unknown future course of the infection and measures, we changed the course of the exam for this semester. The instructor proposes a grade for the continuous semester work and enters it in the SIS. The student either agrees or disagrees with the proposed grade. If the student agrees with the mark, he/she no longer has to do anything. If he/she does not agree with the mark, he/she registers for the announced exam date. The exam will take place online in ZOOM for 1.5 hours and the content is a programming task for Arduino. After completing the online meeting, the student saves his solution in the SIS. The examiner will evaluate the submitted solution regardless of the mark proposed by the instructor.

Syllabus -
Last update: doc. RNDr. Pavel Töpfer, CSc. (22.01.2018)

Introduction to the C language - basic language constructs, pointers and pointer arithmetic, complex data structures, pointers on functions, access to the HW of a chosen platform

Computer architecture

CPU - instruction set, registers, processor stack, exceptions

Memory - addressing, data in memory, alignment, cache

Basic concepts of interrupt and DMA

Programming languages - program compilation and linking, memory organization of a procedural program, call/return mechanism for procedures/functions, parameter passing, variable lifetime and variable kinds, stack in the procedural program, heap, run-time, basic concepts of JIT, sandbox, and VM, libraries, source code portability

Operating systems - user/kernel mode, process, scheduling concepts, virtual memory concepts, process loading, basic concept of a thread, synchronization

Charles University | Information system of Charles University |