Mathematical Methods for Computer Science (2018/2019)

Course code
Name of lecturer
Ugo Solitro
Ugo Solitro
Number of ECTS credits allocated
Academic sector
Language of instruction
I semestre dal Oct 1, 2018 al Jan 31, 2019.

Lesson timetable

Go to lesson schedule

Learning outcomes

The course aim is exploring the fundamentals of algorithms, programming languages and paradigms in a didactic and applicative perspective. We will analyze, plan and develop methodologies for teaching and learning informatics as a scientific discipline and, in particular, the use of programming languages. Techniques of constructive problem solving and cooperative development methodologies will be examined. At the end of the course the student shall have achieved - familiarity with the fundamental principles of the different languages; - confidence with the different programming styles; - practical knowledge of at least two programming languages; - ability to deal with any programming language or environment for the development of solutions; - mastery in using the knowledge and skills acquired both in an educational and in an applicative context.



The course covers the themes and activities described below.

- Effective computational systems and algorithms: abstract machines, recursive and computable functions, rewriting systems; functional and object oriented models.
- Types, Logic and Languages.
- Programming paradigms: imperative, functional, logical and object oriented styles.
- Foundations of Object Oriented Programming Languages.
- Introduction to paradigmatic languages and
- Development of projects of mathematical, educational and application interest.


The teaching is divided according to two distinct modes.

- Presentation and study of the topics listed above.
- Development of activities and projects in relation to the topics covered.

In-depth and project activities (even practical) can emphasize educational, theoretical and/or applicative aspects according to the individual students' curriculum.

(last update: 26/09/2018)

Reference books
Author Title Publisher Year ISBN Note
O. Hazzan, T. Lapidot, N. Ragonis Guide to Teaching Computer Science (Edizione 2) Springer 2015 978-1-4471-6629-0 General reference textbook
Mirabel Fernandez Models of Computation: An Introduction to Computability Theory Springer Verlag 2009 9781848824348

Assessment methods and criteria

The final exam consists of two parts: a written test and an oral exam.

The written test can include general questions, exercises.

The final oral exam is a discussion on the examination papers, the activity and the subject matter of the course.

The admission to the oral exam is subject to the approval of the written test.

The final written exam can be partially replaced by tasks completed during the term or the development of a project.

The candidate must demonstrate that he has achieved the following knowledge and skills.

- Understand the fundamental principles of programming languages and paradigms, and the mathematical foundations of programming languages;
- Being able to effectively use programming language, and discussing principles and specific problems, in particular, with reference to course content;
- Know how to use knowledge acquired in applications and / or in an educational context.