FUNDAMENTALS OF COMPUTER SCIENCE + PROGRAMMING LABORATORY (MODULE 2)
cod. 1004158

Academic year 2012/13
1° year of course - First semester
Professor
Academic discipline
Sistemi di elaborazione delle informazioni (ING-INF/05)
Field
Abilità informatiche e telematiche
Type of training activity
More
21 hours
of face-to-face activities
3 credits
hub: -
course unit
in - - -

Learning objectives

Learning the basic concepts of computer science and being able to develop simple computer programs, following the object-oriented paradigm. The main programming language used in this course is C++.

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

C++ language, data collections and streams, functions, classes and objects, graphical interfaces, memory management.

Full programme

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.

1. The C++ language: program structure. elementary data types, constants, variables, expressions, condictions, cycles, nesting.
2. Data collections and streams: vectors, matrices, maps, reading and writing data, console, files, strings.
3. Functions: scope of identificators, parameter passing methods, stack and activation records, recursion.
4. Classes and objects: encapsulation, dynamic allocation of objects, associations among classes, inheritance and polimorphism.
5. Graphical interfaces: Qt libraries, layout of elements, buttons, menus, signaling mechanisms, events, timers, scenes with animated elements.
6. Memory management: iterators, pointers, arrays, arrays of characters, dynamic memory management.

Bibliography

B. Stroustrup: Programming: Principles and Practice Using C++ - Addison-Wesley (2009) - 978-0321543721
B. Eckel: Thinking in C++. Prentice-Hall (2000).
A. Koenig, B.E. Moo: Accelerated C++: Practical Programming by Example. Addison-Wesley (2000).

Teaching methods

Programming exercises in laboratory.

Assessment methods and criteria

The examination consists of a test about theory (brief exercizes and quizzes to answer in about half an hour), a programming test (an object-oriented program in C++, to develop 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.G. Brookshear: Informatica. Una panoramica generale. Pearson (2012).
U. Avalle, L. Console, M. Ribaudo. Introduzione all'informatica. UTET (2010).

E. Clementini: Fondamenti di Informatica – Programmazione strutturata in C++. Carocci (2006).
B. Stroustrup: Programming: Principles and Practice Using C++. Addison-Wesley (2008).
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).