IN/0156/E - FUNDAMENTALS OF COMPUTER SCIENCE/E
Academic Year 2017/2018
Free text for the University
MATTEO FRASCHINI (Tit.)
- Teaching style
- Lingua Insegnamento
|[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|
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:
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.
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.
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. 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. Jump instructions: goto, break, continue. Fnctions:
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.
Lectures: 30 hours.
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. Students that will obtain a score in the range between 16 and 20 will have a supplementary oral examination.
The teacher reserves to make an oral
examination in the case of a small number of registrations to an exam.
Dennis M. Ritchie, Brian W. Kernighan, “C Language", Pearson.
The tools to support teaching can be found on the website http://people.unica.it/matteofraschini/ and Moodle
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