Lecture Presentations 2015b

Number | Lecture Date | Presentation | Codezzzzzzzzzzzzzzzzzzzzzz | Last Updated | Topics zzzzzzzzzzzzzzzzzzzzzz |
---|---|---|---|---|---|

1 | 8 March | Course administration; Python basics | |||

2 | 11 March | 10 March 13:10 | Python basics (conditionals, iteration, lists) | ||

3 | 15 March | Iteration over lists and strings; slicing; functions; mutable and immutable classes; equality vs. identity; Python's memory model. | |||

4 | 18 March | More on functions ; Integers and their representation: Unary, binary, and other bases | |||

5 | 22 March | Integer exponentiation; Efficiency of computations. Search (sequential and binary). An explanation of the binary number representation (in Hebrew) can be found here | |||

6 | 25 March | 25 March 13:00 (small changes only) | Basic algorithms and their complexity: Search ; Sort and Merge. The O notation. | ||

7 | 29 March | Complexity and the O notation, concluded; Lambda expressions. High order functions. Numerical derivatives and integrals. Floating point arithmetic. | |||

8 | 30 March | Executions in class: 13:00 15:00 |
Finding roots of real valued functions: Newton-Raphson method. Software testing, code styling. |
||

9 | 12 April | 12 April 21:00 (small typos in slides #10,22,23) | Recursion 1: Fibonacci, factorial, binary search, quicksort | ||

10 | 15 April | Recursion 2: Mergesort, Hanoi towers, memoization | |||

11 | 19 April | Slight modifications, April 20 | Recursion 3: Hanoi towers monster, tail recursion, Ackermann function. Number theoretic algorithms: Factoring by trial division; Probabilistic primality testing. | ||

12 | 26 April | updated April 28: Added proof of Fermat's little theorem (for reference only) | Probabilistic primality testing; Diffie Hellman key exchange; Integer gcd — Euclid's algorithm | ||

13 | 29 April | Executions in class: 13:00 15:00 |
April 30 (line.py: the setters were fixed, no return statement) |
Intro to object oriented programming (OOP); Data Structures: Linked Lists | |

14 | 3 May | See printree.py in lecture 21 |
The game of Munch! : Recursive code, and a proof that player 1 can win; Detecting cycles in linked lists; Additional linked objects: Binary trees and search trees | ||

15 | 6 May | Executions in class: 13:00 15:00 |
Hash functions and hash tables | ||

16 | 10 May | Part a: Generators and iterators. Part b: Digital images representation and processing | |||

17 | 13 May | Executions in class: 13:00 15:00 |
Image Noise Reduction (cont.): using previous lecture slides. Segmentation. | ||

18 | 17 May | Characters and Text Representation, Letter Frequencies in Text; String Matching | |||

19 | 20 May | updated May 21 (DFA removed, Pollard's Rho "for reference only") | String Matching; Eight Queens; More Iterators; Factoring Integers Using Pollard's Rho Algorithm | ||

20 | 31 May | May 28 | introduction to text compression; Huffman code | ||

21 | 3 June | log printree (thanks to Amitai Cohen) |
Lempel-Ziv text compression | ||

22 | 7 June | Introduction to error correction and detection codes; Parity bit, repetition code, Israeli ID check digit; Hamming Distance | |||

23 | 10 June | Introduction to error correction and detection codes (cont.); Hamming code. | |||

24 | 14 June | Undecidability of the halting problem; Secret sharing; Visual secret sharing. | |||

25 | 18 Jan | Limitations of Computation; N body gravitational systems; Conclusion, recap |