Lecture Presentations 2025a
| Class No. | Date | Topics | Slides | Code + additional material | Comments |
| 1 | 3/11 | Course administration Python basics |
Python information: http://tau-cs1001-py.wikidot.com/python | ||
| 2 | 6/11 | Python basics (cont.): Conditionals, Boolean values and operators, loops, range, lists | |||
| 3 | 10/11 | More Python basics: lists, functions Python's memory model (1st part) |
|||
| 4 | 13/11 | Python's memory model (cont., see material from lec3), More Collections (tuple, set, dict), Randomness |
Python Tutor: http://www.pythontutor.com/visualize.html#mode=edit linear_combination modify_list |
||
| 5 | 17/11 | Randomness (using slides from precious lecture) Integer representation in binary (and other bases) |
See highly recommended sources for more exercise in the slides |
||
| 6 | 20/11 | Representing integers (using slides from previous lecture) Text representation, ASCII and Unicode Floating point representation |
Last few slides on estimating Pi are delayed to a later class | ||
| 7 | 24/11 | Basic Algorithms 1: Binary search Errors in Python and "Good" programming guidelines |
|||
| 8 | 27/11 | Basic Algorithms - cont': Selection sort merging sorted lists Introduction to Complexity and the O() notation |
|||
| 9 | 1/12 | Complexity (cont., using slides from previous lecture) Numerical computation |
|||
| 10 | 4/12 | Recursion (part 1): factorial, Fibonacci numbers, binary search (again), Quicksort |
|||
| 11 | 8/12 | Recursion (part 2): Mergesort, Memoization |
|||
| 12 | 11/12 | Recursion (part 3): Towers of Hanoi, Chomp! |
|||
| 13 | 15/12 | Topics from Number Theory (part 1): Integer Exponentiation, GCD |
|||
| 14 | 18/12 | Topics from Number Theory (part 2): Prime numbers | |||
| 15 | 22/12 | Topics from Number Theory (part 3): Prime numbers (leftovers from last time), Diffie Hellman Secret Key Exchange, Intro to Object Oriented Programming (OOP) |
|||
| 16 | 25/12 | Intro to OOP (cont., using slides from previous lecture) Data structures: Linked lists |
|||
| 17 | 1/1/25 | Data structures (2): Binary search trees | |||
| 18 | 5/1 | Data Structures (3): Hash functions and hush tables | |||
| 19 | 8/1 | Data Structures (4): More on hash tables (using slides from previous lecture) Generators for streams |
|||
| 20 | 12/1 | Algorithms on text (1): grammars and the CYK parsing algorithm | Python's grammar: https://docs.python.org/3/reference/grammar.html | ||
| 21 | 15/1 | Algorithms on text (2): Huffman compression | |||
| 22 | 19/1 | Algorithms on text (2): Lempel-Ziv compression | |||
| 23 | 22/1 | Error detection and correction codes | |||
| 24 | 26/1 | Error detection and correction codes (cont., using slides from last lecture) Introduction to digital images: representation |
Installing PIL: https://pillow.readthedocs.io/en/latest/installation/basic-installation.html | ||
| 25 | 29/1 | Introduction to digital images: noise reduction and more | slides from last time | ||
| 26 | 2/2 | Leftovers (digital images) A glimpse into the limitations of computing (slides 45-51 in lecture 20) Course summary and the exam |