1 Basic Concepts.
1.1 Structure of a computer system: hardware and software. Information encoding.
1.2 Bool algebra.
1.3 The notion of programming language. Programming paradigms: structured programming.
1.4 Basic definitions: algorithm, program, process, etc.
1.5 Compilation, debugging and execution processes.
1.6 Pseudocode.
2 Basic elements of programming.
2.1 Identifiers.
2.2 Variables and constants.
2.3 Simple datatypes.
2.4 Operators, expressions and statements.
3 Control flow.
3.1 Conditional statements.
3.2 Loop statements.
3.3 Other control flow statements.
4 Data structures and user-defined datatypes.
4.1 Definition and design principles.
4.2 Strings: concept, management and application.
4.3 Arrays, tuples and sets: concept, management and application.
4.4 Dictionaries: concept, management and application.
5 Subprograms: procedures and functions
5.1 Definition and design principles.
5.2 Function signature, parameters and invocation.
5.3 Introduction to recursive functions.
5.4 Other paradigms: Object-Oriented programming introduction.
6 Basic algorithms.
6.1 Searching and sorting.
7 Resource management.
7.1 Static vs dynamic memory
7.2 Memory basic operations: allocation and free.
8 Input/Output system.
8.1 File definition, use and types: text and binary.
8.2 File management: create, write, read and delete operations.