Fondamenti di Informatica (INF)
Fundamentals of Computer Science Aldo Franco Dragoni
KNOWLEDGE AND UNDERSTANDING:
The course aims to give the basics of Computer Science and digital electronic computer programming. It has two objectives: 1. consciously introduce students to the basic concepts of computer architecture and binary encoding. 2. explain how to process digital information, that is, provide the elements of digital computer programming and of programming languages using the imperative paradigm and introducing the elements of object oriented and Assembly.CAPACITY TO APPLY KNOWLEDGE AND UNDERSTANDING:
At the end of the course, students will be able to properly encode the information into digital format and making simple computational problems in the form of algorithms and translate them into programs using correct syntax of a programming language.TRANSVERSAL SKILLS:
the ability to plan the steps to be done to solve a problem will help to develop the autonomy of judgment and computational thinking skills of students.
Binary encoding of sounds (WAW, MP3), images (BMP, GIF, JPEG) and videos (MPEG2, MPEG4). Unsigned, Integers and Real Numbers (IEEE754). Arithmetic Operations in binary.Von Neumann Architecture. Functional Architecture of a microprocessor (IA-32). Storage: magnetic and optical. CD-ROM, CD-R, CD-RW, DVD. Assembly programming: operands, instructions, directives, labels, subroutines, Stack, "call" and "ret", modular programming, I/O, compilation. Imperative languages evolution and structured programming. Software, copyright and copyleft. Foundamentals of data Structure. Casting. Library functions. Assignment. Arithmentic, logical and relational operators. I/O-stream and file-stream. Conditional Instructions. Cyclic instructions. Jumping. Theorem of Bohm-Jacopini. Functions. Recursive functions. Pointers and references. Parameettrss pasinghrough values and through references. Array. Strings. Array as parameters to functions. Struct. Dynamic memory: new and delete. Lists, trees. Notions of Object Oriented Programming, Classes, Polimorphism.
Development of the examination
LEARNING EVALUATION METHODS
The examination is held in two tests: a test of programming in C ++ and a written test with questions about the foundations of computer science and debugging of algorithms in C ++
LEARNING EVALUATION CRITERIA
The evaluation focuses on the practice: the student must demonstrate her ability to program in C ++ according to the principles of "structured programming". Knowledge of the principles of the digitization of information serves as a complementary evaluation.
LEARNING MEASUREMENT CRITERIA
normally, the programming test is evaluated 18/30 and the written test on theory 12/30
FINAL MARK ALLOCATION CRITERIA
for the final evaluation the scores obtained in the two tests will be added up
Luis Joyanes Aguilar, "Fondamenti di programmazione in C++", The McGraw-Hill Companies. John R. Hubbard, "Programmare in C++, seconda edizione, (470 esercizi svolti)", The McGraw-Hill Companies
- Ingegneria Informatica e dell'Automazione (Corso di Laurea Triennale (DM 270/04))