WLU Logo CS 112 (W '11), Fundamentals of Programming II (Stough)

 

Schedule:

Lecture Date Topics Assigned / Referenced
Assignments Due/Comments
WEEK 1

  Chapters 6, 8
   -Python review (including recursion)
   -Object-oriented design, Common ops (init, str, cmp, eq)
   -Abstraction and Abstract Data Types


0
M, Jan 10
  syllabus
  Lambert Textbook Website here. Available through sakai.
 
  What to expect
  Brief python review (list, tuple, dict, functions, map, filter, reduce)
  General Exhaustive Python Reference
  Some useful Python tutorials - may not be in python3
  What is different about python 3?
  Putting python on your computer, some instructions:
   -Installing Python 3.1 on Windows and Mac machines: see here.
   -Unix: depends.
  Read Ch 6
 
  Read Ch 8



1
W, Jan 12
  List processing, simple functions, map, filter, reduce 
  OO design 
    introPython.py 
    craps.py (Ch. 8, p. 7) 



Th, Jan 13
  Object-oriented Programming

  Python coding:
    listMethods.py (see info on strings and lists, and on manipulating strings)
  OO:
    rational.py (complete the definitions, see here) (Ch. 8, p. 12)
    bankAccount.py (complete the class definition)

 
 
2
F, Jan 14
  Inheritance, Polymorphism, inheriting from list 
    people.py 
    vector.py 

  Object interaction 
    cards.py 
    blackjack.py 

  Read Ch 11
WEEK
2

  Chapters 8, 11
   -Object-oriented design
   -Complexity Analysis (Asymptotics, O-notation, Searching, Sorting)
 

3
M, Jan 17
  Complexity Analysis

  Searching - linear on unsorted, linear on sorted, binary
    testSearch.py

  Asymptotics (best, worst, average), O-notation
  Problem Set 2 
    -wordScanner.py
    -inoperative.txt
    -mary.txt
    -job.txt
  Problem Set 1 due today.
    -listMethods.py 
    -rational.py
4
W, Jan 19
  Finish binary search - iterative, recursive versions
  Sorting - selectionSort, insertionSort

  ODK/Founders' Day Convocation



Th, Jan 20
  PS2 work.
      -PS2's WordScanner, implementing __iter__  (Section 16.6.1)

 

   
5
F, Jan 21
  Variations on the computation of Fibonacci numbers
     fibonacciPrograms.py
  Efficient Exponentiation
  Minimum finding, order statistics 
  Read Sections 12.2-3
  Read Section 17.1

WEEK
3

  Chapters 11, 12, 17
   -11, 17.1: Recursive Sorting, Complexity Analysis
   -12.2, 12.3: Documentation and Testing


6
M, Jan 24
  More on string formatting here and here (in Python 2).
  Sorting - selection, insertion, analysis of, profiling
     sortingProfiling.py
  Mergesort
  Problem Set 3   Problem Set 2 due today.
    -concordance.py
7
W, Jan 26
  Quicksort
  Quicksort and mergesort analysis

 


Th, Jan 27
  Sorting - quick, merge
  PS3 work
 
  
8
F, Jan 28
  O(N) Sorting (!?!)
    radix.py

  Documentation and Testing
  Midterm Review    Problem Set 3 due today.
    -sortingCodes.py 
    -mergesort.py 
    -quicksort.py  
    -sortingTests.py  
WEEK
4

  Chapter 13
    -Collections, Arrays, Linked Lists



M, Jan 31
  Review 
  Midterm Review due IN CLASS
    -myrange.py 

W, Feb 2
  Midterm 1 today   Read Chapter 13
9
Th, Feb 3
  M1 review
  Arrays, Lists (complete the definition)
    arrays.py
  Problem Set 4 
    -list.py  

10
F, Feb 4
  Linked Lists
    linkedList.py
 

 
WEEK
5

  Chapter 13
    -More on Linked List, Array-based List


11
M, Feb 7
  Continue on Linked Lists, implementation, complexity
  Doubly-linked, and Circular Linked Lists 
    circList.py
  Read Chs 14, 15
12
W, Feb 9
  Stacks and Queues, ADTs (interfaces, functionality), implementation
  Problem Set 4 due today.

Th, Feb 10
  stack.py, define copyStack, reverseStack
  myQueue.py, define copyQueue, reverseQueue


    
13
F, Feb 11
  PS5 discussion - arithmetic expression evaluation   Problem Set 5  
    -calculator.py 

WEEK
6

  Chapters 14, 15
   -Stacks (Implementations, Recursion)
   -Queues (Implementations, Recursion, Priority Queues)

 

14
M, Feb 14
  Stacks - depth first search, recursion
    iterFib.py - simulating recursion with a stack. 
                         basically, doing the work recursion does for you.


15
W, Feb 16
  Queues - applications of, breadth-first search
    coinPuzzle.py 



Th, Feb 17
  linkedStack, listQueue - comparing stack/queue ADT implementations


16
F, Feb 18
  Continue with listQueue
  Priority Queues
    priorityQueue.py  

  Problem Set 5 due today.





Wash.
Break
  Washington Break, Feb 21-25






WEEK
7

  Parallel Processing



17
M, Feb 28
  Where we've been, where we're going
  Parallel processing
    -parallelUsingPool.py  
    -parallelIntegration.py   
 
 
18
W, Mar 2
  Documentation on multiprocessing here.
    -parallelQuicksort.py 
  More on parallelism: here, and here.
  Problem Set 6

Th, Mar 3
  PS 6 work: parallel sumPrimes



F, Mar 4
  Science, Society & the Arts Conference (classes suspended)
  Midterm 2 Practice 
  Problem Set 6 due today.
WEEK
8

  Chapter 17
   -17.2, 17.3: Recursion (List Processing, Backtracking)




M, Mar 7
  Review

  M2 Practice due IN CLASS. 

W, Mar 9
  Midterm 2 today.
 Read Sections 17.2-3

19
Th, Mar 10
  Recursive structures, list processing 
    recList.py  
    lisplist.py  
  Problem Set 7 

20
F, Mar 11
  Lisp-like lists
  Backtracking, Queens problem
    -manyqueens.py  
    -grid.py  
  Tail Recursion 
  Read Chapter 18 

WEEK
9

  Chapter 18
   -Trees (Search Trees, Heaps and Heapsort, Expression Trees)



21
M, Mar 14
  Start on Trees 

22
W, Mar 16
  Trees, Binary Trees, Search Trees
    binaryTree.py 
  Problem Set 8 
    -huffman.py 
    -poeLetters.txt 
  Problem Set 7 due today.

Th, Mar 17
  Binary Search Tree: find, add, remove
    binarySearchTree.py 
  PS8 work


23
F, Mar 18
  Continue with BSTs
  Huffman Trees and Compression
 Read Chapter 19

WEEK
10

  Chapter 19 
   -Sets and Dictionaries/Maps 
   -Hashtables, Chained Hashtables



24
M, Mar 21
  List-based Set, Dict 
    set.py
    dict.py 


25
W, Mar 23
  Hashing
  Hashtables (will want primes.py)

  Problem Set 8 due today. 

Th, Mar 24
  PS9   Problem Set 9
    -names.dic
    -propernames.dic
    -manywords.dic
 
26
F, Mar 25
  Hashtables continued
  Evaluating hash functions
    -hashTesting.py 


WEEK
11

  Chapter 20
   -Graphs



27
M, Mar 28
  Review
 
  Heaps, priority queues and heapsort
    heap.py  
  Problem Set 10
    -algorithms.py
    -model.py
    -view.py
    -graph.py  
  Problem Set 9 due today.
28
W, Mar 30
  Graphs, rep's of, traversals of


Th, Mar 31
  PS10 work
  Prim's minimum spanning trees
  Topological graph sort
  Dijkstra's single-source shortest paths 


29
F, Apr 1
  Class cancelled.


WEEK
12




30
M, Apr 4
  Continue with Graphs
 

 
31
W, Apr 6
  What's next...
  Review
  Practice Final   
  Problem Set 10 due today.
    -graph.py
    -algorithms.py

Th, Apr 7
  Image processing fun.
    images.py
    swan.png 
    shark.png
    smokey.gif
    aerial.png
    FallColonnade.gif 
    imageProcessingIntro.py

 
 

F, Apr 8
  Review

  Prac. Final due IN CLASS.
    -solutions


  Final exams from Saturday April 9 2PM until Friday, April 15 5PM