20591 - COMPUTER PROGRAMMING AND DATABASE SYSTEMS
Course taught in English
Go to class group/s: 23
Synchronous Blended: Lezioni erogate in modalità sincrona in aula (max 1 ora per credito online sincrona)
The goal of the course is to provide the students with a wide range of skills and knowledge in computation and data management/analysis, which are extensively used throughout the whole education program. While not strictly mandatory, some previous exposure to computer programming (and in particular to the Python language) is highly recommended for this course.
- Python programming: basic and advanced programming techniques.
- Python scientific modules
- Object-oriented programming.
- Relational and non-relational databases
- Parallel and distributed computation (MapReduce).
- Large scale data analysis with PySpark.
- Describe fundamental programming strategies.
- Describe the functioning principles of database systems.
- Develop advanced object-oriented Python code
- Develop code for algorithmic problem solving.
- Organize and Use large-scale databases.
- Face-to-face lectures
- Exercises (exercises, database, software etc.)
- Face-to-face lectures will contain both theoretical and applied parts. During the applied part of the lecture, the instructor will solve, together with the class, some exercises pertaining to the concepts discussed in the theory section. Then, after a few guided exercises, students can apply autonomously the techniques illustrated during the course, and they are encouraged to propose and discuss their solutions with the rest of the class.
- Exercises consist in programming assignments to be done in class under the supervision of the Instructor and the Teaching Assistants, or at home. Solving the assignments improves understanding of the theoretical concepts and complements them with hands-on knowledge of the programming tools and techniques.
Students can take the exam in two ways:
- with assignments and a short general exam taken in only one of the two Winter sessions. The short exam contains two parts: one about Python and the other about Databases. If the short exam is passed in both parts, then the final grade will come from the assignments' grade (50%) and the short general exam grade (50%). If either of the two parts is not passed, the overall exam is not passed.
- with the complete general exam, worth 100% of the final grade.
All assignments and exams consist of programming exercises to be solved in the computer room. The programming exercises aim to assess the understanding of fundamental programming strategies and the knowledge of database systems. Collectively, the exercises will test the ability of students to develop advanced Python code, using object-oriented techniques, for algorithmic problem solving. Moreover, they will test for the ability of organizing and managing large-scale databases.
The textbooks are communicated prior to the start of the course. Handouts of each lecture and sample codes are provided.