Log of the lectures and teaching material

Repositories

Slides repo: https://drive.google.com/drive/folders/1rww3cKd7Aqw8D29M6eWrVMCkxjaa6aex
Code repo: https://drive.google.com/drive/folders/1Rv9FPniu-8qWD_BxofHkAo1BkM4foWbm
Blackboard printouts repo: https://drive.google.com/drive/folders/1dDxYQExWNTFb211Qat2Fum33oS1ilH0q

Lecture 23 (extra)

Topic:

  • Blockchain basics
  • Principles of smart contracts
  • An introduction to Solidity
Slides: https://drive.google.com/drive/folders/1P5_cGH1aO69WckenMVOITI_mqFAI_LW6
Blackboard: https://drive.google.com/file/d/1JAdTwFTBQKjeW8x_4pgBe0pmbLv0D_hw
Video: https://drive.google.com/file/d/1Tv000GiSWGVz9AToXxmLbhv6b9PGxSDj
Solidity scripts: https://drive.google.com/drive/folders/1coELuKWxUFAFb9Pbdcn5DzuRbOyovpFV

Lecture 22

Topic:

  • Training for the exam
Blackboard: https://drive.google.com/file/d/1T51JvGd1LEaILE7HYleEoFkmY3Sgf1HD
Video: https://drive.google.com/file/d/1jccHClfz6Rc3vjleFSnpIz5M3t8jbx_k
Repository text-file with exercises: https://drive.google.com/file/d/114izL9VELPf6rgKDRDvhBg_ztH1a4kn4
Questions-drawing script: https://drive.google.com/file/d/1YViD5gNAgys17WlOmy7WNt-Fir67uHq8

Lecture 21

Topics:

  • Recursive algorithm to compute the length of the path connecting any two nodes in a binary tree
  • Visiting binary trees: pre-order, in-order, post-order
  • Arithmetic computation trees
Blackboard: https://drive.google.com/file/d/1qlMoVHxVBjKRGWXZi07nXHV-RSmV_yaD
Poll results: https://drive.google.com/file/d/1AIjUuujecBxYfnceCrUG91qMsBMyVHPt
Video: https://drive.google.com/file/d/1E83mSZv0vdHr7FuRrU2RbCIBHda8ARi6
Code typed in class: https://drive.google.com/file/d/1pz0bjaX6hfx39Or5tFYGQ_jja0difacm

Lecture 20

Topics:

  • Recursive algorithm to compute the width of a binary tree via memoisation
  • Recursive algorithm to compute the diameter of a binary tree
  • An introduction to class extension and inheritance
Slides: https://drive.google.com/file/d/1BaXk2Zw-YhvRA8WAzj-TnyRNIFBtdebD
Blackboard: https://drive.google.com/file/d/1oagylkAtjrw21S8yle2UbBtGMOI602rF
Video: https://drive.google.com/file/d/1Fwj0DuiTWEDuWUs3y5J67h_Ltiu9Q9zt
Code typed in class: https://drive.google.com/file/d/1sNW0MZ5-6HRNScMp2TpLPV8GZp9SA_JN

Lecture 19

Topics:

  • On the usage of the rtrace module
  • Recap on graphs, trees and chains
  • Recursive print function for a binary tree
  • Recursive algorithm to compute the height of a binary tree
  • Recursive algorithm to compute the width of a binary tree
Slides: https://drive.google.com/file/d/1XGN8tU-4cou35xZbfyMRS4FfVRpzp0G4
Blackboard: https://drive.google.com/file/d/14gG3gvgKgnuLdMcaH4n-wO_cFBigNemH
Video: https://drive.google.com/file/d/13BGzoHhoPnGVF1gn5-fke9lqSU06yDjG
Code typed in class: https://drive.google.com/file/d/1hSdkeCkZaf-xvMssvveeT1RWnnyav9Pp

Lecture 18

Topics:

  • A pure-recursive version of the binary search
  • Implementation of mergesort
  • Introduction to graphs, trees, and chains
Slides: https://drive.google.com/file/d/16mthz9S75WiFXCxoecRNWbck_1_qSpG1
Blackboard: https://drive.google.com/file/d/1iyBK8U11JzVnvHV9URdRWltrKnYwWgF_
Video: https://drive.google.com/file/d/1av5VhResYzjxd3pZx1JSliEjSzm87FEj
Code typed in class: https://drive.google.com/file/d/1zCSq6SbbbpNQ8WXfvd24QR-URFJFwT65

Lecture 17

Topics:

  • Binary search
  • Mergesort
Slides: https://drive.google.com/file/d/1G3E8yI7WKq3yaTBTQdYPO89Wc4URIhAJ
Blackboard: https://drive.google.com/file/d/1IdNdDTtF4G-CymBoxATqLAX-pY6iBLMg
Video: https://drive.google.com/file/d/10uHtscyrATwofQs4yOaS7HjT_n5ydyB2
Code typed in class: https://drive.google.com/file/d/1WJZcbS5xZ_BuPtkw8s5PniLDnLZz3KEu

Lecture 16

Topics:

  • A quick look at the organisation of the main memory
  • Activation records and stack diagrams
  • Pure recursion, recursion with wrapper function, arm’s length recursion
  • A brief introduction to memoisation and dynamic programmings
Slides: https://drive.google.com/file/d/1cVDkVwm4WmrEnzHQJF3YDXqpZaJqNs0z
Blackboard: https://drive.google.com/file/d/1abvwO7pBndsoDXZDI-KWbXU48KNpT5Iu
Video: https://drive.google.com/file/d/1SvinVZPWyNBCogi8CEb5-0lCbSvswxoW
Code typed in class: https://drive.google.com/file/d/1IpgVRxWbwgpra2LPK0B8cM0I7jubJdpH

Lecture 15

Topics:

  • Introduction to recursion
  • Function instances and stack diagrams
Slides: https://drive.google.com/file/d/1-VBWnA1ziBAHZc5AOA9anAwdJdYgD7C_
Blackboard: https://drive.google.com/file/d/1xm3X_e-HSieCQ0Evl1R_D6fs6auNPB2M
Video: https://drive.google.com/file/d/1qF6UUD-NyzaFtOxNE4d2B1SedWzItOCt
Code typed in class: https://drive.google.com/file/d/1RBaw0c0iJnLIHIB3prbOElVrZLbD6YtY

Lecture 14

Topics:

  • Working with images (part 3)
  • Computational problem solving: saving pictures as XPM files; plotting a histogram
Slides: https://drive.google.com/file/d/1uUhfCIXmYTRsH31Lf1f9PqQW-rczc1lA
Blackboard: https://drive.google.com/file/d/1WzdPJAXMjGFUoAZUvChHRPtrruldY63e
Video: https://drive.google.com/file/d/1cVN3pgW04vVCIqcRsYHQ61g2g1k0oTYQ
Code typed in class: https://drive.google.com/file/d/1r7OiWldyCAVtkcr8DiBqo1d1u2XYW250
Code from the slides: https://drive.google.com/file/d/1IQ8dKfF1jdKskCX96Lu7UKi4y6r9RRM-
The Colour class: https://drive.google.com/file/d/1JNdPdzVPxG-7m5bk3oWsahD40D6vZNBV

Lecture 13

Topics:

  • Working with images (part 2: filters)
Slides: https://drive.google.com/file/d/19jZFfa-pS-Xqq98eRqlGJrdDRcGj0go3
Blackboard: https://drive.google.com/file/d/10X3nPMhF4I-vmX0rKe3LJ9G3MTkangcb
Video: https://drive.google.com/file/d/1SDUITAjzUuKk9u-Ud3t6tHv4tAH7Vt9M
Code typed in class: https://drive.google.com/file/d/1wouZ3lGjjP2gHl-uMrvny2ljrY9aprN7
A picture of Plato: https://drive.google.com/file/d/10AlFF5FOrZ8hn8a1vzNKtY6nsBJswV-g

Lecture 12

Topics:

  • Classes (part 2)
  • Working with images
Slides: https://drive.google.com/file/d/1j4TtVibYb5IbWZ_AXtklGezAFO1J6gmt
Video: https://drive.google.com/file/d/1q8CGXs1Am8ijcYtjGPMu6mh_qp12ZGLn
Code typed in class (part 1): https://drive.google.com/file/d/1NtCbTYN0EKUK1sxcJ6jSlpASUCGIpcem
Code typed in class (part 2): https://drive.google.com/file/d/1Z9TLCkFW4hdNHHh4y8gclXZbwFZuDKfw
Useful code: png.py (https://drive.google.com/file/d/15ssxvST4YA5mkhmBJZhEqw6U9GrHrR4d) and pngmatrix.py (https://drive.google.com/file/d/17ak6AMc7ES0dn6EL7cdnwwDCnvd0PCTG)
Oh mamma mia! Mario.png: https://drive.google.com/file/d/1tXp19N5PUGRXgGz0QzOF1WbEdz9oKyko
A background for Mario and Luigi: https://drive.google.com/file/d/11o12dygo4FCsJflyc3pjKuSmIYfdufdZ
A red door: https://drive.google.com/file/d/1c1bXtpegaN3rvRCJYar-zJrDQTAGHy4l

Lecture 11

Topics:

  • Classes and objects
  • Encapsulation
Slides: https://drive.google.com/file/d/1MG-lsrUwt7iqh_h12rLDqUK_-hVjvWKA
Blackboard: https://drive.google.com/file/d/1ny4QuyKEWh_DTZWMtQry24yiToMHn8ja
Video: https://drive.google.com/file/d/1mh4zOiyhnJWxp_dlc6pL5s3G9oAn9JuD
Code typed in-class: https://drive.google.com/file/d/111day4nGcr3esp1tdoypMUY9xvGLsmeg
Exercise (warm-up for the next lecture): create a class that retains an integer and prints it as a tetravigesimal number (i.e., base 24). Notice that the alphabet of symbols goes well beyond the traditional “F” of hexadecimal systems. For instance, the tetravigesimal version of 531 (decimal) is M3. For this class, override the following methods:

__init__
__str__
__repr__

Lecture 10

Topics:

  • String formatting
  • Backus-Naur form
  • Exception handling
Slides: https://drive.google.com/file/d/1QWwr3alx8TKAAvAI3mxQ1XjqJYPXS9b_
Blackboard: https://drive.google.com/file/d/11-gsCYM2R-GFpOliZP4Pau8NEl7DJ72V
Video: https://drive.google.com/file/d/1ZIs2QRhyUC545WwuQGbT96bBiv4UzVLv
Code typed in-class: https://drive.google.com/file/d/1jyPdhwI3pL73eeaP3somG92KSM_rXj6F

Lecture 9

Topics:

  • Text files
  • Binary files
  • File handling
Slides: https://drive.google.com/file/d/12YFTRm171F4_LoECAwirl5vsToIcjh2B
Blackboard: https://drive.google.com/file/d/1HxE2r5r1esAownxm0xc3nFUJ-3Z6MWZV
Video: https://drive.google.com/file/d/1e4mYqPpIlqf0LAOViC9MFzGvUwu5VFoB
Code typed in class: https://drive.google.com/file/d/1O0dTN9fAEGfD3LWOpIXWzY9nDnqciq_C

Lecture 8

Topics:

  • An introduction to hashing
  • Objects and ID’s
  • Garbage collector

Slides: https://drive.google.com/file/d/1BRukP6jx51AQGyoag2a7lZ8n6EkBzvGi
Blackboard: https://drive.google.com/file/d/1aPKSki_V2C4TO-lUy2rG3jfCdrKqwR6P
Video: https://drive.google.com/file/d/1RztkMTRcygCnAF-nJGucCcYB-huJ6qCl

Lecture 7

Topics:

  • Dictionaries (part 2)
  • Multi-sets
  • String utils
Slides: https://drive.google.com/file/d/1RRl4o4g2G8gj7CL9LLn4ytPicXnARSFn
Blackboard: https://drive.google.com/file/d/19J7BBbQ0aKbJMQLA4ufq2orzc7v75ZNV
Video: https://drive.google.com/file/d/1aFiOxFl8R1eThC8H7kVP5I0YmWW6wn8z
Code typed in class: https://drive.google.com/file/d/1RPk_o7Y2B1J9AcVqbeg3Rv-pMBozTo6q

Lecture 6

Topics:

  • Lists and side-effects on mutable objects (shallow and deep copies)
  • List comprehension
  • Sets
  • Dictionaries (part 1)
Slides: https://drive.google.com/file/d/1ELAI3X01q03e-izsFs9Bu-Eoeqver6H5
Blackboard: https://drive.google.com/file/d/1R9bpPuKb-ol55zBsF06D31PtcAFFwdRL
Video: https://drive.google.com/file/d/1ZyvyxxzD18hFtadxbmewmeGj2ylBD1zt
Code typed in class: https://drive.google.com/file/d/1fv2qHjsmBi9FfjLDZ_WPdXsSC1aopTRR

Lecture 5

Topics:

  • Functions: global/local variables, scope, lifetime
  • Break, continue, pass, return
  • What is recursion
Slides: https://drive.google.com/file/d/1XN3KSbg5OA7Gscz3xrcDeJp-ggFeCa_4
Blackboard: https://drive.google.com/file/d/1k_njy0_OOB6d5zWJYyknbbDkg8Azs2o4
Video: https://drive.google.com/file/d/1-A_wYl3x-jn3aXvh2JCc8plkqrOs644H
Code typed in class: https://drive.google.com/file/d/14fyFB_tY3GC3PWNCeVMzT-e1gyIBFUtx

Lecture 4

Topics:

  • Iterative control structures
  • An algebraic look at sequences
  • Lists and supported operations
  • Iterating through a list
Slides: https://drive.google.com/file/d/1pPM_2SSB9TMgJ38YzDfvHRhfoAdzhoPq
Blackboard: https://drive.google.com/file/d/1IWKvhAmsf2rxz3vhgtYfR4CbT0RB-65m
Video: https://drive.google.com/file/d/1bb9O7mUDv7k5Nfxj2L7CoJV0BkUfXgIC
Code typed in class: https://drive.google.com/file/d/1EWmDp1LXjesa00gAEaQptto1_K0T_EJI

Lecture 3

Topics:

  • Basics of character encodings (ASCII)
  • Basics of expression evaluation and instruction processing
  • Sequential and selection control statements
Slides: https://drive.google.com/file/d/1599EYLsO6kxZOSyzrMyMWG08d1narlWw
Blackboard: https://drive.google.com/file/d/1ron7IjyqJMwSYFfMLwwe_ikgbYncMcmZ
Video: https://drive.google.com/file/d/1XwrpFcQpoo1Z7lE410Kp8RzZ8o3U84v9

Lecture 2

Topics:

  • Basics of algebra (sets, relations, tuples, functions)
  • Operators
  • Variables
  • Functions
Slides: https://drive.google.com/file/d/162_oFm1e4Vvr_wn-e4tltYhlAxuLTkrf
Blackboard: https://drive.google.com/file/d/1JoJMy7G1xPOcG7oe_8bWF35uujyAWdJk
Video: https://drive.google.com/file/d/1aveJLoRPUbgU-IK2r3vbRs_h2ZfQEF3l

Lecture 1

Topics:

  • Course introduction
  • Some historical notes
  • What is an algorithm
  • Natural and formal languages

Slides: https://drive.google.com/file/d/1T_SmzTzZ882EXx-SrjZ9x9AqVMp-48Ep
Video: https://drive.google.com/file/d/1cXGAxlWarIiAi2-U-GpOfBzBGEU8K1g-

Comments

All slides and screencast material are accessible to students enrolled in the course with their <surname>.<matriculation_number>@studenti.uniroma1.it address listed in the “Programming_ACSAI_2020-21” Google Group.


Edit | Attach | Watch | Print version | History: r43 < r42 < r41 < r40 < r39 | Backlinks | Raw View | Raw edit | More topic actions
Topic revision: r43 - 2020-12-29 - ClaudioDiCiccio






 
Questo sito usa cookies, usandolo ne accettate la presenza. (CookiePolicy)
Torna al Dipartimento di Informatica
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback