= 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. 2022/23 == The course will take place in the first semester. Currently, we expect to lecture on-premises, lectures will NOT be also streamed. You can find some videos from last year course in the 2020/21 web page linked below. [https://easystaff.divsi.unimi.it/PortaleStudenti/index.php?view=easycourse&form-type=attivita&include=attivita&anno=2022&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 Farina (Tu), G15 (Th) (40h) =||Tu_4/10 Th_6/10 Tu_11/10||Tu_18/10 Th_20/10||Tu_25/10 Th_27/10||Th_3/11 Tu_8/11 Th_10/11 Tu_15/11||Tu_22/11 Th_24/11 Tu_29/11||Tu_6/12 Tu_13/12 Th_15/12||Tu_20/12 Tu_10/1 Th_12/1|| ||= Labs, Room Delta (16h) =|| Fr_14/10|| Fr_21/10|| Fr_4/11|| Fr_18/11|| Fr_2/12|| Fr_9/12 Fr_16/12|| Fr_13/1|| ||= Setup =|| Scaffolded |||||||| Plain Python interpreter |||||||| Notebooks || === 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]] == 2022/23 == === 1. October 4 10:30 Room Farina === == [=#old Previous years] == * [wiki:WikiStart@132 A.A. 2021/22] * [wiki:WikiStart@79 A.A. 2020/21]