COMPUTER SCIENCE AND PROGRAMMING LABORATORY
cod. 1007069

Academic year 2021/22
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
72 hours
of face-to-face activities
9 credits
hub: PARMA
course unit
in ITALIAN

Learning objectives

The main goal of the course is to provide students with the ability to understand the principles of informatics and programming:
- Formal logic reasoning
- Data representation
- Computation, languages, abstract machines
- 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
- Modeling 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 computer science: logic, data representation, software development, theory of computation
2. Introduction to programming: algorithms, functions, objects, lists, composition, abstraction

Full programme

1. Introduction to computer science
1.1 Logic: boolean algebra, predicate logic
1.2 Data representation: numbers, texts, images, sounds
1.3 Software development: lifecycle, quality, testing
1.4 Theory of computation: languages, automata, complexity

2. Introduction to programming
2.1 Algorithms in Python
2.2 Functions, objects
2.3 Lists, composition, abstraction
2.4 Recursion
2.5 Files, matrices
2.6 Introduction to modern C++

Bibliography

- Informatica e Laboratorio di Programmazione (A.A. 2019-2020), McGraw-Hill 2019. ISBN 978-1307457001 (~26€, ~300pp., nelle librerie universitarie, su Amazon ecc.)
- A.B. Downey: Think Python 2e - https://github.com/AllenDowney/ThinkPythonItalian
- A.B. Downey: How to Think Like a Computer Scientist C++ Version - http://greenteapress.com/thinkcpp/
- M. Beri: Python 3, Apogeo Pocket 2010, 978-8850329151 (~8€)

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

http://tomamic.github.io/