Select Academic Year:     2016/2017 2017/2018 2018/2019 2019/2020 2020/2021 2021/2022
Professor
MATTEO FRASCHINI (Tit.)
Period
First Semester 
Teaching style
Teledidattica 
Lingua Insegnamento
ITALIANO 



Informazioni aggiuntive

Course Curriculum CFU Length(h)
[70/89]  ELECTRICAL, ELECTRONIC AND COMPUTER ENGINEERING [89/46 - Ord. 2016]  ELETTRICA ON LINE E IN PRESENZA (BLENDED) 6 36
[70/89]  ELECTRICAL, ELECTRONIC AND COMPUTER ENGINEERING [89/56 - Ord. 2016]  ELETTRONICA ON LINE E IN PRESENZA (BLENDED) 6 36
[70/89]  ELECTRICAL, ELECTRONIC AND COMPUTER ENGINEERING [89/66 - Ord. 2016]  INFORMATICA ON LINE E IN PRESENZA (BLENDED) 6 36

Objectives

Objectives
The main objective of the Fundamentals of Computer Science course is to give an overview of basic concepts of computer science, along with methods and tools to code using C programming language.

Knowledge and understanding. At the end of the course the student will be able to understand the organization and the working logic of modern information systems, to develop algorithms for the solution of problems of medium complexity and encode them in C language.

Applying knowledge and understanding. At the end of the course the student will have demonstrated to be able to apply this knowledge and understanding skills to define and develop solutions to problems related to their field of study.

Making judgements. The student will be able to interpret, evaluate and express independent judgments in relation to issues related to the fundamental principles of computer science and C programming.

Communication skills. The student will be able to communicate information, ideas, problems and solutions to specialists and non-specialist interlocutors.

Learning skills. At the end of the course the student will have developed the necessary skills to undertake new programming paradigms and / or new languages, with a high degree of autonomy.

Prerequisites

Knowledge of elementary calculus and algebra. Familiarity with computer use.

Contents


• Binary Representation of Numbers: natural, integer, fractional and real numbers.
• Character encoding. Coding of images, sounds and video.
• Concept of algorithm, languages and computer systems. Applications of computer science and its subject areas. Coding algorithms.
• The core of the C language, first examples of C.
• Structured data in C, the design of programs in C.
• Structure of C programs: definitions, variables, constants, statements
• Classification of data types.
• Predefined simple types: int, float, double, char.
• Simple user-defined types: redefinitions, enumerations.
• Structured types: arrays, structs, pointers.
• Arrays, pointers and pointer arithmetic.
• Expressions and strong typing.
• Selection Statements: if-else, switch.
• Loop statements: for, do-while loop.
• Functions: definition, call, execution. Parameter passing.
• Practical use of functions.
• System functions, header, scanf.
• The management of dynamic memory: allocation and de-allocation of memory in C
• File Operations in C. Reading and writing to and from files
• Abstract data types.
• Fundamentals of computer architecture.
• Fundamentals of Operating System.
• Computer Networks: Media for data transmission. Local area networks, network topology. Structure of messages and packets, communication protocols. Network architectures and devices, distributed systems. History of the Internet. The protocols IP, TCP, UDP, DNS. The Word Wide Web, HTML, search engines. Mail services, audio and video. Overview of Grid and Cloud computing.
• Introduction to computer security: basic concepts about computer security. Cyber attacks. Basics of authentication and encryption.

Teaching Methods

Interactive teaching: 6 hours.

Verification of learning

The exam is organised as both theory and C language questions. The exam is made through a written examination, including open-ended questions, closed, multiple choice questions,
resolution of exercises for converting between binary, octal, hexadecimal, decimal numbers. The C language part is about writing C code, and / or interpret a C program, and / or answering questions about C language.
The written examination is indispensable. A further oral examination is required for students that obtain a score in the range between 16 and 20, optional for students that obtain a higher score.
In case of oral examination, the final score will be balanced as follows: 30% for oral examination, 70% for written examination.

Texts

Bellini, Guidi. Linguaggio C. McGraw-Hill

Consultation books:
Dennis M. Ritchie, Brian W. Kernighan, “C Language", Pearson.
D. Mandrioli et al., "Informatica: arte e mestiere", Mc. Graw Hill Italia, Milano
E. Burattini et al., Che C serve? APOGEO
J. Glenn Brookshear, Fondamenti di Informatica e Programmazione in C. Pearson

More Information

Further tools to support teaching can be found on the website https://matteogithub.github.io/teaching/ and Moodle (https://elearning.unica.it/course/view.php?id=65)
Among them there are:
- the slides shown in class
- conversion exercises between numbers in different formats, with the solution
- C language exercises, with their solutions
- examples of written examinations, with solutions

Questionnaire and social

Share on: