Lecture Presentations
| Class No. | Date | Topics | Slides | Code + additional material | Comments | |
| 1 | 26/10 | Course administration Python basics |
log1.txt |
Python information: http://tau-cs1001-py.wikidot.com/python | ||
| 2 | 29/10 | Python basics (cont.): Boolean values and operators, Conditionals, loops, range, lists | ||||
| 3 | 2/11 | More Python basics: lists, functions Python's memory model |
||||
| 4 | 5/11 | Python's memory model Error types, writing "good" code |
Python Tutor: http://www.pythontutor.com/visualize.html#mode=edit linear_combination modify_list assign_list |
|||
| 5 | 9/11 | Integer representation in binary (and other bases) Text representation, ASCII and Unicode |
See highly recommended sources for more exercise in the slides | |||
| 6 | 12/11 | Floating point representation Randomness |
||||
| 7 | 16/11 | Basic Algorithms: Binary search, Selection sort, Merging sequences Complexity and O notation |
||||
| 8 | 18/11 | Complexity (cont., using slides from previous lecture) Numerical computation |
Note: Derivatives and integrals not covered this semester |
|||
| 9 | 23/11 | Recursion (part 1): factorial, Fibonacci numbers, binary search (again), Quicksort |
||||
| 10 | 26/11 | Recursion (part 2): Mergesort, Memoization |
||||
| 11 | 30/11 | Recursion (part 3): Towers of Hanoi, Chomp! |
||||
| 12 | 3/12 | Recursion: memory complexity Number Theory (part 1): Integer Exponentiation |
||||
| 13 | 7/12 | Number Theory (part 2): GCD Prime numbers |
||||
| 14 | 10/12 | Topics from Number Theory (part 3): Prime numbers (leftovers from last time), Diffie Hellman Secret Key Exchange, Intro to Object Oriented Programming (OOP) |
||||
| 15 | 14/12 | Intro to OOP (cont., using slides from previous lecture) Data structures: Linked lists |
||||
| 16 | 17/12/25 | Leftovers from linked lists Data structures (2): Binary search trees |
||||
| 17 | 24/11 | Leftovers from binary search trees Data Structures (3): Hash functions and hash tables |
||||
| 18 | 28/12 | Data Structures (4): More on hash tables (using slides from previous lecture) Generators for streams |
||||
| 19 | 31/12 | Algorithms on text (1): grammars and the CYK parsing algorithm | Python's grammar: https://docs.python.org/3/reference/grammar.html | |||
| 20 | 4/1/26 | Algorithms on text (2): Huffman compression | ||||
| 21 | 7/1 | Algorithms on text (3): Lempel-Ziv compression | ||||
| 22 | 11/1 | Lempel-Ziv compression (cont.) Error detection and correction codes |
||||
| 23 | 14/1 | Error detection and correction codes (slides from last lecture) | ||||
| 24 | 18/1 | Introduction to digital images representation and processing | Installing PIL: https://pillow.readthedocs.io/en/latest/installation/basic-installation.html Recommended link: https://csfieldguide.org.nz/en/chapters/data-representation/images-and-colours/ |
|||
| 25 | 21/1 | Digital images - exercises A glimpse into the limitations of computing (last slides from lecture 19) Course summary and the exam |
||||
