Info
Foto sezione
Logo Bocconi

Course 2022-2023 a.y.

20591 - COMPUTER PROGRAMMING AND DATABASE SYSTEMS

DSBA
Department of Computing Sciences

Course taught in English

Go to class group/s: 23

DSBA (8 credits - I sem. - OB  |  SECS-S/01)
Course Director:
ANDREA CELLI

Classes: 23 (I sem.)
Instructors:
Class 23: ANDREA CELLI


Lezioni della classe erogate in presenza

Mission & Content Summary
MISSION

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.

CONTENT SUMMARY
  • A short introduction to Python.
  • Advanced programming techniques.
  • The Numpy scientific library.
  • Data manipulation with Pandas.
  • Object-oriented programming.
  • Relational databases (SQLite).
  • Non-relational databases (MongoDB).
  • Parallel and distributed computation (MapReduce).
  • Large scale data analysis with PySpark.

Intended Learning Outcomes (ILO)
KNOWLEDGE AND UNDERSTANDING
At the end of the course student will be able to...
  • Describe fundamental programming strategies.
  • Describe the functioning principles of database systems.
APPLYING KNOWLEDGE AND UNDERSTANDING
At the end of the course student will be able to...
  • Read/write advanced Python code.
  • Write object-oriented code.
  • Develop code for algorithmic problem solving.
  • Handle large-scale databases.

Teaching methods
  • Face-to-face lectures
  • Online lectures
  • Exercises (exercises, database, software etc.)
DETAILS

- 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 this assignments improves understanding of the theoretical concepts and complements them with hands-on knowledge of the programming tools and techniques.

 


Assessment methods
  Continuous assessment Partial exams General exam
  • Written individual exam (traditional/online)
  • x   x
    ATTENDING AND NOT ATTENDING STUDENTS
    • Continuous assessment will consist of programming assignments. Each assignment will cover one of the main topics of the course, and it will be given when the relevant part of the course is concluded. Assignments will be carried out via an online platform with automatic grading. They will contribute to a maximum of 16 out of 31 points of the final grade. For the first two exams after the end of the course (winter exam session), the students will have the option to cumulate the points obtained from the continuous assessment with a reduced final exam, which will give a maximum of 15 points. The total number of points is 31 for the final grade.
    • Alternatively, students can opt to do a full final exam for the whole 31 points (in which case the grades of the continuous assessment are discarded).
    • Written exams (both the reduced and the full version) consists of programming exercises to be performed in the computer room. The programming exercises aim to assess the understanding of fundamental programming strategies and the knowledge of database systems.

    Teaching materials
    ATTENDING AND NOT ATTENDING STUDENTS

    The textbooks are communicated prior to the start of the course. Handouts of each lecture and sample codes are provided.

    Last change 09/06/2022 14:25