Computer Science - A.Y. 2020-21

MEDTEC School

course objectives

Introductory course to problem solving and computer programming in Python. Goal of the course is to enable students to:

  • given a problem, identify an algorithm that solves it and write a Python program implementing it;
  • write, read and understand a Python program;
  • excute a Python program;

These competences will be later used in other courses.

informazioni generali

Cristiana Bolchini
Telefono: (02 2399) 3619
Email: cristiana . bolchini @ polimi . it

 

Gian Enrico Conti
Email: gianenrico . conti @ polimi . it

schedule

lectures & exercises

Tuesday 14:15 - 17:15 | 25.0.2
Wednesday 09:15 - 12:15 | 25.0.2

 

Q&A - ONLINE

Tuesday 17:30 - 18:30 (by appointment)

risorse

  • course flyer 
  • data types 
  • cheatsheet 
  • Program

    The course is organized in lectures and practical sessions, and will cover the following topics:

    • computer architecture basics
    • information representation (integers, floating points, characters)
    • algorithms
    • fundamental aspects: structure of a Python program, built-in basic types and arithmetic/logical operators, statements, input/output, basic control structures/statements
    • complex data types (lists, dictionaries, sets) and built-in methods
    • functions, parameters and scopes
    • files

    texts

    Python manuals

    • Mark Lutz, Python Pocket Reference, O'Reilly
    • J. Hunt, A Beginners Guide to Python 3 Programming, Springer
    • any book you find

    exam

    The exam can be taken in each one of the scheduled sessions in January-February, July and September.
    The exam consists of the oral discussion of a programming project to be developed autonomously on an assigned topic to be turned in a week before the exam date.
    The topic of the project will be made available at least 15 days in advance.

    The programming project will be evaluated in terms of the quality of the adopted choices with respect to adopted data structures and solving algorithms and the correctness of the proposed solutions. The exam is passed upon obtaining a score equal or greater than 18/30, being the maximum score 30/30.

    The programming project will allow students to demonstrate their:

    • degree of knowledge and understanding of the fundamental aspects of the course
    • the ability to apply the above-mentioned knowledge to solve exercises and realistic problems

    practical sessions

    The focus of the course is on enabling the design and development of a good solution to solve a given problem, by means of a Python program. The use of the computer to be able to execute the program is encouraged, and students should bring their computer to class for practical sessions.

    development environment: linux/unix

    • editor: no IDE, a simple text editor, with syntax highlighting featuers (unix/linux: gedit - mac: TextMate, SublimeText, windows: Notepad++, SublimeText)
    • execution: python downloads (version 2.7 I will explain differences)

    Those who own a mac can use the system as it is, using the terminal. However, the system comes with python 2.7 installed, and you can keep that version, paying attention to (limited) syntax differences.

    Those who have a Windows 10 system can follow the instructions to quickly install python 3.7 (https://docs.microsoft.com/en-us/windows/python/beginners or google for help).

    You can also install Jupyter Notebook (https://jupyter.org/): an open-source web application that allows you to create and share documents that contain live code, equations, visualizations and narrative text.
    It is not the preferred solution though.

    contacts

    To get in touch with me, please send an email with the subject starting with [CS] and make sure to sign it. I am available during office hours and during other moments to be arranged.

    Calendar 2020-21: tentative

    lectureexercisesotherbreak

    CB   GC

    day topic detail who
    October 06 2020course introduction
    October 07 2020information representationdata types
    October 13 2020from problems to algorithms
    October 14 2020from algorithms to programs
    October 20 2020Python programmmingprogram structure, data types and operators
    October 21 2020Python programmmingnumber manipulation
    October 27 2020Python programmminginput / output / files
    October 28 2020Python programmmingexercises
    November 03 2020Python programmmingcontrol flow
    November 04 2020Python programmmingexercises
    November 10 2020Python programmmingstrings
    November 11 2020Python programmmingexercises
    November 17 2020Python programmmingcomplex data structures
    November 18 2020Python programmmingexercises
    November 24 2020Python programmmingsubprograms
    November 25 2020Python programmmingexercises
    December 01 2020Python programmmingclasses
    December 02 2020Python programmmingexercises
    December 08 2020holiday
    December 09 2020Python programmminggroup work
    December 15 2020Graduation day
    December 16 2020Python programmminggroup work & course closing