60/64/175 - ELEMENTS OF COMPUTER SCIENCES
Academic Year 2018/2019
Free text for the University
ROBERTO TONELLI (Tit.)
- Teaching style
- Lingua Insegnamento
|[60/64] MATHEMATICS||[64/00 - Ord. 2017] PERCORSO COMUNE||8||64|
KNOWLEDGE AND COMPREHENSION
The course of Elements of Informatics provides students with basic knowledges on the use of modern calculators, to understand how they work and are organized, and the bases for computer programming. The knowledge about how are represented and stored in computers the numbers: integers, reals, complex, alphanumerical data and other data types. Knowledges on the internal structure and architecture of calculators and of Internet and how data storage and data transmission work. Students will learn how to manage linux/unix environment and the bases of C programming.
KNOWLEDGE AND COMPREHENSION APPLIED (Abilities)
The course is oriented to applications. Students have to solve problems through the usage of computers and programming languages, the bases of C programming and of Unix environment, to use common algorithms.
Exercises are presented in order to sustain autonomy in judgment. Students should autonomously choose the most appropriate tools for problem solving.
Students will learn the basis of the informatics language.
Student will be able to tackle further courses requiring informatics and programming knowledges. They will learn autonomous problem solving for elementary programming. They will learn how to analyze simple programs written in C and the bases of BlockChain working principles.
-Knowledge of computer and operating systems at user level.
-Good knowledge and skills in logics and mathematics at high school level.
-Knowledge of basic operation on numbers
-Computer architecture, storage memories, logical circuits, algorithms, operating systems, Unix, Linux. Boolean Logic. Structure of the RAM memories, Hard Disk, memories.
-Linux environment, directory structure, terminal and command line, man, cat, cd, pwd, ls, cp, mv, rm, history, clear cat, more, less, head, tail, grep.
Command options. Pipe.
-Numbering systems: decimal, binary, exadecimal, conversions between systems and their mathematics. Information coding. Characters, reals, integer types.
-C programming, variables, types, declarations, initialization, constants. Operators: arithmetical and logical, conditional, console I/O: printf, scanf, cout, cin. Type-specifier, escape sequences. Control structures, if, if-else, if-else-if, cycles, iterations, for, while, do-while. Arrays, functions, parameters, references, function prototypes. Pointers, declaration, operators & and *. Pointers and arrays. File I/O, opening and closing a file, fopen, fclose, fprintf, fscanf.
-Bases of cryptography, asymmetric cryptography and with public key. Hash and Block Chain.
The course lats 64 hours partitioned in frontal teaching and exercises with theoretical sessions and practical sessions and in laboratory sessions on PC with exercises.
At the beginning of the course a calendar will be defined for laboratory sessions whose attendance is important in order to acquire the abilities needed to pass the course.
Verification of learning
The purpose of the exam prove is to verify the level to which the formative objectives have been reached.
The exam consists of two written/laboratory parts on the usage of PC and Linux and on programming which will last 2 or 3 hours. Eventually the written prove will be done using a PC in the lab. In the proves the students should pass with a minimum mark of 16/30. The final mark will be the average of the two proves, which cannot be lower than 18, integrated eventually by an oral prove, according to the criteria reported below.
The final mark, eventually after an integrative oral exam, will be given according to the following rules:
Not sufficient: the student does not know many of the fundamental constructs of the discipline.
18-24: the student knows part of the topics, understands and manages the basic of the discipline, partially completes the assigned laboratory tasks.
25-28: the student knows all the topics, understands and manages the discipline, performs the laboratory tasks.
29-30: the student knows very well all the topics, uses a correct discipline language, explains the acquired notions.
30 and laude: the student perfectly knows all the topics and manages the discipline in depth, correctly uses the technical language, brightly solves the assigned tasks.
During the course the students will be provided with
didactic material, which can be downloaded from the course web-site, through pdf pr ppt files, or files
in C language.
The reference books are:
-Informatica: arte e mestiere 3/ed Dino Mandrioli, Stefano Ceri, Licia Sbattella, Paolo Cremonesi, Gianpaolo Cugola, McGraw-Hill
-Architettura dei computer Un approccio Strutturato
Andrew S. Tanenbaum UTET (cap 1 e 2).
-Schaum's: Programmare in C, Gottfried McGraw Hill;
Lesson slides and exams proves will be made available in the course web-site.
The reception time will be defined together with the course calendar in January/February 2018. Generally the student can apply for an appointment with the teacher via e-mail.