Strumenti Utente

Strumenti Sito


Programming for Data Science A.Y. 2018/19

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.



Day of Week Hour Room Type
Monday 11:00 - 13:00 Fib C1 Lectures
Tuesday 9:00 - 11:00 Fib N1 Lectures
Wednesday 16:00 - 18:00 Fib M-Lab Labs
Thursday 11:00 - 13:00 Fib M-Lab Labs

Office hours

  • Prof. Prencipe: Wednesdays h 15:00 - 19:00 or by appointment, Department of Computer Science, room 327/DO.
  • Prof. Rossetti: TBA

Text Books

  • [T] Kenneth H. Rosen. Discrete Mathematics and Its Applications. Seventh Edition, MCGraw-Hill, 2012. Supplement material (including Errata-Corrige).
  • [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.
  • [A] David A. Patterson,‎ John L. Hennessy. Computer Organization and Design. Fifth Edition, The Morgan Kaufmann Series in Computer Architecture and Design, 2014. MKComputerOrganizationAndDesign-1stChapter.pdf
  • [O-it] Paolo Ancilotti, Maurelio Boari, Anna Ciampolini, Giuseppe Lipari. Sistemi Operativi. McGraw-Hill, 2008
  • [O-en] Abraham Silberschatz, Peter B. Galvin, Greg Gagne. Operating System Concepts, 9th Edition International Student Version, 2013


  • Python programming: Anaconda distribution of Python 3. Computers at lab rooms include it both on Linux and Windows OS.
  • C programming: either gedit (or equivalent text editor) and gcc. If you do not have gcc on your machine, check next item. Gedit and gcc are available on computers at lab room (Linux only).
  • Compile C on lab machines (Windows) Use DevC++.
  • Editor for C files Either use the DevC++ editor, or use Notepad++ .
  • Python/C online including visualization of memory state PythonTutor.

Preliminary program and calendar


Registration to exams is mandatory: register here

IMPORTANT: To be able to solve the C exercises during the exam, you need to use DevC++ installed in the Windows partition of the computers' lab. Please, read carefully the instructions in the Software section above.

Class calendar

Recordings are password protected. Ask the teachers for credentials.

Day Room Topic Learning material Recordings Instructor
1. 17.9 11:00-13:00 C1 Introduction. Propositional logic. [T: 1.1-1.3] 20170918.flv20180917_en.mp4 Prencipe
2. 18.9 9:00-11:00 N1 Exercises. Rules of inference for propositional logic. [T: 1.6] 20170919.flv20180918_en.mp4 Prencipe
3. 19.9 16:00-18:00 M-Lab Architectures and hardware design. [A: 1] 20171113.pdf20171114.mp420180919_en.mp4 Prencipe
4. 20.9 11:00-13:00 M-Lab Algorithms and programming: notions, programming steps, states, expressions and assignment. Introduction to Python. Data types, expressions using numbers, variables. [P: 1-4] 20170920.mp420180920_en.mp4 Prencipe

Previous years

mds/pds/start.txt · Ultima modifica: 20/09/2018 alle 12:44 (41 ore fa) da Giuseppe Prencipe