


Politecnico di Torino  
Anno Accademico 2012/13  
04JCJLI, 04JCJJM, 04JCJLJ, 04JCJLL, 04JCJLM, 04JCJLS, 04JCJLX, 04JCJLZ, 04JCJMA, 04JCJMB, 04JCJMC, 04JCJMH, 04JCJMK, 04JCJMO, 04JCJMQ, 04JCJOD, 04JCJPC, 04JCJPI, 04JCJPL Computer sciences 

Corso di Laurea in Ingegneria Dell'Autoveicolo (Automotive Engineering)  Torino Corso di Laurea in Ingegneria Meccanica (Mechanical Engineering)  Torino Corso di Laurea in Ingegneria Delle Telecomunicazioni (Telecommunications Engineering)  Torino Espandi... 





Presentazione
This course, mandatory for all the students, has a twofold objective: on one hand, to introduce the student to the issues related to computer science, in particular from the 'cultural' standpoint, but also from the technological one. On the other hand, the course aims at teaching the use of computer programming as a way to solve reallife problems.

Risultati di apprendimento attesi
The student must acquire two fundamental types of knowledge; the solution of realistic problems through programs implemented using a programming language and to be executed on a computer; the understanding of the quantitative aspects of computer science such as performance, computational power, representation of information, computer architecture. These skills will be applied to the solution of practical problems.

Prerequisiti / Conoscenze pregresse
The main prerequisites are the knowledge of some basic notions of Calculus.

Programma
NUMERICAL AND NONNUMERICAL REPRESENTATIONS (8 HRS)
+ Unsigned Numbers  Representation intervals  Operations with pure binary numbers: Addition, Subtraction, Overflow. + Signed Numbers  Sign and Magnitude: Representation  Two's complement: Representation, Addition, Subtraction, Overfloww, Shift + Real Numbers (Fixed and Floating Point)  Binary representation  Fixed Point and Floating Point (exponential representation). + Characters encoding (ASCII, UNICODE) + Image encoding (raster, vectorial) + Sound encoding (sampling) + Movies encoding (differential) + Compression and error control BOOLEAN ALGEBRA (2 HRS] + AND, OR, NOT operators and Boolean expressions COMPUTER ARCHITECTURE (6 HRS) + Von Neumann model (Program Memory, Control Unit, Operating Unit) + CPU (execution speed) and cache + PC architecture (graphical devices, disks, buses) + Data transmission (bottleneck, shared band, asimmetric speeds) SOFTWARE ARCHITECTURE (4 HRS) + Machine language, assembler, high level languages + Language translation, libraries and program execution + Operating System (task management) PROBLEM SOLVING AND ALGORITHMS (4 HRS) + Flow charts, pseudocode + Problem solving and program writing C LANGUAGE (36 HRS] + Data types. + Symbolic constants. + Input/output operations (printf and scanf). + ControlFlow structures (iterative and conditional). + Arrays and multidimensional arrays (of integers, reals and characters). + Functions and calls (by reference, by value, pointers). + Strings. + Command line arguments (argc and argv). + Files. + Struct. + Dynamic memory allocation. 
Organizzazione dell'insegnamento
The course includes 20 hours of lab, in which the topics covered in the classes will be implemented as C programs.

Testi richiesti o raccomandati: letture, dispense, altro materiale didattico
 Handouts of class material.
 H.M.Deitel e P.J.Deitel, 'C: How to Program', 6th edition, PrenticeHall 
Criteri, regole e procedure per l'esame
The exam consists of a written test and of an oral test, both mandatory. The written test aims at assessing the students' knowledge of the theoretical aspects of the course (through numerical exercises or openanswer questions) and the programming skills (through the writing on paper of a C program that implements the solution of a practical problem). The oral test consists of a discussion about the written test and may cover any of the topic covered in the course.

Orario delle lezioni 
Statistiche superamento esami 
