FUNDAMENTALS OF COMPUTER SCIENCE + PROGRAMMING LABORATORY (MODULE 1)
cod. 1004157

Academic year 2014/15
1° year of course - First semester
Professor
Michele TOMAIUOLO
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
Matematica, informatica e statistica
Type of training activity
Basic
42 hours
of face-to-face activities
6 credits
hub: PARMA
course unit
in - - -

Learning objectives

The main goal of the course is to provide students with the ability to understand the principles of informatics and programming:
* Data representation
* Computation, languages and abstract machines
* Architecture of computer systems
* Object oriented programming paradigm
* Introduction to software engineering

The ability to apply the listed knowledge elements regards the development of so-called "computational thinking":
* Decomposition of complex problems
* Solution of problems through recursion
* Composition of objects into complex systems
* Modelling with various levels of abstraction

Prerequisites

None. However, the student is supposed to know the basic computer and Internet operations - the equivalent of modules 1, 2, 3 and 7 of ECDL (European Computer Driving Licence) Syllabus.

Course unit content

1. Introduction to programming
1.1. Structured programming
1.2. Data collections and flows
1.3. Functions and recursion
1.4. Objects and abstractions
1.5. Graphical interfaces

Full programme

1. Introduction to programming (24 hours, in classroom + 24 hours, in lab)
1.1. Structured programming
1.1.1. Program structure
1.1.2. Variables and data types, expressions
1.1.3. Conditions
1.1.4. Cycles
1.1.5. Nesting
1.2. Data collections and flows
1.2.1. Vectors
1.2.2. Matrices
1.2.3. Maps
1.2.4. I/O operations on console and text files
1.3. Functions and recursion
1.3.1. Parameter passing
1.3.2. Scope of variables
1.3.3. Stack and activation records
1.3.4. Recursion
1.4. Objects and abstraction
1.4.1. Encapsulation
1.4.2. Composition
1.4.3. Dynamic allocation
1.4.4. Inheritance and polimorphism
1.4.5. Substitution principle
1.5. Graphical interfaces
1.5.1. Basic elements
1.5.2. Layout of elements
1.5.3. Signals and events
1.5.4. Animations

Bibliography

* P. Wentworth, J. Elkner, A.B. Downey, C. Meyers. How to Think Like a Computer Scientist. http://openbookproject.net/thinkcs/
* B. Stroustrup. Programming: Principles and Practice Using C++. Addison-Wesley (2009). 978-0321543721
* B. Eckel. Thinking in C++. Prentice-Hall (2000)
* D. Mandrioli, S. Ceri et al. Informatica arte e mestiere. McGraw-Hill (2008)

Teaching methods

Lessons in classroom, presenting slides which are provided in advance to students. Guided solution of exercises in classroom. Programming exercises in laboratory.

The laboratory exercitations are central for the course. The proposed exercises deal with the same general matters of classroom lessons. Their objective is introducing the principles of object-orientd programming, leading the student to the solution of problems with a growing level of complexity.

Assessment methods and criteria

The examination consists of a test about the basics of computer science (brief exercizes and quizzes to answer in about half an hour), a programming test (an object-oriented program to develop in lab, in about 3 hours) and a talk. A constant and particularly effective participation to exercitations could exonerate from the final programming test.

Other information

Alternative textbooks
* J.C. Lusth. The Art and Craft of Programming. http://beastie.cs.ua.edu/cs150/book/
* A. Koenig, B.E. Moo. Accelerated C++: Practical Programming by Example. Addison-Wesley (2000)
* E. Clementini. Fondamenti di Informatica – Programmazione strutturata in C++. Carocci (2006)
* H. Schildt. C++: A Beginner's Guide. McGraw-Hill (2003)
* S. Prata. C++ Primer Plus. Addison-Wesley (2011)
* L.J. Aguilar. Fondamenti di programmazione in C++. McGraw-Hill (2008)
* B. Eckel. Thinking in C++, vol. 2. Prentice-Hall (2003). 978-0131225527
* M. Dawson. Beginning C++ Through Game Programming. Course Technology (3rd ed., 2010). 978-1435457423
* M. Dawson. Python Programming for the Absolute Beginner. Course Technology (3rd ed., 2010). 978-1435455009
* J. Blanchette, M. Summerfield. C++ GUI Programming with Qt 4. Prentice Hall (2nd ed., 2008). 978-0132354165
* A. Lorenzi, V. Moriggia. Programmazione ad oggetti e linguaggio C++. Atlas (2004). 978-8826811956. (Testo per le scuole medie superiori)
* J.G. Brookshear. Informatica. Una panoramica generale. Pearson (2012)
* U. Avalle, L. Console, M. Ribaudo. Introduzione all'informatica. UTET (2010)

2030 agenda goals for sustainable development

- - -

Contacts

Toll-free number

800 904 084

Student registry office

E. segreteria.ingarc@unipr.it

Quality assurance office

Education manager:
Elena Roncai
T. +39 0521 903663
Office E. dia.didattica@unipr.it
Manager E. elena.roncai@unipr.it

 

President of the degree course

Gianluigi Ferrari
E. gianluigi.ferrari@unipr.it

Faculty advisor

Giovanna Sozzi
E. giovanna.sozzi@unipr.it

Career guidance delegate

Guido Matrella
E. guido.matrella@unipr.it

Tutor professor

Boni Andrea
E. andrea.boni@unipr.it
Caselli Stefano
E. stefano.caselli@unipr.it
Cucinotta Annamaria
E. annamaria.cucinotta@unipr.it
Nicola Delmonte
E. nicola.delmonte@unipr.it
Mucci Domenico
E. domenico.mucci@unipr.it
Saracco Alberto
E. alberto.saracco@unipr.it
Ugolini Alessandro
E. alessandro.ugolini@unipr.it
Vannucci Armando
E. armando.vannucci@unipr.it

Erasmus delegates

Paolo Cova
E. paolo.cova@unipr.it
Corrado Guarino
E. corrado.guarinolobianco@unipr.it
Walter Belardi
E. walter.belardi@unipr.it

Quality assurance manager

Massimo Bertozzi
E. massimo.bertozzi@unipr.it

Tutor students

SPAGGIARI Davide E. davide.spaggiari@unipr.it
MUSETTI Alex E. alex.musetti@unipr.it
BERNUZZI Vittorio E. vittorio.bernuzzi1@studenti.unipr.it
NKEMBI Armel Asongu E. armelasongu.nkembi@unipr.it
BASSANI Marco E. marco.bassani@unipr.it
ZANIBONI Thomas E. thomas.zaniboni@unipr.it
BOCCACCINI Riccardo E. riccardo.boccaccini@unipr.it
MORINI Marco E. marco.morini@unipr.it
SHOZIB Md Sazzadul Islam E. mdsazzadulislam.shozib@studenti.unipr.it