Lecture Presentations 2014b
Number Lecture Date Presentation Codezzzzzzzzzzzzzzzzzzzzzz Last Updated Topics zzzzzzzzzzzzzzzzzzzzzz
1 16 Feb PDF Course administration; Python basics
2 19 Feb PDF Python basics (conditionals, iteration, lists)
3 23 Feb PDF PY PY PY 23 Feb., 7pm Iteration over lists and strings; slicing; functions; mutable and immutable classes; equality vs. identity; Python's memory model.
4 26 Feb PDF PY PY PY Functions, side effects and the memory model; Integer representation: Unary, binary, and other bases
5 2 March PDF PY PY PY 4 March, 11am Integer exponentiation; Search: sequential and binary search. An explanation of the binary number representation (in Hebrew) can be found here
6 5 March PDF PY PY Basic algorithms: Binary search (reminder), Selection sort, Merge; Complexity and the O notation.
7 8 March PDF PY 8 March, 11pm Lambda expressions. High order functions. Numerical derivatives and integrals. Floating point arithmetic. Finding roots of real valued functions.
8 12 March PDF PDF PY txt TXT Finding roots of real valued functions: Newton-Raphson method.

Software testing, IDLE debugger, code styling.
9 17 March PDF PDF PY Software testing, IDLE debugger, code styling (remains from lecture 8).

Randomized primality testing: the bottle coin is your friend.
10 23 March PDF PY PY modified March 24, 4pm Randomized primality testing, recapping. Encryption. The discrete logarithm problem. Diffie-Hellman exchange of secret key over a public network. Integer greatest common divisor.
11 26 March PDF PY PY PY PY pdf updated March 27 Recursion 1: Fibonacci, factorial, binary search, quicksort
12 29 March PDF PDF PY PY Recursion 2: Merge sort, towers of Hanoi, towers of Hanoi nightmare, tail recursion.
13 2 April PDF PY PY Recursion 3: memoization, 8 queens
14 6 April PDF PY PY PY Slides 34-35: Fixed Munch! recursion. (April 17). Removed linked list slides that were not actually covered in the lecture (April 26). Slide 34: "at most" (June 7) Intro to object oriented programming.
Munch!
Data structures: Linked lists
15 23 April PDF PY PY Data Structures: linked lists and trees
16 27 April PDF PY Data Structures: Hash functions and hash tables.
17 30 April PDF PY PY txt pdf updated May 2 with minor fixes More data structures: Cuckoo Hashing, Finite and Infinite Iterators, generators.

Note: We did not cover slides 48 onward. Slides 48-49 (merging infinite iterators) show another good example for iterators, and we recommend going over them. Slides 50-end (exception handling) are not in the material for the exam.
18 May 4 PDF PY PY PY Characters and Text Representation: Ascii and Unicode. Letter Frequencies in Text. String matching.
19 May 7 PDF PY txt txt String matching: DFA
Huffman Compression
20 May 11 PDF PY minor changes in IDLE outcomes of slides 16, 52 (May 11) Compression: Huffman, codebook, intro to Ziv-Lempel
21 May 14 PDF PY PY PY txt txt Digital image representation and processing, noise reduction

Download Pillow: http://www.lfd.uci.edu/~gohlke/pythonlibs/#pil
22 May 18 PDF PY PY txt pdf updated 20/5 More digital image processing: noise reduction, edge detection (segmentation is for reference only - not for the exam).

log file contains executions done in the later lecture (but very similar to the earlier log).
23 May 21 PDF PY PY PY
txt
LZ compression
24 May 25 PDF PY Introduction to error correction and error detection codes

Popular exposition: http://www.csunplugged.org.il/lessons/error-correcting.html
25 May 28 PDF PY Geometric bounds for error correction and error detection codes. Hamming (7,4,3) code.

Integer greatest common divisor. Euclid's algorithm.
26 Jun 1 PDF PY

PDF
Integer greatest common divisor. Euclid's algorithm.

Exercise on error detection and correction
27 Jun 8 PDF PY pdf updated 8/6 An old debt: cycles in linked lists

Recap on computational problems, algorithms and complexity (we did not have time for slides 37-44 and 48-52).
28 June 11 PDF PDF PY Graphs, maps, and coloring.

Popular exposition: http://www.csunplugged.org.il/lessons/graph-theory.html .

The halting problem is undecidable.

Concluding remarks.
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License