## CSCI 204 Lecture Notes

### Xiannong Meng

Fall 2017

Moodle site for CSCI 204.02

http://moodle.bucknell.edu/course/view.php?id=25388 where quizzes are posted.

For Professor Meng's lecture section, there are a number of reading quizzes posted on his Moodle section. We will drop three lowest scored quizzes over the semester.

Notes

1. All lecture notes are revised based on the work by many other instructors.
2. The page is a skeleton. Contents will be added as the semester progresses.
Week Class Weekday Date Notes Code example(s) In-class exercises
1 1 Mon 08/21 Course introduction: [PPT, PDF] dictionary_student.py solution
2 Wed 08/23 2D Array, Lists, User Module: [PPT, PDF] my_array.py, avggrades.py, data.txt
3 Fri 08/25 Object-Oriented Design: [PPT, PDF] bird.py, bird_app.py, penguin.py, penguin_app.py
2 4 Mon 08/28 Modules and Exceptions: [PPTX, PDF] read_num.py, user_exceptions.py
5 Wed 08/30 Object-Oriented Design Exercise OOP_Activity.pdf sample solution
6 Fri 09/01 Recursion I: [PPT, PDF] walk.py, method_one.py PythonRecursionWorkshop.pdf
3 7 Mon 09/04 Recursion II: [PPT, PDF] [isprime.py    bin_search.py    (NQueens Problem: nqueens.py board.py my_array_list.py)]
8 Wed 09/06 Algorithm analysis I: [PPT, PDF] [bubble_sort.py    quicksort.py]
9 Fri 09/08 Algorithm analysis II: [PPT, PDF] [worksheet.py solution]
4 10 Mon 09/11 Intro to ADTs: [PPT, PDF] [bag.py test_bag.py bag_base.py test_bag_base.py]
11 Wed 09/13 ADT practice: [PPT, PDF] [test_rational.py rational.py]
12 Fri 09/15 Singly linked lists : [PPT, PDF] userlist.py test_list.py
5 13 Mon 09/18 Singly linked lists 2 : [PPT, PDF] usrlist2.py test_list.py solution
15 Fri 09/22 Circular linked lists: [PPT PDF] circular_list_post.py test_circular_list.py solution
6 16 Mon 09/25 Midterm exam 1
17 Wed 09/27 Stack intro: [PPT PDF] list_stack.py, stack_apps.py, c_source.txt
18 Fri 09/29 Stack workshop stack workshop files
7 19 Mon 10/02 Suggested solutions [map.py evalpostfix.py palindrome.py]
20 Wed 10/04 Queue ADT basics [PPT PDF] testqueue.py Python list queue test_linkedlist_queue.py
21 Fri 10/06 Breadth-first-search with queues [PPT PDF] bfs.py bfs_orig.py dfs.py dfs_orig.py
Mon 10/09 Fall break
8 22 Wed 10/11 Circular queues [PPT PDF] Circular queue activity
23 Fri 10/13 Priority queues [PPT PDF] Priority queue activity testpriorityqueue.py linkedpriorityq_incomp.py Expected output
9 24 Mon 10/16 Clock-driven simulation [PPT PDF] clock drive simulation source code
25 Wed 10/18 Introduction to binary trees [PPT PDF]
26 Fri 10/20 Binary tree implementation [PPT PDF] Binary tree code
10 27 Mon 10/23 Array binary tree implementation [PPT PDF] Binary tree code
28 Wed 10/25 Expression tree [PPT PDF] Expression tree code
29 Fri 10/27 Introduciton to heap [PPT PDF] Heap code
11 30 Mon 10/30 Heap operations [PPT PDF] array204.py arrayheap.py testheap.py
31 Wed 11/01 Heapsort [PPT PDF]
Search I [PPT PDF]
arraheap.py array204.py testsort.py
listsearcher.py test_search.py
32 Fri 11/03 Search II: binary search tree [PPT PDF] BST implementation
12 33 Mon 11/06 Continue binary search tree BST exercises soution
34 Wed 11/08 AVL tree introduction [PPT PDF]
35 Fri 11/10 Binary tree exercises solutions
13 36 Mon 11/13 Midterm exam 2
37 Wed 11/15 Quicksort [PPT PDF]
38 Fri 11/17 AVL tree implementation [PPT PDF] AVL tree code
Mon 11/20 Thanksgiving break
Mon 11/22 Thanksgiving break
Mon 11/24 Thanksgiving break
14 39 Mon 11/27 Hash Map introduction [PPT PDF]
40 Wed 11/29 Hash Map implementation [PPT PDF]
41 Fri 12/01 Mergesort [PPT PDF] code
15 42 Mon 12/04