The course goal is to let the student achieve the ability to design and code algorithms through the understanding of the rules that form the structure of the C language. In the second part, the concepts of data structures and algorithms are introduced with a focus on the representation of lists and search and sorting problems. The final part of the course includes the programming of algorithms using style sheets.
Course Content - Last names O-Z
The course goal is to let the student achieve the ability to design and code algorithms through the understanding of the rules that form the structure of the C language. In the second part, the concepts of data structures and algorithms are introduced with a focus on the representation of lists and search and sorting problems. The final part of the course includes the programming of algorithms using style sheets.
-Think Python 1st Edition
by Allen B. Downey 978-1449330729
-Introduction to Computation and Programming Using Python: With Application to Understanding Data Second Edition. MIT Press, 2016. ISBN: 9780262529624
Learning Objectives - Last names E-N
The training objectives are the following:
i) Knowledge and understanding: (cc1, with reference to the "Dublin Descriptors"). Knowledge of the principles of computer science and of the algorithmic and numerical approach to problems: ability to solve problems by transferring their mathematical modeling into a predominantly algorithmic one.
ii) Ability to apply knowledge and understanding (ca1, with reference to the "Dublin Descriptors"): ability to apply mathematical methods to model, analyze and solve engineering problems with the aid of computer tools, in particular by exploiting the language of python programming to implement fundamental algorithms for solving logical, mathematical and numerical problems.
Learning Objectives - Last names O-Z
The training objectives are the following:
i) Knowledge and understanding: (cc1, with reference to the "Dublin Descriptors"). Knowledge of the principles of computer science and of the algorithmic and numerical approach to problems: ability to solve problems by transferring their mathematical modeling into a predominantly algorithmic one.
ii) Ability to apply knowledge and understanding (ca1, with reference to the "Dublin Descriptors"): ability to apply mathematical methods to model, analyze and solve engineering problems with the aid of computer tools, in particular by exploiting the language of python programming to implement fundamental algorithms for solving logical, mathematical and numerical problems.
Prerequisites - Last names E-N
Basic knowledge of math and geometry: natural and real numbers, functions.
Prerequisites - Last names O-Z
Basic knowledge of math and geometry: natural and real numbers, functions.
Teaching Methods - Last names E-N
Textbook, use of slides, video, coding exercises.
Teaching Methods - Last names O-Z
Textbook, use of slides, video, coding exercises.
Further information - Last names E-N
Additional information on moodle (https://e-l.unifi.it/)
Further information - Last names O-Z
Additional information on moodle (https://e-l.unifi.it/)
Type of Assessment - Last names E-N
Students must be able to solve problems through algorithms with the help of computer tools.
In general, the exam includes a written and an oral test structured in a way such as to: i) stimulate students autonomy of judgement; ii) allow them to acquire the proper use of technical language and thus increase their communicative skills.
In particular, students must demonstrate that they have acquired: i) knowledge related to the use of data structures such as: strings, arrays, matrices, lists and dictionaries; ii) the ability to use these data structures to solve and implement the assigned problems with the use of python language.
Type of Assessment - Last names O-Z
Students must be able to solve problems through algorithms with the help of computer tools.
In general, the exam includes a written and an oral test structured in a way such as to: i) stimulate students autonomy of judgement; ii) allow them to acquire the proper use of technical language and thus increase their communicative skills.
In particular, students must demonstrate that they have acquired: i) knowledge related to the use of data structures such as: strings, arrays, matrices, lists and dictionaries; ii) the ability to use these data structures to solve and implement the assigned problems with the use of python language.
Course program - Last names E-N
Representation
• Introduction to python language
o Types, variables and constants
o Operators and expressions
o Instructions
• Data representation
o Numbers
o Integers
o Characters
• Elements of language syntax
Elements of computer architecture
Execution environments: notebooks, IDE, console
• The python language
o mutable and and immutable types
o operators and expressions
o instructions
o functions
o while and for loops
o conditional execution
• Data structures and elementary algorithms: Lists, Dictionaries, sets, iterations on data structures
• Sorting algorithms on vectors
o Sequential-sort
• A brief overview of the trees
o Trees
o Binary Search Trees: i) Visit in recursive form; ii) Search; iii) Ordered entry.
Basic data analysis, reading and writing tabular data from files, plotting.
Course program - Last names O-Z
Representation
• Introduction to python language
o Types, variables and constants
o Operators and expressions
o Instructions
• Data representation
o Numbers
o Integers
o Characters
• Elements of language syntax
Elements of computer architecture
Execution environments: notebooks, IDE, console
• The python language
o mutable and and immutable types
o operators and expressions
o instructions
o functions
o while and for loops
o conditional execution
• Data structures and elementary algorithms: Lists, Dictionaries, sets, iterations on data structures
• Sorting algorithms on vectors
o Sequential-sort
• A brief overview of the trees
o Trees
o Binary Search Trees: i) Visit in recursive form; ii) Search; iii) Ordered entry.
Basic data analysis, reading and writing tabular data from files, plotting.