Foundations of Computing I (AINF1170)



Prof. Dr. Renato Pajarola, Prof. Dr. Davide Scaramuzza

Assistents: Lars Zawallich, Elia Kaufmann
Time: Tuesday 16:15-18:00 and Thursday 14:00-15:45 
Rooms: HAH E-03 and UZI Y15-G-40 
Language: English
OLAT: FS20 Foundations of Computing I
VVZ: Vorlesungsverzeichnis Foundations of Computing I (AINF1170)


The goal of this course is to introduce the students to the formal logical and mathematical models as well as discrete structures that build the foundation of computing, programming and algorithms. Students will learn the fundamental concepts of logic and discrete mathematics as used in computer science and its applications. In particular, in this course the skills of precise mathematical thinking and argumentation should be trained to express formal problems, give mathematically sound explanations and formulate logically correct proofs.

The lecture is targeted at first-year students within their BSc in computer science or similar.


Foundations of computing such as propositional and predicate logic, discrete mathematical structures as well as algorithm complexity, in particular:

  • Introduction to Mathematical Statements
  • Compound Logic Statements
  • Quantified Logic Statements
  • Number Theory and Proofs
  • Sequences, Induction and Recursion
  • Set Theory
  • Functions
  • Relations
  • Graphs and Trees
  • Analysis of Algorithms


The lecture is based on the following textbook:

Discrete Mathematics with Applications, by Susanna S. Epp, 4th Edition.

Lecture Material

The lecture material (slides, exercises etc.) will be available on the OLAT course website.


Participation and successfully passing the exercises, the mandatory in-class midterm exams during the semester, as well as the written final exam are required for completing the module.


Regular exercises will consist of assignments distributed and discussed via OLAT or in class. Participation in and submission of the exercises is required for completing the course.


The mandatory in-class midterm exams will be held on Thursday March 26. 2020 and Thursday April 30. 2020.

Final Exam

In order to be able to pass the module, you need to successfully participate in the exercises and pass the midterm exams. The lecture is eventually completed by also passing the written final exam. Place and date are published in the UZH course catalogue and on OLAT (see links above).