WLU Logo CS 111 (F '13), Fundamentals of Programming I (Stough)

TA Evening Office Hours:

Thursday 8-9 (Johanna & Dierdre)
Sunday 7-9 (Haley)
Monday 8-10 (Johanna)

Class discussion forum on Piazza.
Articles of interest in computing and society here.

Schedule:

Lecture Date Topics Assigned / Referenced
Assignments Due/Comments
0
F, Sep 6
  What are algorithms?
  Six fundamental concepts of programming languages.
  Quotes

  Syllabus

  General Exhaustive Python Reference
  Some useful Python tutorials - may not be in python3
  Built-in Functions 
 
  Putting python on your computer, some instructions:
   -Installing Python 3 on Windows and Mac machines: see here.
   -Unix: depends.


  Lambert textbook website (with example programs): here.
Read unofficial intro

  Read Chapters 1, 2

  Official Tutorial: here




Week 1
  Chapters 1, 2:
    -Algorithms
    -Hardware

    -Introductory Python: Data Types, Expressions



1
M, Sep 9
  Computer Hardware
  Binary Numbers
  Algorithms
 Problem Set 1
    -problemSet1.py


T, Sep 10
  Unix
  Python Basics
  Python coding: input, processing, output, string formatting (newer way)
    -littleIntro.py
    -average3.py 
    -funWithFormatting.py
  ps1 work 


2
W, Sep 11
  More Algorithms
  Python Basics: Data Types


3
F, Sep 13
  QUIZ
  Functions, writing your own
 Read Chapter 3


Week 2
  Chapter 3:
    -Control Statements (if), iteration (for, while)



4
M, Sep 16
  Control Statements
  Iteration

 Problem Set 1 due.
    -problemSet1.py

T, Sep 17
  Conditionals, if
  for, while loops: initialization, condition, body, update
 Problem Set 2
    -problemSet2.py

5
W, Sep 18
  Conditional Expressions
  Truth Table


6
F, Sep 20
  QUIZ
  Boolean Logic - wiki
  Random numbers
 Read 4.1-4
 Re-read 3.3


Week 3
  Chapter 4:
    -Strings, string operations
    -Number Systems



7
M, Sep 23
  Print formatting -  Case Study 3.3 Investment Report
  Strings, string operations

Problem Set 2 due.
    -problemSet2.py

T, Sep 24
  Input/output processing using strings
  String methods - writing our own versions
  ps3 work
    -guessGame.py
 Problem Set 3
    -problemSet3.py

8
W, Sep 25
  Number Systems

9
F, Sep 27
  QUIZ
  String processing
 Read 4.4-6


Week 4
  Chapter 4:
    -String Methods
    -Reading/Writing Text/Data Files (File I/O)



10
M, Sep 30
  File I/O
    -mary.txt
    -manywords.dic
 Practice Midterm 1
Problem Set 3 due.
    -problemSet3.py

T, Oct 1
  File I/O
    -storeItems.txt  
    -propernames.dic 
    -studentScores.txt (random names/numbers)
 

11
W, Oct 2
  managing directory structure (os module)




  Thursday evening review, 7PM, then office hour following.

Practice midterm reviewed.

F, Oct 4
  Midterm 1  Read 5.1-3


Week 5
  Chapter 5:
    -Lists, syntax/interface/functionality
    -List Comprehensions




12
M, Oct 7
  List objects, syntax, interface 



T, Oct 8
  Midterm review: distro.png
  List methods - index, remove, append, pop, and more
  Functional versus Object-oriented
  Write our own functions using lists
    -studentScores.txt (random names/numbers)
  ps4 work
    -mary.txt
 Problem Set 4
    -listMethods.py
    -stringMethods.py

13
W, Oct 9
  QUIZ
  List Comprehensions



F, Oct 11
 No Classes (reading day)
 Read Ch. 5


Week 6
  Chapter 5:
    -Dictionaries




14
M, Oct 14
  Dictionary methods (official doc)
  Build and print histograms:
    -dictMethods.py



T, Oct 15
  More on PS4
  Working with a dictionary and file IO:
    -pricing.py
    -storeItems.txt 
 Problem Set 5
    -propernames.dic
    -names.dic
Problem Set 4 due.
    -listMethods.py
    -stringMethods.py
15
W, Oct 16
  Writing our own dictionary functionality


16
F, Oct 18
  QUIZ
 
  Finish our dictionary functions



Week 7
  Chapter 6:
    -Design with Functions
    -Recursion
    -Scope
    -map/filter/reduce, anonymous (lambda) functions




17
M, Oct 21
  QUIZ
  Midterm grades
  Design With Functions
    -doctor.py
  Recursion

Problem Set 5 due.
    -soundexSolved.py

T, Oct 22
  Recursion practice
    binary search
 Practice Midterm 2

18
W, Oct 23
  Tail recursion
  Jokes: here.


19
F, Oct 25
  Practice midterm reviewed.
Practice midterm reviewed.

Week 8
  Chapter 7:
    -Graphics and Image Processing
    -Using Classes

  



M, Oct 28
  Midterm 2  Read 7.1, 7.2

20
T, Oct 29
  Graphics Systems
  Turtle Graphics - full reference here 
    -introTurtle.py 
    -ccurve.py 
 Problem Set 6 
  -graphicsFun.py 
  -additional patterns  

21
W, Oct30   Test review, midterm2Distro.png
  Graphics interaction: listeners, interupts
  ps6 work


22
F, Nov 1
  QUIZ

  Continue graphics interaction -- turtle documentation
  Koch snowflake

 Read 8.1-4


Week 9
  Chapter 8:
    -Class Design, data members/methods

    -Numerical Emulation


23
M, Nov 4
  Classes, data abstraction (rectangle, six-sided die)
  Class design
  

Problem Set 6 due.
    -graphicsFun.py

T, Nov 5   More classes
  ps7 work: Rational class
 Problem Set 7
  -rational.py  
  -rationalTester.py
  -meaning here 

24
W, Nov 6
  Numerical Emulation - more here 
  Abstraction and Encapsulation
    -bankAccount.py 
    -craps.py


25
F, Nov 8
  QUIZ

 
 Read 8.5


Week 10
  Chapter 8:
    -More class design
    -Inheritance, polymorphism




26
M, Nov 11   Inheritance 
    -people.py 
    -vector.py 



T, Nov 12   Restricted savings account
  Set operations: intersection, union, difference, xor

Problem Set 7 due.
    -rational.py
27
W, Nov 13
  QUIZ
  review
 Read Chapter 11
on Sakai

28
F, Nov 15
  Complexity Analysis
  O-notation
  Variations on the computation of Fibonacci numbers
    -fibonacciPrograms.py
  Searching
  Problem Set 8

Week 11
  Chapter 11:
    -Complexity Analysis
    -Searching
    -Sorting




29
M, Nov 18
  Guessing Game / Binary Search Rehash
  Searching - linear on unsorted, linear on sorted, binary
    -testSearch.py  
 


T, Nov 19   O(N^2) Sorts
See the lab worksheet here. Spend good time on this.


30
W, Nov 20
  O(N^2) Sorts


31
F, Nov 22
  SUPERQUIZ

  More on complexity
  Read Section 17.1
    at sakai (Resources)
QUIZ MONDAY!!!








  Thanksgiving break Nov 25-29








Week 12

  Ch 17.1. More Sorting

32
M, Dec 2
  QUIZ
  Recursive Sorting -- mergesort, quicksort 



T, Dec 3
  Recursive Sorting implementations

 
33
W, Dec 4
  Radix sort:
    -radix.py
 Practice Final
 Problem Set 8 due.
    -sortingCodes.py
    -sortingTests.py

F, Dec 6
  Practice Final Reviewed.

 Practice Final Reviewed.







  Final Exam!
  Taken starting 2PM Sat Dec 7 until 2PM Friday Dec 13