Lecture Presentations 2022b
Class No.  Date  Slides  Code + additional material  Updated / comments  Topics 
1  Feb 20  ID.py  Install Python: http://taucs1001py.wikidot.com/python  Course administration Python basics 

2  Feb 23  sum.py  Python basics (cont.): Boolean values and operators, conditionals, iteration, lists  
3  Feb 27  palindrome.py xor.py  More Python basics: list comprehension and slicing, functions, Python's memory model  
4  Mar 2  memory.py char_count.py 
Python Tutor: http://www.pythontutor.com/visualize.html#mode=edit Examples in class: linearcombination, modify_list 
Python's memory model (cont.), More Collections, Grammars  
5  Mar 6  Integer Representation Floating point representation 

6  Mar 9  random_walk.py  Types of errors; "Good" programming guidelines Randomness 

7  Mar 13  text2bits.py search.py select_sort.py 
Text representation, ASCII and Unicode; Basic Algorithms 1: binary search, selection sort 

8  Mar 16  merge.py  Basic Algorithms 2: selection sort (cont), merging sorted lists Introduction to Complexity and the O() notation 

9  Mar 20  factorial_and_fibonacci.py rec_bsearch.py quicksort.py 
More on complexity; Recursion  Part 1: factorial (n!), Fibonacci, recursive binary search, Quicksort 

10  Mar 23  mergesort.py sorting_race.py hanoi.py 
Slides 423 are copied from lecture #9.  Recursion  Part 2: QuickSort, MergeSort, Towers of Hanoi 

11  Mar 27  fib_memo.py  Recursion  Part 3: Monster of Hanoi (appear in the slides of Lecture 10); Memoization 

12  Mar 30  munch.py power.py 
Recursion  Part 4: Munch! Integer Exponentiation 

13  Apr 3  primality.py  Integer Exponentiation and Modular exponentiation (appear in the slides of Lecture 12) Prime numbers 

14  Apr 6  DH.py  Prime numbers (appear in the slides of Lecture 13) DiffieHellman key exchange 

15  Apr 10  gcd.py root.py pi.py deriv_integral.py student.py 
Euclid's gcd Numeric Computation Intro to OOP 

16  Apr 24  student.py Linked_list.py 
OOP (cont.) Data structures: Linked lists 

17  Apr 27  Binary_search_tree.py printree.py 
Data Structures: Binary Search Trees  
18  May 1  hash.py  Data Structures: Hash functions and hash tables  
19  May 11  generators.py  Generators for streams Text: grammars (again) 

20  May 15  cyk.py  CYK parsing algorithm for context free grammars  
21  May 18  huffman_comp.py  Text compression: Huffman algorithm  
22  May 22  LZ.py  Text compression: LempelZiv algorithm  
23  May 25  ID_ERR.py Hamming_dist.py repetition_decode.py 
Error Detection and Correction Codes  
24  May 29  Hamming743.py images_with_PIL.py guess.bmp 
Error Detection and Correction Codes  cont. (appear in the slides of Lecture 23) Digital Image Representation and Processing 

25  Jun 1  noise.py square.jpg 
Image noise reduction Summary, the exam, and more 