= Programming in Python (for quantitative biologists) = == Learning objectives and expected learning outcomes == The course introduces students to imperative programming by referring to the Python language. The course is divided in two parts: 1. Python and its object-oriented features; 1. Python libraries that can be useful in scientific computation and data analysis, in particular [https://numpy.org/ NumPy] and [https://pandas.pydata.org/ pandas]. Students will acquire the ability to write and tune a program that automatizes simple computational tasks; they will be able to understand how a small piece of Python code works, to find the reasons of a malfunction and to correct it appropriately. Moreover, students will be able to use the [https://numpy.org/ NumPy] and [https://pandas.pydata.org/ pandas] library to analyze tabular data. == A.A. 2021/22 == The course will take place in the second semester. Currently, we expect to lecture on-premises. Lectures will be also streamed with synchronous interaction with the instructors via MS Teams; recording of the lessons will NOT be available, but you can find some videos from last year course in the old web page linked below. [https://easystaff.divsi.unimi.it/PortaleStudenti/index.php?view=easycourse&form-type=attivita&include=attivita&anno=2021&attivita%5B%5D=ECF5B-5_1&visualizzazione_orario=cal&periodo_didattico=&_lang=en&list=0&week_grid_type=-1&ar_codes_=&ar_select_=&col_cells=0&empty_box=0&only_grid=0&highlighted_date=0&all_events=0&faculty_group=0# Official Timetable] ||= Lessons Rooms G30, 306, 504 (40h) =||Mo_7/3 Fr_11/3 Mo_14/3|| ||Mo_21/3 ''Tu_22/3 (14:30, Room 504)''||Mo_28/3 ''Tu_29/3 (14:30, Room 504)''||Mo_4/4 Fr_8/4 Mo_11/4 ''Tu_12/4 (14:30, Room 504)''||''Tu_26/4 (14:30, Room 504)''||Mo_2/5 Fr_6/5 Mo_9/5||Mo_23/5 Fr_27/5 Mo_30/5 Mo_6/6|| Mo_13/6 || ||= Labs, Room 306 (16h) =|| || Fr_18/3|| Fr_25/3|| Fr_1/4|| Fr_22/4|| Fr_29/4|| Fr_13/5|| Fr_10/6|| Fr_17/6|| ||= Setup =|| Scaffolded |||||||| Plain Python interpreter |||||||| Notebooks || During these hard times of physical distance it is important to keep a social proximity: subscribe to the forum on [https://pyqb.zulipchat.com/join/epco3qskgizgotkamnlfpujh/ Zulip] (use an `@studenti.unimi.it` email). === Syllabus * The Python programming language. * Native data types. * Functions, selections and iterations. * Basic data structures: lists, tuples, dictionaries. * Object-oriented encapsulation. * Iterators and generators. * Files. * Numpy multi-dimensional arrays and matrices. * Data manipulation and analysis with pandas. Any Python3 book can be used to support the learning of the general part, for example [https://link-springer-com.pros.lib.unimi.it/book/10.1007%2F978-3-030-20290-3 J. Hunt "A Beginners Guide to Python 3 Programming"] (The electronic version is free for Unimi students). [https://numpy.org/ NumPy] and [https://pandas.pydata.org/ pandas] have excellent online documentation. The examination is based on laboratory exercises. A final mark (on a 30 point scale) is given, by taking into account the knowledge of the subject and tools, and the clarity of the solutions. [[PageOutline]] == [=#old Previous years] == * [wiki:WikiStart@79 A.A. 2020/21]