


Politecnico di Torino  
Academic Year 2016/17  
12BHDLZ, 12BHDLN, 12BHDLP, 12BHDLS, 12BHDLX, 12BHDMA, 12BHDMB, 12BHDMC, 12BHDMH, 12BHDMK, 12BHDMN, 12BHDMO, 12BHDMQ, 12BHDNL, 12BHDNM, 12BHDNX, 12BHDOA, 12BHDOD, 12BHDPC, 12BHDPI, 12BHDPL, 12BHDQR Computer science 

1st degree and Bachelorlevel of the Bologna process in Aerospace Engineering  Torino 1st degree and Bachelorlevel of the Bologna process in Automotive Engineering  Torino 1st degree and Bachelorlevel of the Bologna process in Electronic And Communications Engineering  Torino Espandi... 





Subject fundamentals
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.

Expected learning outcomes
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.

Prerequisites / Assumed knowledge
The main prerequisites are the knowledge of some basic notions of Calculus.

Contents
NUMERICAL AND NONNUMERICAL REPRESENTATIONS (4 HRS)
Unsigned Numbers Representation intervals Operations with pure binary numbers: Addition, Subtraction, Overflow. Signed Numbers (sign and magnitude and two's complement representations) Real Numbers (Fixed and Floating Point) Characters encoding (ASCII, UNICODE) BOOLEAN ALGEBRA (2 HRS] AND, OR, NOT operators and Boolean expressions  truth tables of a generic Boolean expression COMPUTER ARCHITECTURE (4 HRS) Von Neumann model (Program Memory, Control Unit, Operating Unit) CPU (execution speed) and cache PC architecture (devices and buses) Hardware and programs: assembly languages vs. high level languages Translating highlevel languages into binary code: compilers PROBLEM SOLVING AND ALGORITHMS (4 HRS) Flow charts, pseudocode Problem solving and program writing C LANGUAGE (46 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. 
Delivery modes
The course includes 20 hours of lab, in which the topics covered in the classes will be implemented as C programs.

Texts, readings, handouts and other learning resources
Handouts of class material.
H.M.Deitel e P.J.Deitel, 'C: How to Program', 8th edition, PrenticeHall 
Assessment and grading criteria
The exam consists of a written test and of a optional oral test. 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 can be requested by the instructor and consists of a discussion about the written test and may cover any of the topic covered in the course.

