Archived course page. The lecture, demo and assignment files for this course were not all kept, so many of the links below no longer work. Back to Teaching

WLU Logo CS 112 (F '10), Fundamentals of Programming II (Stough)

 

Schedule:

Lecture Date Topics Assigned / Referenced
Assignments Due/Comments
0
F, Sep 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 Sec. 7.1-7.2
  Read Ch 8

WEEK
1

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



1
M, Sep 13
  List processing, simple functions, map, filter, reduce
  OO design
    introPython.py
    craps.py (Ch. 8, p. 7)


2
W, Sep 15
  Object-oriented Programming

  Inheritance, Polymorphism, inheriting from list
    people.py
    vector.py
  Read Chs 8, 11  

Th, Sep 16
  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)
  Graphics:
    Turtle graphics - see here.
    ccurve.py (Ch. 7, p. 10)
    turtle.cfg 


3
F, Sep 17
  Continue on OO, Graphics
  Preview Complexity Analysis


WEEK
2

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

 

4
M, Sep 20
  Inheritance, Polymorphism
    people.py
    vector.py
  Object interaction
    cards.py
    blackjack.py
  Problem Set 2 
    -wordScanner.py
    -inoperative.txt
    -mary.txt
    -job.txt
   Problem Set 1 due tmrw.
    -listMethods.py 
    -rational.py 
    -drawCircle.py 
    -kochSnowflake.py 
5
W, Sep 22
  Asymptotics (best, worst, average), O-notation
  Searching - linear on unsorted, linear on sorted, binary
    testSearch.py

   

Th, Sep 23
  Finish binary search
  Sorting
  PS2 work.
      -PS2's WordScanner, implementing __iter__  (Section 16.6.1)
 

6
F, Sep 24
  Variations on the computation of Fibonacci numbers
     fibonacciPrograms.py
  Efficient Exponentiation
  Minimum finding, order statistics 
  Read Chapter 11
  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



7
M, Sep 27
  More on string formatting here and here (in Python 2).
  Sorting - selection, insertion, analysis of, profiling
     sortingProfiling.py
  Quicksort and mergesort
  Problem Set 3
 
  Problem Set 2 due today.
    -concordance.py
8
W, Sep 29
  Sorting - quick, merge
  Documentation and Testing
 
  

Th, Sep 30
  PS3 work
 
 
9
F, Oct 1
  quicksort, mergesort analysis
  O(N) Sorting (!?!)
    radix.py
  Midterm Review 

  Problem Set 3 due today.
    -sortingCodes.py 
    -mergesort.py 
    -quicksort.py  
    -sortingTests.py  
WEEK
4

  Chapter 13
   -Collections, Arrays, Linked Lists




M, Oct 4
  Review 
 
  Midterm Review due IN CLASS
    -myrange.py 

W, Oct 6
  Midterm 1 today
  Read Chapter 13
10
Th, Oct 7
  M1 review
  Arrays, Lists (complete the definition)
    arrays.py
  Problem Set 4 
    -list.py  
 
11
F, Oct 8
  Linked Lists
    linkedList.py
  Read Chs 14, 15
WEEK
5

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



12
M, Oct 11
  Continue on Linked Lists, implementation, complexity 

 
13
W, Oct 13
  Doubly-linked, and Circular Linked Lists 
    circList.py
  Stacks and Queues, ADTs (interfaces, functionality), implementation

  Problem Set 4 due today.
    


  Th, F Fall Reading Days
  Read Chs 14, 15
WEEK
6

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

 

14
M, Oct 18
  Stacks and Queues, ADTs (interfaces, functionality), implementation   Problem Set 5  
    -calculator.py 

15
W, Oct 20
  Stacks - implementations, applications, analysis
    write Stack and Queue __str__.



Th, Oct 21
    stack.py, define copyStack, reverseStack
    myQueue.py, define copyQueue, reverseQueue
  PS5 discussion - arithmetic expression evaluation


16
F, Oct 22
  Stacks - depth first search, recursion
    iterFib.py - simulating recursion with a stack. 
                         basically, doing the work recursion does for you.
  Queues - breadth-first search


WEEK
7

  Chapters 14, 15
   -Stacks, Queues, continued




17
M, Oct 25
  Queues - applications of, breadth-first search
    coinPuzzle.py 
  Problem Set 6 
    -linkLister.py 
  Problem Set 5 due today.
18
W, Oct 27
  linkedStack, listQueue - comparing stack/queue ADT implementations


Th, Oct 28
  Continue with listQueue
  PS 6 work 


19
F, Oct 29
  Priority Queues
    priorityQueue.py  
  Midterm 2 Practice 
  Problem Set 6 due today.
WEEK
8

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




M, Nov 1
  Review

  M2 Practice due IN CLASS. 

W, Nov 3
  Midterm 2 today.
 Read Sections 17.2-3

20
Th, Nov 4
  Recursive structures, list processing 
    recList.py  
    lisplist.py  
  Problem Set 7 


F, Nov 5
  Lisp-like lists
 Read Chapter 18 

WEEK
9

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



22
M, Nov 8
  Backtracking, Queens problem 
  Tail Recursion 
  Start on Trees 


23
W, Nov 10
  Trees, Binary Trees, Search Trees
    binaryTree.py 
  Problem Set 8 
    -huffman.py 
    -poeLetters.txt 
  Problem Set 7 due today.

Th, Nov 11
  Binary Search Tree: find, add, remove
    binarySearchTree.py
  PS8 work


24
F, Nov 12
  Continue with BSTs
  Huffman Trees and Compression
 Read Chapter 19

WEEK
10

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



25
M, Nov 15
  Prof. Levy on Trees and Search


26
W, Nov 17
  List-based Set, Dict 
    set.py
    dict.py 
  Hashing  

  Problem Set 8 due today. 

Th, Nov 18
  Efficient Dictionary Access
  Hashtables (will want primes.py)
  PS9
  Problem Set 9
    -names.dic
    -propernames.dic
    -manywords.dic
 
27
F, Nov 19
  Hashtables continued
  Evaluating hash functions
    -hashTesting.py 




Nov 22-26 Thanksgiving Holiday
 Read Chapter 20
 
WEEK
11

  Chapter 20
   -Graphs



28
M, Nov 29
  Review
 
  Heaps, priority queues and heapsort
    heap.py  
  Problem Set 10
    -algorithms.py
    -model.py
    -view.py
    -graph.py  
  Problem Set 9 due today.
29
W, Dec 1
  Finish Heaps
  Graphs, rep's of, traversals of



Th, Dec 2
  PS10 work
  Prim's minimum spanning trees


30
F, Dec 3
  Topological graph sort
  Dijkstra's single-source shortest paths 


WEEK
12




31
M, Dec 6
  Continue with Graphs
 

 

W, Dec 8
  What's next...
  Review
  Practice Final   
  Problem Set 10 due today.
    -graph.py
    -algorithms.py

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

 
 

F, Dec 10
  Review

  Prac. Final due IN CLASS.


  Final exams from Saturday Dec 11 at 2PM through Friday Dec 17 at 5PM.