Log of the lectures and teaching material
Repositories
Slides repo:
https://drive.google.com/drive/folders/1rww3cKd7Aqw8D29M6eWrVMCkxjaa6aexCode 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_LW6Blackboard:
https://drive.google.com/file/d/1JAdTwFTBQKjeW8x_4pgBe0pmbLv0D_hwVideo:
https://drive.google.com/file/d/1Tv000GiSWGVz9AToXxmLbhv6b9PGxSDjSolidity scripts:
https://drive.google.com/drive/folders/1coELuKWxUFAFb9Pbdcn5DzuRbOyovpFV
Lecture 22
Topic:
Blackboard:
https://drive.google.com/file/d/1T51JvGd1LEaILE7HYleEoFkmY3Sgf1HDVideo:
https://drive.google.com/file/d/1jccHClfz6Rc3vjleFSnpIz5M3t8jbx_kRepository text-file with exercises:
https://drive.google.com/file/d/114izL9VELPf6rgKDRDvhBg_ztH1a4kn4Questions-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_yaDPoll results:
https://drive.google.com/file/d/1AIjUuujecBxYfnceCrUG91qMsBMyVHPtVideo:
https://drive.google.com/file/d/1E83mSZv0vdHr7FuRrU2RbCIBHda8ARi6Code 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-TnyRNIFBtdebDBlackboard:
https://drive.google.com/file/d/1oagylkAtjrw21S8yle2UbBtGMOI602rFVideo:
https://drive.google.com/file/d/1Fwj0DuiTWEDuWUs3y5J67h_Ltiu9Q9ztCode 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-4cou35xZbfyMRS4FfVRpzp0G4Blackboard:
https://drive.google.com/file/d/14gG3gvgKgnuLdMcaH4n-wO_cFBigNemHVideo:
https://drive.google.com/file/d/13BGzoHhoPnGVF1gn5-fke9lqSU06yDjGCode 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_qSpG1Blackboard:
https://drive.google.com/file/d/1iyBK8U11JzVnvHV9URdRWltrKnYwWgF_Video:
https://drive.google.com/file/d/1av5VhResYzjxd3pZx1JSliEjSzm87FEjCode typed in class:
https://drive.google.com/file/d/1zCSq6SbbbpNQ8WXfvd24QR-URFJFwT65
Lecture 17
Topics:
Slides:
https://drive.google.com/file/d/1G3E8yI7WKq3yaTBTQdYPO89Wc4URIhAJBlackboard:
https://drive.google.com/file/d/1IdNdDTtF4G-CymBoxATqLAX-pY6iBLMgVideo:
https://drive.google.com/file/d/10uHtscyrATwofQs4yOaS7HjT_n5ydyB2Code 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/1cVDkVwm4WmrEnzHQJF3YDXqpZaJqNs0zBlackboard:
https://drive.google.com/file/d/1abvwO7pBndsoDXZDI-KWbXU48KNpT5IuVideo:
https://drive.google.com/file/d/1SvinVZPWyNBCogi8CEb5-0lCbSvswxoWCode 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_D6fs6auNPB2MVideo:
https://drive.google.com/file/d/1qF6UUD-NyzaFtOxNE4d2B1SedWzItOCtCode 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/1WzdPJAXMjGFUoAZUvChHRPtrruldY63eVideo:
https://drive.google.com/file/d/1cVN3pgW04vVCIqcRsYHQ61g2g1k0oTYQCode typed in class:
https://drive.google.com/file/d/1r7OiWldyCAVtkcr8DiBqo1d1u2XYW250Code 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-Xqq98eRqlGJrdDRcGj0go3Blackboard:
https://drive.google.com/file/d/10X3nPMhF4I-vmX0rKe3LJ9G3MTkangcbVideo:
https://drive.google.com/file/d/1SDUITAjzUuKk9u-Ud3t6tHv4tAH7Vt9MCode typed in class:
https://drive.google.com/file/d/1wouZ3lGjjP2gHl-uMrvny2ljrY9aprN7A 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_qp12ZGLnCode typed in class (part 1):
https://drive.google.com/file/d/1NtCbTYN0EKUK1sxcJ6jSlpASUCGIpcemCode typed in class (part 2):
https://drive.google.com/file/d/1Z9TLCkFW4hdNHHh4y8gclXZbwFZuDKfwUseful 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_DTZWMtQry24yiToMHn8jaVideo:
https://drive.google.com/file/d/1mh4zOiyhnJWxp_dlc6pL5s3G9oAn9JuDCode typed in-class:
https://drive.google.com/file/d/111day4nGcr3esp1tdoypMUY9xvGLsmegExercise (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-GFpOliZP4Pau8NEl7DJ72VVideo:
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-3Z6MWZVVideo:
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-lUy2rG3jfCdrKqwR6PVideo:
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-ol55zBsF06D31PtcAFFwdRLVideo:
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_OOB6d5zWJYyknbbDkg8Azs2o4Video:
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.