The concept of 'algorithm' and 'computer'
Problems and solutions. Algorithm properties. Algorithms, computations and computed functions. From the problem to the algorithm: algorithmic solution, block diagrams.
Binary information representation
Information and its representation. Analogical vs. digital representation. Binary codes. Positional notations: positional notations with different bases(binary, octal, hexadecimal) and conversion. Representation of natural numbers, whole numbers, real numbers (fixed point, floating point, IEEE 754 format). Representation of Booleans and characters. Boolean algebra. Text representation. Representation of sounds, images, videos. Error detection and error correction codes. Compression lossless and compression with loss.
Computer architecture
Hardware, software, firmware. Computer organization. Von Neumann model. Central memory: access modes, performance, read-only memory. Central processing unit: components, fetch-decode-execute cycle, performance. Device management: input/output interface, address mechanisms, synchronization. Input/output devices. Magnetic and optical disks, flash memory. Introduction to advanced computer organization: memory hierarchy, cache memory, multiple buses.
The computer language
Instruction representation: machine language, assembly language, examples of instructions in the MIPS assembly language. Instruction execution.
Operating system
Virtual machines. Operating system functions and organization. Process manager: process, process state, scheduling, process interaction. Central memory manager. Device managers. File system.
High-level programming languages
Limitations of assembly languages, requirements for a good programming language. High-level languages. Data abstraction, control abstraction, procedural abstraction. Programming paradigms. The imperative paradigm. The functional and logic paradigms. Compilers and interpreters.
Introduction to the C language
The basic instructions of the C programming language: variables, elementary data types, control structures, input/output instructions. Examples and exercises.