Skip to main content
CODE 86755
ACADEMIC YEAR 2024/2025
CREDITS
SCIENTIFIC DISCIPLINARY SECTOR ING-INF/05
LANGUAGE Italian
TEACHING LOCATION
  • GENOVA
SEMESTER 2° Semester
TEACHING MATERIALS AULAWEB

OVERVIEW

The course studies the main theoretical models of computer science (grammars and automata) and provides elements of object-oriented design and programming in C++ language aimed at creating a project that exploits the themes introduced in the theoretical part.

AIMS AND CONTENT

LEARNING OUTCOMES

The student will be able to understand and apply the basic formal models of computer science

AIMS AND LEARNING OUTCOMES

Specifically, te student will be able to:

- given a formal language, understand from which type of grammar it can be generated and which automaton will be able to recognize the strings of the language

- design and implement object oriented applications in C++

- create an interpreter for a simple programming language

PREREQUISITES

Set up and solve problems algorithmically using a programming language. Basic knowledge of algebra and combinatorics.

TEACHING METHODS

The course consists of theory lessons, for a total of approximately 24 hours, and a practical part, of approximately 24 hours. All lessons will be held by the teachers in charge of teaching.

SYLLABUS/CONTENT

The course program includes the presentation and discussion of the following topics:

- Regular expressions and finite state automata
- Context-free grammars and push. automata
- Object-oriented design: UML class diagram and Design Pattern
- Programming in C++ language: use of strings and dynamic vectors, inheritance and polymorphism, generic programming, exception management, use of the Standard Template Library, advanced C++ 20 concepts (views, streams, iterators, anonymous functions), use of smart pointers
 

RECOMMENDED READING/BIBLIOGRAPHY

All the slides used during the lessons and other teaching material (e.g. exercises) will be available on aulaweb. In general, the notes taken during the lessons and the material on aul@web are sufficient for exam preparation.

The books indicated below are suggested as supporting texts:

(Theory) Hopcroft, Motwani, Ullman - Introduction to Automata Theory, Languages, and Computation (3rd edition) - Pearson

(Practical) Ray Lischner - Exploring C++ 20 (3rd edition) - Apress

TEACHERS AND EXAM BOARD

Exam Board

ARMANDO TACCHELLA (President)

LUCA ONETO

ENRICO GHIORZI (President Substitute)

LESSONS

Class schedule

The timetable for this course is available here: Portale EasyAcademy

EXAMS

EXAM DESCRIPTION

The exam consists of a written test and a project, both compulsory.

The test requires solving two exercises on the theoretical topics of the course (accessory material NOT available for consultation)

The project requires the design and development of an interpreter in C++ language.

Students with certification of Specific Learning Disabilities (SLD), disabilities, or other special educational needs must contact the instructor at the beginning of the course to agree on teaching and examination methods that, while respecting the course objectives, take into account individual learning styles and provide appropriate compensatory tools. It is reminded that the request for compensatory/dispensatory measures for exams must be sent to the course instructor, the School representative, and the “Settore servizi per l'inclusione degli studenti con disabilità e con DSA” office (dsa@unige.it) at least 10 working days before the test, as per the guidelines available at the link: https://unige.it/disabilita-dsa


 

ASSESSMENT METHODS

Details n how to prepare for the exam and the required level of depth for each topic will be given during the lessons.

The written exam will verify the actual acquisition of knowledge, skills and abilities by carrying out exercises on the theoretical topics of the course.

The project will verify the effective acquisition of knowledge, skills and abilities on a broader spectrum including theory, programming and their interaction.

Agenda 2030 - Sustainable Development Goals

Agenda 2030 - Sustainable Development Goals
Quality education
Quality education
Gender equality
Gender equality
Decent work and economic growth
Decent work and economic growth
Industry, innovation and infrastructure
Industry, innovation and infrastructure