### Indice

# Programming for Data Science A.Y. 2023/24

This is an introductory course to computer programming and related mathematical/logic background for students without a Bachelor in Computer Science or in Computer Engineering. The objective is to smoothly introduce the student to the programming concepts and tools needed for typical data processing and data analysis tasks. The course consists of lectures and practice in computer labs.

The course is **ANNUAL**: so, classes will start in September and finish in May. Hence, the first exam date for students attending the course this year for the first time will be at the end of May: there will be a written/lab exam first, if you succeed, then you are admitted to the second part of the exam, the oral.

As a facilitation, we allow students who wish to do so, to take a partial test (a midterm) during the winter exam session (which is for A.Y. 22/23 students). If interested, we ask you to send us an email (with subject MidTerm_P4DS) a week before the exam asking us to attend the midterm, for organizational reasons.

## Instructors

**Salvatore Trani**- ISTI-CNR and Università di Pisa

**Laura Semini**- Università di Pisa
- Office Hours: Thursday 9-11 (not on march 7th)

Lessons: ~~first semester on Wednesday 16-18 and Friday 14-16, room H;~~ Second semester on Wednesday 14-16 (Fib E) and Thursday 11-13 (Fib C)

Course slides & other material on **Teams: “667AA 23/24 - PROGRAMMING FOR DATA SCIENCE [WDS-LM]”, https://teams.microsoft.com/l/team/19%3ajiJs1z1bW5HinlbZkWvktsol65Y19Ix0dJ7FS9sQnPY1%40thread.tacv2/conversations?groupId=0f25d973-7388-4c24-b3a4-c2c13bf054dd&tenantId=c7456b31-a220-47f5-be52-473828670aa1**

## Text Books

**[LA]**Mike X Cohen*Linear Algebra: Theory, Intuition, Code*2021**[T]**Kenneth H. Rosen.*Discrete Mathematics and Its Applications*. MCGraw-Hill. Supplement material (including Errata-Corrige).**[T]**“Linear Algebra: Theory, Intuition, Code” by Mike X Cohen, chapters: Vectors; Vector multiplication; Matrices; Matrix multiplication; Rank; Determinant; Matrix inverse; Eigendecomposition**[P]**Pieter Spronck.*The Coder’s Apprentice: Learning Programming with Python 3*, 2017. Book and supplement material.**[C]**Brian W. Kernighan, Dennis M. Ritchie.*C Programming Language*. Second Edition, Prentice Hall, 1988.

## Software

**Python programming:**Anaconda distribution of Python 3. Computers at lab rooms include it both on Linux and Windows OS.**C programming (Windows)**Either DevC++ (already installed on LabMachines) or install CygWin (not on lab machines – on your PC) or install a Virtual Machine (such us VirtualBox) running any Linux distribution.**Editor for C files on Windows**Either use the DevC++ editor, or use Notepad++ .**Unix Shell**Either use Linux on lab machines, or install CygWin (on your PC).**Python/C online**including visualization of memory state PythonTutor.**Jupyter Notebooks**shown during theory classes GitHub

## Previous years

- Programming for Data Science A.Y. 2022/23: on Teams
- Programming for Data Science A.Y. 2021/22: on Teams
- Programming for Data Science A.Y. 2020/21: on Teams
- Programming for Data Science A.Y. 2018/19 Recordings of lessons are available, and are password protected. Ask the teachers for credentials.
- A.Y. 2020/21 the course will use Classroom/Meet as streaming platform and material repository: https://classroom.google.com/c/MTU5MjgxMjM2MzU5?cjc=y3qj2ft