- Docente: Marco Patella
- Credits: 9
- Language: Italian
- Teaching Mode: Traditional lectures
- Campus: Bologna
- Corso: First cycle degree programme (L) in Engineering Management (cod. 0925)
Learning outcomes
Basic and operating knowledge of computer architecture and of principles of object-oriented programming. Analysis of computational complexity. Concepts of relational databases.
Course contents
1. Computer Architecture
General architecture of a computer. Von Neumann machine. Memory
devices.
2. Computer software
The operating system. Tools for programming: editors,
debuggers, compilers, and interpreters. Development phases of a
program.
3. Programming concepts
Methods for problem solving. Algorithms. Methodologies of
structured and modular programming. Iteration and recursion.
4. Programming languages
Programming languages: concepts and history. Syntax and
semantics.
5. Java Language
Introduction to object-oriented programming.
Object-oriented paradigm. Fundamenals of the Java programming
language. Algorithms and data structures in Java. Inheritance.
Advanced data structures in Java.
6. Computational Complexity
Different types of computational complexity. Cost models.
Complexity in terms of elementary instructions. Asymptotic
complexity.
7. Relational Databases
Concepts of the relational model.
Readings/Bibliography
- D. Sciuto, G. Buonanno, L. Mari: Introduzione ai sistemi informatici, V edizione. McGraw-Hill
- W. Savitch: Programmazione con Java, II edizione. Pearson
Teaching methods
The course is provided by means of slides displayed during lecture hours. Slides correspond to the content of the official book adopted for the course.
Lectures are integrated with computer-based experiences in a laboratory, held by the tutor: each experience tackles a particular theme, for which real problems are proposed; such problems are to be solved using the knowledge obtained during lecture hours.
Fluent spoken and written italian is a necessary pre-requisite: all lectures and tutorials, and all study material will be in italian.Assessment methods
Achievements will be assessed by the means of a final exam. This is based on an analytical assessment of the "expected learning outcomes" described above. In order to properly assess such achievement the examination is composed of a written session (2.5 hours long, without the help of books or notes), possibly followed by an oral exam.
In order to be accepted to the written exam, the student should register through the AlmaEsami application.
The written exam usually consists of 6 exercises, with 2 open questions, 1 exercise on the binary representation of numbers, 1 exercise on temporal complexity, and 3 exercises on Java programming. In order to pass the written exam, a minimum score of 15 points is needed, with at least 0.5 points obtained in the open questions.
The oral session is required only in the case the score obtained in the written exam does not exceed 17, or when requested by the teacher. The oral session consists of a technical conversation with the teacher in order to demonstrate a knowledge of the key concepts of the subject. The oral exam should be taken in the same session of the written exam.
Teaching tools
Classroom lessons will be held using slides, which will be integrated with the use of the blackboard for the development of exercises.
Lab hours are supported by the tutor of the course. Students will be assigned a PC, so as to practice the concepts learned during the lessons, and to improve their programming capabilities. In any case, students are eligible to pass the exam (even achieving the maximum score) without attending lab hours.
Links to further information
http://www-db.disi.unibo.it/courses/FIT1-AK/
Office hours
See the website of Marco Patella