IN/0156/E - FUNDAMENTALS OF COMPUTER SCIENCE/E
Academic Year 2016/2017
Free text for the University
MICHELE MARCHESI (Tit.)
- Teaching style
- Lingua Insegnamento
|[70/89] ELECTRICAL, ELECTRONIC AND COMPUTER ENGINEERING||[89/40 - Ord. 2016] ELETTRICA ON LINE||6||36|
|[70/89] ELECTRICAL, ELECTRONIC AND COMPUTER ENGINEERING||[89/50 - Ord. 2016] ELETTRONICA ON LINE||6||36|
|[70/89] ELECTRICAL, ELECTRONIC AND COMPUTER ENGINEERING||[89/60 - Ord. 2016] INFORMATICA ON LINE||6||36|
Knowledge and understanding: the student will know the basics of computer science as a science that studies the encoding of information, algorithms, the principles of operation of information systems, databases, computer networks, and the foundations of programming languages¿¿.
Ability to apply knowledge and understanding: 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.
Making judgments: the student will be able to assess both the adequacy of information technology tools in a professional environment, and the data structures and approaches to their use for the solution of problems of data processing.
Communication skills: the student will be able to converse with elementary computer specialists on the organization of a modern information system, and describe the procedure for resolving data processing problems.
Ability to learn independently: the student will be able to learn advanced methods and new programming languages with the basic concepts provided in the course.
Knowledge of elementary calculus and algebra. Familiarity with computer use (use of the file system, Internet browsing, basic use of word processors and viewers of pdf,. ppt and similar formats).
Binary Representation of Numbers: natural, integer, fractional and real numbers. Character encoding. Coding of images, sounds and video. (9 hours)
Concept of algorithm, languages ¿¿and computer systems. Applications of computer science and its subject areas. Coding algorithms. (4 hours)
The core of the C language, first examples of C. Structured data in C, the design of programs in C. (2 hours)
Structure of C programs: definitions, variables, constants, statements (3 hours)
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. (6 hours)
Selection Statements: if-else, switch. Loop statements: for, do-while loop. Jump instructions: goto, break, continue. (4 hours)
Fnctions: definition, call, execution. Parameter passing. Practical use of functions. System functions, header, scanf. (4 hours)
The management of dynamic memory: allocation and de-allocation of memory in C (2 hours)
File Operations in C. Reading and writing to and from files (3 hours)
Abstract data types and object-oriented programming (2 hours)
Archives and Databases: Organization of the archives. Elements of databases: relational DBs. Elements of SQL language. (8 hours)
Computer Networks: Media for data transmission. Local area networks, network topology. Structure of messages and packets, communication protocols. Network architectures and devices, distributed systems. (3 hours)
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. (5 hours)
Introduction to computer security: basic concepts about computer security. Cyber ¿¿attacks. Basics of authentication and encryption. (5 hours)
Lectures (theory): 34 hours.
Lectures and exercises (C language): 26 hours.
Laboratory of C language, not within lesson time: 40 hours.
Verification of learning
The exam is divided into two parts: theory and C language, sustainable separately.
If the student passes one part, the other must be passed within 18 months. The final grade is obtained by averaging the votes of the two tests.
The theory test 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, including IEEE 754 format, writing SQL code to define tables and making simple queries on them. The teacher reserves to make an oral examination in the case of a small number of registrations to an exam.
The C language exam is about writing C code, and / or interpret a C program, and / or answering questions about C language.
Both tests are graded with a maximum score of 33. In the case of average greater than or equal to 32, the "Laude" is given. In the case of media equal to 31, a score of 30 is given.
Dennis M. Ritchie, Brian W. Kernighan, “C Language", Pearson.
The tools to support teaching can be found on the website: http://people.unica.it/michelemarchesi/
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
Further material and news can be found on: