FACOLTA' DI INGEGNERIAUniversita' di Pavia
Home
  Teaching > Course1314 > Principles Of Computer Science Translate this page in English
About the Faculty
Orientation
Teaching
Research
Services
Industry partnerships
Mobility Erasmus
Shortcuts
Search in this site
Principles Of Computer Science

2012-13 Academic year

Lecturer: Giovanni Danese   Tullio Facchinetti  

Course name: Principles Of Computer Science
Course code: 500655
Degree course: Ingegneria Elettronica e Informatica
Disciplinary field of science: ING-INF/05
L'insegnamento costituisce attività di base per: Ingegneria Elettronica e Informatica
University credits: ECTS 12
Course website: http://gamma.unipv.it/fdi/

Specific course objectives

The objective of the course is to provide the students with logical principles of the operation and organization of computer systems and the acquisition of methods to exploit their potentials, with particular reference to the study and techniques of the computer programming. The course includes a description of the functional structure of the major hardware and software modules that compose a computer system. Moreover, the basic tools and techniques for using the computer and its programming are provided, which form the essential educational content and are the basis of the necessary experimental activity. It is believed that, once passed the exam, the student has acquired a set of cultural tools to facilitate the study of other subjects of its curriculum and, on the other hand, has identified the topics that should be independently investigated to acquire skills not provided from their study plan. In particular, it is believed that the student will have acquired the necessary skills for the development of algorithmic solutions for problems of limited complexity and coding, and development of C programs as a basis for the study of more complex and advanced languages.

Course programme

Introductory concepts
Definition of concepts, technical terms and fields of application of electronic computers.

Information coding
Discussion of several techniques of representation of numerical information, text, graphics inside of computers. Presentation of redundant and non-binary codes, detectors and error-correcting. Introduction to the Boolean algebra.

Computer architecture
Description of the functional structure of computers and modules that compose them. Description of the operation logic of the processors, the size of the instructions and the execution cycle, the organization of the memory devices and related access techniques, the principles of operation and characteristics of the peripheral devices. Description of the architecture of a complex computer system with reference to the problems of memory and resources management, and the parallelism of operation as well. The description is intended to provide an overview of the architecture, in terms of both hardware and software. Therefore, this topic also includes a description of the basic functionality of the software.

Operating systems
Presentation of the main features of operating systems, including the kernel and basic software. Classification of the various types of existing operating systems and their main features.

Programming tools
Presentation of functions and features of tools to support for the software development. In particular, showing of commands for manipulating files in a Unix environment, and description of the operation of compilers and interpreters as tools for the implementation of programs.

Data structures
Introduction to the most relevant data structures from their abstract definition viewpoint and from their actual implementation.

Programming principles
Discussion on the principles of programming computers, including the formalization of the problem, the design and coding algorithms through the methods and techniques of structured programming and the criteria for analyzing, testing, and validation of programs. The objective is to provide students with an operational capacity in software development and a sensitivity to the problems of good documentation and reliability of the applications.

C language programming
Presentation of the principles of programming and detailed description of the C language. The theoretical activity is integrated by practical exercises in the computer laboratory dealing with problems of numerical computation and data manipulation. In particular sorting algorithms are implemented, the management of data structures, data filtering, etc.

Course entry requirements

Whose required for the subscription to the University courses.

Course structure and teaching

Lectures (hours/year in lecture theatre): 90
Practical class (hours/year in lecture theatre): 0
Practicals / Workshops (hours/year in lecture theatre): 0

Suggested reading materials

Per il modulo del prof. Danese.

[1] Informazioni di utilità relative all’insegnamento sono reperibili al sito http://gamma.unipv.it/fdi/.

[2] J. Glenn Brookshear. INFORMATICA una panoramica generale. Pearson - Addison Wesley. 9^ edizione, 11/2006.

[3] P. Tosoratti. Introduzione all’Informatica. Casa Editrice Ambrosiana, 1998, Milano.

Per il modulo del Prof. Facchinetti.

[1] Tullio Facchinetti, Cristiana Larizza, Alessandro Rubini. Dalla A alla Z passando per C. Maggioli Editore, 2013.

[2] Brian W. Kernighan, Dennis M. Ritchie. Linguaggio C. Seconda Edizione - Jackson Libri, 1989.

Testing and exams

Main exam
The exam includes a written test about theory topics and a practical test to be performed on the computers of the classrooms of Computer Science. In particular, in the written test 8 question are proposed to cover the topics of the course (2 of them are related to the theory of programming). The evaluation of the written test is the arithmetic average of the scores obtained in the individual questions.
The practical test requires the implementation of an algorithm for a proposed problem and its the encoding of the program using the C language.
The achievement of a sufficient score in both tests will allow a global sufficient score in the exam. The overall score of the exam is the weighted average of the scores obtained in the written and in the practical test (weights respectively 3/5 and 2/5).
An optional oral test can be requested, with two objectives:

  • in case of a sufficient global evaluation, the oral test may modify the current evaluation;
  • in case the written test is not sufficient, but greater that 16/30, the oral test allows to get a sufficient evaluation.

If the global score is sufficient but not satisfactory, or one test is not sufficient, one single test can be repeated. In any case, the validity of the tests stops with the end of the winter examination session of the academic year that follows the one when the tests have been incurred.

In the context of the study of the C programming language, there is the change to perform an additional programming project (even in a group), under the supervision of Prof. Facchinetti. The decision to develop the little project is optional.
The outcome of the project will be evaluated from 0 to 3 points depending on the complexity and quality of the project, to be considered as additional contribution to the global score.

Intermediate exam
Since the delivery of the course is developed in both semesters of the academic year, a written mid-term exam will take place at the end of the first half, in order to verify the candidate's knowledge on the topics covered during the first part of the course. Participation in the mid-term exam is optional.
In case the candidate participates to the mid-term exam, the overall evaluation of the exam is calculated with the following rules:

  • the first written test (mid-term) is about the topics covered in the first semester, and it is made by 4 questions.
  • the second written test, at the end of the course covers the topics of the second semester; it is made by 4 question, 2 of them covering the topics of the programming course.
  • the third test is the practical exam, which is the implementation of a program using the C language.

The achievement of a sufficient score in all tests allows to pass the exam. The overall score of the exam is the weighted average of the valuations obtained in the two written tests and in the practical one (weights respectively 3/10, 3/10 and 4/10).
In this organization of the exam, an optional oral examination is possible, only if the resulting overall score is sufficient, the oral examination can allow you to improve that assessment.

If the outcome of the second theoretical and/or practical test is not sufficient or not satisfactory, the candidate can only repeat this/these test. In any case, the validity of a test stops with the end of the winter examination session of the academic year following that in which the tests have been incurred.

Even under this option, there is the change to perform an additional programming project in C language (even in a group), under the supervision of Prof. Facchinetti. The decision to develop the little project is optional.
The outcome of the project will be evaluated from 0 to 3 points depending on the complexity and quality of the project, to be considered as additional contribution to the global score.

Copyright © Facoltà di Ingegneria - Università di Pavia