Part I: The computer as an executor of algorithms. Preliminary, intuitive concepts of computer and computation. From a problem to its solution: requirement analysis, specification and design of an algorithm and its implementation. The notion of algorithm and program. The flow chart language for the description of algorithms. Development of simple algorithms and their translation into a program.
Part II: Computer programming. High level programming languages. Compilers and interpreters. Programming environments. Introduction to C programming. General features of the C language. General structure of a C program. Basic data types. Input/output instructions. Basic operators and expressions with variables. Basic control structures (conditional instructions and loops). Vectors and matrices.
Part III: Main components, architectures and operations of a typical computer. High level architecture of a simple computing system. Basic input/output devices, central memory, hard disk, central unit processor (structure and how it works), machine language and the assembler language. An example of a simple assembler language.
Part IV: The representation of binary information. Binary numbers and basic operations. Representation of logical values and logical operators. Boolean algebra. Representation of chars, tests, graphics, images, sounds (at an very introductory level).
Part V: The operating system. Structure and general operations of an operating systems, main components, the file system, process manager, management of printers and other external devices (at a very introductory level).
Part VI: Computer networks and Internet. Main network models and structures with examples. Internet and the relative basic services. Search the Web. Privacy and copyright.
Part VII: Tools supporting work. Electronic Spreadsheet: Microsoft Excel (main features, graph generation, data modeling, basic operations and macros). Tools and languages for creating web pages. The HTML language.