INFORMATICS

Course objectives

Learning goals. The main goal of the course is to give basic knowledge of computer science, to provide the tools for understanding what a computational problem is and which kind of logical reasoning may lead to its solution. In the meantime we want to work on programming skills (e.g. Python programming) and on querying relational databases. Knowledge and understanding. At the end of the course the students will know what an algorithm is, what difference exists between data and its representation, how to reason using abstraction techniques. They will be able to code in Python to solve new problems, using as well the theoretical knowledge of algorithm analysis. They will know how relational databases are organized, and will learn the SQL language, useful to query them. Applying knowledge and understanding. Learing about the theory of algorithms and a programming language allows the students to solve new computational problems in a flexible way. Making judgements. Algorithmic thinking (also called computational thinking), which is trained by the students during this course, gives tools and techniques for rigorous and non-ambiguous analysis of problems, using only relevant information. Communication skills. Students learn the technical and scientific language of computer science, which must be appropriately used in written and viva exams. Moreover writing code documentation trains the students to explain their work with clarity. Learning skills The course show the students new concepts (e.g. programming, theory of algorithms). The effort required to understand and apply these concepts allows them to study and evaluate new techniques and programming languages.

Channel 1
DONATELLA FIRMANI Lecturers' profile

Program - Frequency - Exams

Course program
See http://www.massimolauria.net/informatica2023/ ** History of Computer Science and its evolution. - algorithms - data representation - text and numbers encoding - binary, decimal, exadecimal representation - ASCII, UTF-8, Latin1 ** Technical skills - files and folders, file system structure - terminal - Linux usage in the lab - moving between folders and run python programs ** Programming in Python Chapters and parts of textbook /Thinking in Python/ di Allen B. Downey ed. 2.2.23 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12.1-12.3, 13.1-13.5, 14.1-14.5, 19.1-19.2, Appendice A, Appendice B - variables, expressions and statements - numeric data types - calling and defining functions - conditional statements - loop statements - iteration and recursion - stack diagrams and recursion limits - data types: strings and text manipulation - lists and data sequences - dictionaries - file manipulation - exceptions - conditional expressions, list comprehension ** Development tools - interactive Python interpreter - text editors - IDE (Thonny) ** Efficient algorithms - Complexity growth - $O$ notation - sequential search and binary search - recursion, call stack, Fibonacci sequence - Greatest Common Divisor (Euler's algorithm) - Insertion sort - Mergesort - stable sorting - stack calls, recursion Lecture notes by the teachers: chapters 1, 2, 3, 7, 8, 9, 11
Prerequisites
As a first year course there are no prerequisites.
Books
Book and lecture notes - Thinking in Python --- Allen B. Downey - Appunti su algoritmi e complessità --- Massimo Lauria Slides on the course webpage See http://www.massimolauria.net/informatica2023/
Teaching mode
In 2020/2021 lecture have been a mix of presence/remote. Students have been alternating between remote and live lectures.
Frequency
Attending class is not mandatory.
Exam mode
See: https://www.massimolauria.net/informatica2023/esami.html
Bibliography
The theory part of the course is further developed in the book Introduction to Algorithms. by Thomas H. Cormen, Charles E. Leiserson, e al.
Lesson mode
In 2020/2021 lecture have been a mix of presence/remote. Students have been alternating between remote and live lectures.
DONATELLA FIRMANI Lecturers' profile

Program - Frequency - Exams

Course program
History of computer science and its evolution. - algorithms - representation of data - encoding of text and numbers - binary, decimal, hexadecimal representation - ASCII, UTF-8, Latin1 ** Programming in Python Chapters and parts of the textbook / Thinking in Python / by Allen B. Downey ed. 2.2.23 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12.1-12.3, 13.1-13.5, 14.1-14.5, 19.1-19.2, Appendix A, Appendix B - variables, expressions and statements - numeric data types - calling and defining functions - conditional statement - iteration statement - iteration and recursion - stack diagrams and recursion bounds - data types: strings and text manipulation - lists and sequences of data - dictionaries - file manipulation - exception handling - conditional expressions, list comprehension ** Development tools - interactive Python interpreter - text editor - IDE (Thonny) ** Efficient algorithms - Complexity of algorithms - Big O notation - sequential search and binary search - recursion, call stack, Fibonacci successon - maximum common divisor (Euler's method) - Sorting by insertion - Mergesort - stable sorting - numerical algorithms Teacher's notes: chapters 1, 2, 3, 7, 8, 9, 11
Prerequisites
None
Exam mode
he examination will consist of a test including: computer-based programming exercises with automated tests, closed-ended and open-ended theory questions, followed by a possible interview at the discretion of the teacher. There will be no intermediate tests. The Python programming practice test will be conducted on the computer, in a manner very similar to that used during the laboratory exercises. It is recommended that you practice the test in the same manner as described in the Lab exercises, using the test files. Check the Moodle website for further details https://elearning.uniroma1.it/course/view.php?id=15154
Lesson mode
Traditional in-person Lectures with PC lab activities
Channel 2
MASSIMO LAURIA Lecturers' profile

Program - Frequency - Exams

Course program
See http://www.massimolauria.net/informatica2023/ ** History of Computer Science and its evolution. - algorithms - data representation - text and numbers encoding - binary, decimal, exadecimal representation - ASCII, UTF-8, Latin1 ** Technical skills - files and folders, file system structure - terminal - Linux usage in the lab - moving between folders and run python programs ** Programming in Python Chapters and parts of textbook /Thinking in Python/ di Allen B. Downey ed. 2.2.23 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12.1-12.3, 13.1-13.5, 14.1-14.5, 19.1-19.2, Appendice A, Appendice B - variables, expressions and statements - numeric data types - calling and defining functions - conditional statements - loop statements - iteration and recursion - stack diagrams and recursion limits - data types: strings and text manipulation - lists and data sequences - dictionaries - file manipulation - exceptions - conditional expressions, list comprehension ** Development tools - interactive Python interpreter - text editors - IDE (Thonny) ** Efficient algorithms - Complexity growth - $O$ notation - sequential search and binary search - recursion, call stack, Fibonacci sequence - Greatest Common Divisor (Euler's algorithm) - Insertion sort - Mergesort - stable sorting - stack calls, recursion Lecture notes by the teachers: chapters 1, 2, 3, 7, 8, 9, 11
Prerequisites
As a first year course there are no prerequisites.
Books
Book and lecture notes - Thinking in Python --- Allen B. Downey - Appunti su algoritmi e complessità --- Massimo Lauria Slides on the course webpage See http://www.massimolauria.net/informatica2023/
Teaching mode
In 2020/2021 lecture have been a mix of presence/remote. Students have been alternating between remote and live lectures.
Frequency
Attending class is not mandatory.
Exam mode
See: https://www.massimolauria.net/informatica2023/esami.html
Bibliography
The theory part of the course is further developed in the book Introduction to Algorithms. by Thomas H. Cormen, Charles E. Leiserson, e al.
Lesson mode
In 2020/2021 lecture have been a mix of presence/remote. Students have been alternating between remote and live lectures.
Channel 3
PAOLO GIULIO FRANCIOSA Lecturers' profile

Program - Frequency - Exams

Course program
See http://www.massimolauria.net/informatica2023/ ** History of Computer Science and its evolution. - algorithms - data representation - text and numbers encoding - binary, decimal, exadecimal representation - ASCII, UTF-8, Latin1 ** Technical skills - files and folders, file system structure - terminal - Linux usage in the lab - moving between folders and run python programs ** Programming in Python Chapters and parts of textbook /Thinking in Python/ di Allen B. Downey ed. 2.2.23 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12.1-12.3, 13.1-13.5, 14.1-14.5, 19.1-19.2, Appendice A, Appendice B - variables, expressions and statements - numeric data types - calling and defining functions - conditional statements - loop statements - iteration and recursion - stack diagrams and recursion limits - data types: strings and text manipulation - lists and data sequences - dictionaries - file manipulation - exceptions - conditional expressions, list comprehension ** Development tools - interactive Python interpreter - text editors - IDE (Thonny) ** Efficient algorithms - Complexity growth - $O$ notation - sequential search and binary search - recursion, call stack, Fibonacci sequence - Greatest Common Divisor (Euler's algorithm) - Insertion sort - Mergesort - stable sorting - stack calls, recursion Lecture notes by the teachers: chapters 1, 2, 3, 7, 8, 9, 11
Prerequisites
As a first year course there are no prerequisites.
Books
Book and lecture notes - Thinking in Python --- Allen B. Downey - Appunti su algoritmi e complessità --- Massimo Lauria Slides on the course webpage See http://www.massimolauria.net/informatica2023/
Teaching mode
In 2020/2021 lecture have been a mix of presence/remote. Students have been alternating between remote and live lectures.
Frequency
Attending class is not mandatory.
Exam mode
See: https://www.massimolauria.net/informatica2023/esami.html
Bibliography
The theory part of the course is further developed in the book Introduction to Algorithms. by Thomas H. Cormen, Charles E. Leiserson, e al.
Lesson mode
In 2020/2021 lecture have been a mix of presence/remote. Students have been alternating between remote and live lectures.
PAOLO GIULIO FRANCIOSA Lecturers' profile

Program - Frequency - Exams

Course program
History of computer science and its evolution. - algorithms - representation of data - encoding of text and numbers - binary, decimal, hexadecimal representation - ASCII, UTF-8, Latin1 ** Programming in Python Chapters and parts of the textbook / Thinking in Python / by Allen B. Downey ed. 2.2.23 1, 2, 3, 5, 6, 7, 8, 9, 10, 11, 12.1-12.3, 13.1-13.5, 14.1-14.5, 19.1-19.2, Appendix A, Appendix B - variables, expressions and statements - numeric data types - calling and defining functions - conditional statement - iteration statement - iteration and recursion - stack diagrams and recursion bounds - data types: strings and text manipulation - lists and sequences of data - dictionaries - file manipulation - exception handling - conditional expressions, list comprehension ** Development tools - interactive Python interpreter - text editor - IDE (Thonny) ** Efficient algorithms - Complexity of algorithms - Big O notation - sequential search and binary search - recursion, call stack, Fibonacci successon - maximum common divisor (Euler's method) - Sorting by insertion - Mergesort - stable sorting - numerical algorithms Teacher's notes: chapters 1, 2, 3, 7, 8, 9, 11
Prerequisites
As a first year course there are no prerequisites.
Books
Thinking in Python --- Allen B. Downey Notes on algorithms and complexity --- by prof. Massimo Lauria
Teaching mode
In 2020/2021 lectures have been a mix of presence/remote. Students have been alternating between remote and live lectures.
Frequency
Attending classes is not mandatory.
Exam mode
The examination will consist of a test including: computer-based programming exercises with automated tests, closed-ended and open-ended theory questions, followed by a possible interview at the discretion of the teacher. There will be no intermediate tests. The Python programming practice test will be conducted on the computer, in a manner very similar to that used during the laboratory exercises. It is recommended that you practice the test in the same manner as described in the Lab exercises, using the test files.
Lesson mode
In 2020/2021 lectures have been a mix of presence/remote. Students have been alternating between remote and live lectures.
  • Lesson code1017587
  • Academic year2024/2025
  • CourseStatistics, Economics, Finance and Insurance
  • CurriculumCurriculum unico
  • Year1st year
  • Semester1st semester
  • SSDINF/01
  • CFU9
  • Subject areaInformatico